Skip to content

Releases: llvm/circt

SiFive 0.7.0 Internal Release

10 May 13:59
a9bdc67
Compare
Choose a tag to compare
Pre-release

What's Changed

  • circt-reduce,firtool,llhd-sim: cleanup --help output, put options in category by @dtzSiFive in #2979
  • [FIRRTL][Dedup] Improve error when module is both NoDedup and MustDedup by @youngar in #3032
  • [FSM] Make initial state explicit by @mortbopet in #3019
  • [FSM] Canonicalize away unreachable states by @mortbopet in #3020
  • [FSM] Make transition guard and action regions optional by @mortbopet in #3021
  • [ExportVerilog] Make isExpressionUnableToInline more liberal by @uenoku in #2974
  • FIRParser: don't crash if no main module, print error by @dtzSiFive in #3035
  • [CombFolds] Add a canonicalizer for andr, orr + replicate by @uenoku in #3038
  • [FIRRTL] remove partialconnect by @dtzSiFive in #3027
  • [HW] HWModuleGeneratedOp use SymbolUserOpInterface; LowerToHW use instanceGraph by @dtzSiFive in #3041
  • [SCFToCalyx] Add source location metadata for Cider. by @cgyurgyik in #2959
  • [FIRRTL] Add CheckResets Behavior to SFCCompat by @seldridge in #3049
  • [Calyx] Implement ClkInsertion and ResetInsertion passes by @mortbopet in #3047
  • [Handshake] Add tuple pack and unpack operations by @Dinistro in #3040
  • [FIRRTL] Add ExtractInstances pass by @fabianschuiki in #3017
  • [Calyx] Verify continuously assigned values by @mortbopet in #3048
  • [Calyx] Factor out various helper functions by @mortbopet in #3055
  • locationStyleInfo: add doc blurb, add to cl::opt help by @dtzSiFive in #3056
  • FIRRTLFolds: don't crash on vector's connected to wire w/invalid by @dtzSiFive in #3044
  • [LowerToHW][SVExtractTestCode] Don't extract assertions from testbench by @uenoku in #3058
  • [FIRRTL] Look through tail/pad ops when checking for reset driver by @dtzSiFive in #3059
  • ExportVerilog: Add lowering option to always print port direction/type by @dtzSiFive in #3046
  • [FIRRTL] Move ExtractInstances pass before GCT by @prithayan in #3060
  • Preserves FIRRTL names by @darthscsi in #3050
  • [Calyx] Make wires op a graph region by @mortbopet in #3057
  • [FIRRTL] Add error message to AnnotationArray type constraint by @youngar in #3061
  • [FIRRTL] Fix module port insertion helper by @youngar in #3062
  • [FIRRTL] Add FMemModule operation by @youngar in #3063
  • [SV] Add a builder to CaseOp which takes a validation qualifier by @uenoku in #3075
  • [FIRRTL] Add output-mlir option to firtool. by @mikeurbach in #3052
  • [handshake-runner] Add support for tuple operations by @Dinistro in #3076
  • [FIRRTL][InferWidths] Support bundles in mux constraint by @youngar in #3071
  • [FIRRTL][FullAsyncResetTransform] Preseve synchronous reset value by @youngar in #3078
  • LLVM bump (as we know it) by @drom in #3074
  • [FIRRTL] Add AddSeqMemPorts pass by @youngar in #3064
  • [FIRRTL] Add LowerMemory pass by @youngar in #3065
  • [FIRRTL] Fix some passes to work with the new FMemModuleOp by @youngar in #3066
  • [FIRRTL][PrefixModules] Prefix and duplicate FMemModule ops by @youngar in #3067
  • [FIRRTL][LowerToHW] Lower firrtl.memmodule to hw.module.ext by @youngar in #3068
  • [FIRRTL] Add the Mem to Registers transformation by @prithayan in #3039
  • [ExportVerilog] Try to re-use existing inouts when possible. by @mikeurbach in #3080
  • [FIRRTL][LowerMemory] Create wrapper module by @youngar in #3081
  • Fix windows build by @youngar in #3082
  • [FSM] Implement graph traits for fsm.machine by @mortbopet in #3073
  • [FIRRTL] Track clock values of memory ports precisely by @uenoku in #3079
  • Handle 0-length vectors in inferreset without connects to invalid by @darthscsi in #3083
  • [ExportVerilog] Add parentheses around reduction ops by @uenoku in #3015

Full Changelog: sifive/0/6/0...sifive/0/7/0

Sifive 0.6.0 internal release

03 May 19:55
167d0e3
Compare
Choose a tag to compare
Pre-release

What's Changed

  • [FIRRTL] [CheckCombCycle] Print a cycle while dumping signal names by @uenoku in #2942
  • [Scheduling] Add consistency check. by @jopperm in #2953
  • [Calyx] Update MultPipeOp and DivPipeOp format to round-trip. by @mikeurbach in #2954
  • [Calyx] Add WireLibOp to represent a wire in Calyx's core library. by @mikeurbach in #2956
  • [firtool] Apply CLI options to exportPm by @uenoku in #2961
  • [FIRRTL] Do not dedup testharness memories by @prithayan in #2968
  • [ExportVerilog] Fix an iterator update bug by @uenoku in #2964
  • [ExportVerilog] Add a mechanism to control location info emission style by @uenoku in #2952
  • [reduce] Add NodeSymbolRemover reduction by @uenoku in #2965
  • WIP - Bump llvm. by @mikeurbach in #2969
  • Revert "WIP - Bump llvm." by @mikeurbach in #2972
  • Bump LLVM to 2d014b72ccb51de9a9627c31667a3edf8cca7616 (#2969) by @mikeurbach in #2973
  • [FIRRTL] Omnibus fixes for Grand Central Signal Mappings by @seldridge in #2950
  • [FIRRTL] Do not dedup testharness memory irrespective of Prefix by @prithayan in #2977
  • Cmdline flags to deal with subcircuit by @darthscsi in #2981
  • [FIRRTL] Make GroupID memory attribute unsigned. NFC by @prithayan in #2975
  • [FIRRTL][Dedup] Fix MustDedup crash by @youngar in #2983
  • [StandardToHandshake] Support external functions by @mortbopet in #2984
  • [StandardToHandshake] Fix function type for external FuncOps by @mortbopet in #2987
  • Update dialect overview diagram by @jopperm in #2976
  • [FIRRTL] Add "_ext" suffix to Memory module and instance name by @prithayan in #2982
  • [FIRRTL] Add a memory lowering pass by @prithayan in #2967
  • [FIRRTL] Rename LowerMemory to FlattenMemory by @youngar in #2992
  • [FIRRTL] Add documentation for AddSeqMemPort annotations by @youngar in #2993
  • [FIRRTL] print mem.conf even if there are no memories by @youngar in #2991
  • [FIRRTL][ModuleInliner] fix flatten+inline into multiple instance sites, annotation cleanup by @dtzSiFive in #2998
  • [FIRRTL] [CheckCombCycles] Improve error message by reconstructing a full cycle by @uenoku in #2970
  • [StandardToHandshake] enable reuse by exposing region lowering by @Dinistro in #2986
  • [PyCDE] [NFC] Refactoring out the op caching code by @teqdruid in #3006
  • [FIRRTL][LowerToHW] Insert extra initialization for async regs by @uenoku in #3000
  • [MSFT] Make dynamic instances hierarchical by @teqdruid in #3005
  • [PyCDE] [NFC] Rework instance hierarchy by @teqdruid in #3007
  • [PyCDE] Teach PlacementDB how to resolve to Instances by @teqdruid in #3008
  • [PyCDE] Adds support for rebuilding the instance cache by @teqdruid in #3011
  • [Handshake] Make builders more flexible by using ValueRange by @Dinistro in #3013
  • [SV] Avoid temporary wires when ReadInOutOp is after use by @nandor in #3009
  • [Handshake] Improve handshake builders by @Dinistro in #3014
  • [Handshake] Add optional visibility parsing for FuncOp by @Dinistro in #3016
  • [FIRRTL] Add InjectDUTHierarchy Pass by @seldridge in #2989
  • [Handshake] Add sink materialization for block arguments by @Dinistro in #3022
  • [HW] Remove InstanceOp's constaint on the symbol by @youngar in #2994
  • [HW] InnerNameRef backed by a symbol by @nandor in #2815
  • [HW] Added a helper method to HWModuleOp to insert new outputs by @nandor in #2997
  • FIREmitter: give strictconnect same invalid treatment, add test by @dtzSiFive in #3029
  • [SV] Added macro.ref to reference macros. by @nandor in #2921
  • FIRParser: fix ref invalidation in connectDebugInfo,emitPartialConnect by @dtzSiFive in #3026
  • [FIRRTL] check flip orientation in connect operations by @dtzSiFive in #3025
  • [FIRRTL] DUT seq mems paths should start from the DUT module. by @richardxia in #3031

New Contributors

Full Changelog: sifive/0/5/0...sifive/0/6/0

Sifive Internal 0.5.0

22 Apr 00:17
5f6826b
Compare
Choose a tag to compare
Sifive Internal 0.5.0 Pre-release
Pre-release

Sifive Internal Release

What's Changed

Full Changelog: sifive/0/4/0...sifive/0/5/0

Sifive Internal 0.4.0

19 Apr 23:28
958a3bb
Compare
Choose a tag to compare
Sifive Internal 0.4.0 Pre-release
Pre-release

Internal SiFive release.

What's Changed

Full Changelog: sifive/0/3/0...sifive/0/4/0

SiFive 0.3.0

12 Apr 23:09
Compare
Choose a tag to compare
SiFive 0.3.0 Pre-release
Pre-release

Weekly snapshot for SiFive use.

What's Changed

  • Update LLVM by @prithayan in #2833
  • [firtool] Print parsing time with verbose-pass-executions option by @uenoku in #2837
  • Update LLVM by @trilorez in #2841
  • [PyCDE] Infer the result type of a SystolicArray PE by @teqdruid in #2844
  • [CI] Only build host backend in integration test by @uenoku in #2845
  • [HW][FIRRTL] Added HWInstanceLike and HWModuleLike by @nandor in #2848
  • [firtool] verbose-pass-execution should print the final passes. by @mikeurbach in #2855
  • [FIRRTL] Relax reg reset width checking by @youngar in #2856
  • [HW][FIRRTL] Factored out common instance graph construction to InstanceGraphBase by @nandor in #2849
  • [llhd] Refactor struct Signal with class Signal by @DeepFlyingSky in #2829
  • [HWMemSimImpl] Fix randomization of wide memories by @fabianschuiki in #2859
  • [HW] Introduce hw::InstanceGraph based on InstanceGraphBase by @nandor in #2847
  • [HWMemSimImpl] Randomize each memory word separately by @fabianschuiki in #2860
  • [InferResets] Fix inference for zero-length vectors by @fabianschuiki in #2858
  • [ExportVerilog] Removed redundant sv::IfOp inversion by @nandor in #2826
  • [HW] Support parametric hw.arrays by @mortbopet in #2703
  • [HW] Canonicalized integer interval tests by @nandor in #2748
  • [NFC] Change Canonicalization pattern to avoid exponential behavior by @darthscsi in #2865
  • Improve SV Case handling by @darthscsi in #2861
  • [FIRRTL] [MergeConnection] Use StrictConnect by @uenoku in #2871
  • [FIRParser] Create more precise timing scopes by @uenoku in #2875
  • [FIRRTL][NFC] Introduce FConnectLike interface by @uenoku in #2872
  • [NFC,FIRRTL] Use a symbol uses verifier for nla verification by @darthscsi in #2877
  • [NFC] cache attr by @darthscsi in #2878
  • [FIRRTL] Exposed utilities mapping paths to named operations by @nandor in #2862
  • [Comb] Fix an edge case of the interval canonicalizer by @uenoku in #2880
  • [FIRParser] Default chisel3 asserts to ifElseFatal by @youngar in #2876
  • [Scheduling] Add an overview/rationale doc. by @jopperm in #2835
  • [Comb] Fixed folding of whole interval checks in OrOp by @nandor in #2883
  • [ExportVerilog] Inline StructExtract even with multiple uses by @uenoku in #2884
  • [Docs] [CMake] Add install script for OR-Tools; mention it in Getting Started guide by @jopperm in #2868
  • [ExportVerilog] Remove max token limit and spilling in ExportVerilog. by @mikeurbach in #2802
  • [FIRRTL] s/RemoveResets/RemoveInvalid/ and Make All Invalids Zero by @seldridge in #2870

Full Changelog: sifive/0/2/0...sifive/0/3/0

Sifive 0.2.0

03 Apr 03:13
1b60400
Compare
Choose a tag to compare
Sifive 0.2.0 Pre-release
Pre-release

Weekly snapshot for Sifive use.

What's Changed

Full Changelog: sifive/0/1/0...sifive/0/2/0

SiFive-v0.1.0

26 Mar 01:17
1041dfd
Compare
Choose a tag to compare
SiFive-v0.1.0 Pre-release
Pre-release

This release covers accumulated bug fixes after the 0.0.9 release from running CIRCT on a matrix of internal designs.

What's Changed

  • use hasVerifier instead of verifier by @DeepFlyingSky in #2775
  • [FIRRTL][InstanceGraph] Add missing implementation of addModule() by @youngar in #2786
  • Bump LLVM to 1ebf1afb4ff by @nandor in #2789
  • [FIRRTL] Parse nonlocal annotations on ports correctly by @prithayan in #2792
  • [NFC] Rename dump method with toString method by @DeepFlyingSky in #2797
  • [HW] GlobalRefOp performance enhancement by @teqdruid in #2796
  • [FIRRTL] Put Grand Central Black Boxes in Correct Directories by @seldridge in #2798
  • [FIRRTL] Infer type of mux with aggregate operands by @fabianschuiki in #2807
  • [FIRRTL] Cleaned up verifiers for connects by @nandor in #2765
  • [FIRRTL] Verified types for RegOp and RegResetOp by @nandor in #2741
  • [FIRParser] Expand and remove partial connects at parse time by @youngar in #2793
  • [PrepareForEmission] Add max expression size before creating a wire. by @mikeurbach in #2795
  • [ExportVerilog] Add explicit bitcast for width mismatch LINT errors by @prithayan in #2756
  • [MSFT] [PyCDE] Make placement DB global rather than rooted by @teqdruid in #2804

Full Changelog: sifive/0/0/9...sifive/0/1/0

SiFive-v0.0.9

18 Mar 02:24
sifive/0/0/9
3f934d4
Compare
Choose a tag to compare
SiFive-v0.0.9 Pre-release
Pre-release

This release covers accumulated bug fixes after the 0.0.8 release from running CIRCT on a matrix of internal designs.

What's Changed

  • [HandshakeToHW] Initial commit for handshake-to-hw by @mortbopet in #2680
  • [Handshake] Generate dialect documentation #2677 by @mortbopet in #2697
  • [LLHD] Fix SigArrayGetOp canonicalization by @maerhart in #2698
  • Bump LLVM, Remove Duplicate Handshake Verification by @seldridge in #2702
  • [PyCDE] Implement new DynamicInstance operation methodology by @teqdruid in #2683
  • [Handshake] Make BufferOp sequential attribute a StrEnumAttr attribute by @DeepFlyingSky in #2670
  • Add IDE configuration for CLion by @sequencer in #2679
  • Add NLATable analysis and use it in PrefixModules by @darthscsi in #2695
  • [FIRRTL][RemoveUnusedPorts] Support strictconnect by @uenoku in #2700
  • [HW] Allow hw::IntType in hw::isHWIntegerType by @mortbopet in #2701
  • [FIRRTL] Fix GCT Data Tap Bug by @seldridge in #2711
  • [FIRRTL][Dedup] Fix issue with NLAs on ExtModule ports by @youngar in #2714
  • [LowerToHW] Guard out-of-bounds multi-bit mux by @seldridge in #2716
  • [reduce] Make reducer NLA aware by @fabianschuiki in #2715
  • [FIRTL][Annotations] Fix issue when module name matches inner name by @youngar in #2717
  • [FIRRTL][Dedup] Include port types in ext module hashing by @youngar in #2721
  • [FIRRTL] Properly handle analog types w/ NamePreservation option by @youngar in #2723
  • [Moore] Add SystemVerilog types by @fabianschuiki in #2699
  • [HW] Add port dir flip function, make PortDirection an enum class; NFC by @fabianschuiki in #2726
  • [Moore] Omit wrapper types where unique by @maerhart in #2729
  • [FIRRTL] Add more tests for NamePreservation by @youngar in #2724
  • [LowerToHW] Don't extract TestHarness verif bboxes by @seldridge in #2732
  • [FIRRTL][Dedup] Get a module's name before deleting it by @youngar in #2734
  • [FIRRTL][LowerTypes] Fix std::lower_bound usage by @youngar in #2736
  • [FIRRTL][NLATable] Fix invalidated reference after growing a DenseMap by @youngar in #2738
  • [FIRRTL][WireDFT] Fix invalidated reference from growing DenseMap by @youngar in #2735
  • [FIRRTL][ExpandWhens] Improve location tracking while lowering by @youngar in #2742
  • [SV] Add a File Descriptor parameter to FWriteOp by @nandor in #2737
  • [LLHD] Process Lowering: support muxed signals by @maerhart in #2720
  • [HandshakeToFIRRTL]: Add support for signed ops by @Dinistro in #2730
  • [HW] Add port modification for module-like ops by @fabianschuiki in #2727
  • [LLHD] Allow instantiation of hw.module by @maerhart in #2743
  • [FIRRTL] Add signalPassFailure to LowerToHW and exit early. by @mikeurbach in #2745
  • [FIRRTL] Don't lower types for invalid durring parsing. by @darthscsi in #2731
  • [NFC] silence warning by @darthscsi in #2754
  • InferReset generates strict connects by @darthscsi in #2753
  • [FIRRTL][OMIR] Don't assume NLA's have an absolute path by @youngar in #2747
  • [HW][ExportModuleHierarchy] Allow multiple output files per module by @youngar in #2752
  • [LLHD] Add output operation by @maerhart in #2762
  • Bump LLVM to 61814586 by @fabianschuiki in #2758
  • [HWMemSimImpl] Add Memory Randomization by @seldridge in #2757
  • [FIRRTL] Emitted PartialConnect instead of Connect for mismatched types by @nandor in #2764
  • [FIRRTL] Fixed issue with undefined registers in HWMemSim by @nandor in #2769
  • [FIRRTL][Inliner] Filter non-local annos by the instance path by @youngar in #2770
  • [GCT] Create the proper XMR for GCT memtaps by @prithayan in #2771
  • [HW] Add clog2 parameter expression by @trilorez in #2766
  • [FIRRTL][Inliner] Fix NLA filtering on symbol collision by @youngar in #2777
  • [FIRParser] Don't bulk connect bundles with analog in them by @youngar in #2778
  • [Calyx] SCFToCalyx generates zero-width memref address ports for memrefs with size 1 dims by @makslevental in #2661
  • [IMCONSTPROP] Only merge the reset value into a register if the enabl… by @darthscsi in #2780
  • [InferReadWrite] Identify StrictConnectOp patterns along with ConnectOp by @prithayan in #2783
  • [FIRRTL][LowerToHW] Find the DUT in a prepass by @youngar in #2784

New Contributors

Full Changelog: sifive/0/0/8...sifive/0/0/9

Sifive 0.0.8 release

25 Feb 23:45
106815a
Compare
Choose a tag to compare
Sifive 0.0.8 release Pre-release
Pre-release
[FIRRTL] Preserve/Tap all "Named" Nodes or Wires (#2676)

Change end-to-end FIRRTL compilation behavior to preserve (via tapping) all
nodes and wires which are "named".  A "named" node or wire is one whose name
does not begin with an underscore.  Tapping is done by creating a "shadow node"
that is assigned the value of the actual wire and marked "don't touch".

This is done to enable better debug-ability of Chisel designs by enabling users
to always have references to named things they define in Chisel.  More
specifically, anytime a Chisel user defines a `val foo = <expression>`, CIRCT
will now produce a wire called "foo" in the output Verilog.

Add a parser option for controlling whether or not "named" wires and
nodes will be preserved from FIRRTL to Verilog.

Add a firtool command-line option for disabling name preservation during
FIRRTL parsing.

Signed-off-by: Schuyler Eldridge <[email protected]>

Sifive-v0.0.7

11 Feb 22:15
65e798e
Compare
Choose a tag to compare
Sifive-v0.0.7 Pre-release
Pre-release

Internal Sifive release.