- Apr 12, 2022
-
-
mergify[bot] authored
* Fix incorrect deprecation warning for TargetDirAnnotation (#2511) (cherry picked from commit 06ccf51a ) # Conflicts: # src/main/scala/firrtl/package.scala * Resolve backport conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Sep 24, 2021
-
-
mergify[bot] authored
8abf3085 reordered the fields, but it unintentionally placed a closing brace before the actual end of the write port type. This moves the brace to the end of the port. Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit b2cae19b ) # Conflicts: # spec/spec.pdf Co-authored-by:
Richard Xia <rxia@sifive.com>
-
- Aug 27, 2021
-
-
mergify[bot] authored
* Fix dshl zero-width shift behavior (#2339) * Fix dshl zero-width shift behavior Add a special case for dshl handling in the ZeroWidths pass. If one expression is shifted by a second, zero-width expression, just return the first expression. This prevents a bug where the width will incorrectly expand due to zero-widths introducing a 1-bit zero expression. Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com> * fixup! Fix dshl zero-width shift behavior (cherry picked from commit cc80c631 ) # Conflicts: # src/main/scala/firrtl/passes/ZeroWidth.scala * fixup! Fix dshl zero-width shift behavior (#2339) Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
-
- Aug 06, 2021
-
-
mergify[bot] authored
Correct incorrect type specified for memories in the FIRRTL specification. This is important because the memory type determines what is a legal bundle to try to connect to a memory port. I based this off of FIRRTL accepting the following circuit: circuit MemOrder: module MemOrder: input r: {addr : UInt<3>, en : UInt<1>, clk : Clock, flip data : UInt<1>} input w: {addr : UInt<3>, en : UInt<1>, clk : Clock, data : UInt<1>, mask : UInt<1>} input rw: {addr : UInt<3>, en : UInt<1>, clk : Clock, flip rdata : UInt<1>, wmode : UInt<1>, wdata : UInt<1>, wmask : UInt<1>} mem memory: data-type => UInt<1> depth => 8 reader => r writer => w readwriter => rw read-latency => 1 write-latency => 1 read-under-write => undefined memory.r <= r memory.w <= w memory.rw <= rw Signed-off-by:Schuyler Eldridge <schuyler.eldridge@sifive.com> (cherry picked from commit 8abf3085 ) # Conflicts: # spec/spec.pdf Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
-
- Aug 04, 2021
-
-
mergify[bot] authored
Fix an OG bug where Andr, Orr, and Xorr would accept an arbitrary number of operands. Verilog emission doesn't support this and will silently drop all operands after the first. E.g., "andr(a, b)" would emit as "&a". After this commit, "andr(a, b)" will be rejected by checking passes. For archaeological purposes, this appears to have been the behavior dating back to when this was added in d2d3260a . Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com> (cherry picked from commit a643cfd3 ) # Conflicts: # src/main/scala/firrtl/passes/CheckHighForm.scala Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
-
- Apr 22, 2021
-
-
mergify[bot] authored
* Fix CheckWidths error message for uninferred width (#2196) Looks like a typo/auto-merge hiccup. (cherry picked from commit adc2ad9a ) # Conflicts: # src/main/scala/firrtl/passes/CheckWidths.scala * fixup! Fix CheckWidths error message for uninferred width (#2196) Co-authored-by:
Fabian Schuiki <fabian@schuiki.ch> Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
-
- Apr 16, 2021
-
-
mergify[bot] authored
Constant propagation of the Xor op folds `xor(a, SInt(0))` to `asUInt(a)`. For comparison, Or folds to `asUInt(pad(a, W))`. This can be a problem in the following case: circuit Foo : module Foo : input a: UInt<3> output b: UInt<4> b <= asUInt(xor(asSInt(a), SInt<4>(0))) This would emit the assignment as `b = a` instead of the sign-extended `b = {{1{a[2]}},a}`. This requires adjusting the `pad(e, t)` function use in const prop, which currently just inserts a `Pad` prim op with the requested output type. However, the function advertises that it pads *to the width* of the type `t`. Some of the folds rely on this and request the padding of a SInt<N> to the width of a UInt<M>. But the current implementation then then actually returns a `Pad` op with type UInt<M>, instead of the SInt<M> that was requested. (cherry picked from commit e9b2946c ) # Conflicts: # src/main/scala/firrtl/transforms/ConstantPropagation.scala Co-authored-by:Fabian Schuiki <fabian@schuiki.ch>
-
- Mar 27, 2021
-
-
mergify[bot] authored
* Fix bug in zero-width memory removal (#2153) * Fix bug in zero-width memory removal Correctly remove all extraneous connections to all types of memory ports (read, write, readwrite) for zero-width memories. Previously, only read ports were correctly handled. Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com> * fixup! Fix bug in zero-width memory removal (cherry picked from commit 67ce97a1 ) # Conflicts: # src/main/scala/firrtl/passes/ZeroWidth.scala * fixup! Fix bug in zero-width memory removal (#2153) Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com>
-
- Mar 20, 2021
-
-
mergify[bot] authored
* Fix RemoveWires handling of invalidated non-UInt wires (#1949) It would replace them with a validif node with a UIntLiteral which can lead to type errors. (cherry picked from commit c7bbb75b ) # Conflicts: # src/main/scala/firrtl/passes/RemoveValidIf.scala # src/main/scala/firrtl/transforms/RemoveWires.scala * Resolve conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
- Mar 19, 2021
-
-
mergify[bot] authored
Remove all prerequisites and optionalPrerequisites from BlackBoxSourceHelper. These were false dependencies that were added without me actually looking at what the transform does. BlackBoxSourceHelper is an identity transform that only performs IO side effects based on Chisel-generated annotations. Therefore this transform can literally run anytime it wants without consequence. Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> (cherry picked from commit 4b69baba ) Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
* InferTypes: fix bugs with unknown widths on ports and memories (#1769) * InferTypesFlowsAndKindsSpec: test the results of InferTypes, ResolveKinds and ResolveFlows * Don't use passes sub-package in tests This changes two test files using the "passes" sub-package to "firrtl.passes". This allows a new "firrtlTests.passes" package to be freely created and used without a name collision. Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> * ResolveFlows: only depends on types and working ir The types are needed to know the orientation of a bundle field of a SubField node. * InferTypes: fix bugs with unknown widths on ports and memories * LoweringCompileSpec: Uniquify pass moved Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit 734e3e46 ) * Fix backport conflicts Co-authored-by:
Kevin Laeufer <kevin.laeufer@sifive.com> Co-authored-by:
Adam Izraelevitz <adam.izraelevitz@sifive.com> Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Mar 14, 2021
-
-
mergify[bot] authored
* Fix cat of zero-width SInt (#2116) Previously, concatenating two SInts where one is of zero-width would return the non-zero-width SInt. This is incorrect because the output of Cat should be of type UInt. Now the ZeroWidth transform will introduce a cast when removing a Cat when the argument type is non-UInt. (cherry picked from commit fd55c51b ) # Conflicts: # src/main/scala/firrtl/passes/ZeroWidth.scala * Fix merge conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Feb 06, 2021
-
-
mergify[bot] authored
Signed-off-by:
Jean Bruant <jean.bruant@ovhcloud.com> (cherry picked from commit 6e0e7605 ) Co-authored-by:
John's Brew <46595442+johnsbrew@users.noreply.github.com>
-
- Jan 20, 2021
-
-
Jack Koenig authored
* Fix .run_formal_checks for Github Actions instead of Travis * Remove .run_chisel_tests Because we publish SNAPSHOTs on every merge to master, the Chisel repo checks against master of FIRRTL regularly * Only run unidoc for Scala 2.12 Under Travis we ran for 2.11, 2.12, and 2.13, but it doesn't work when using ++2.<major>.<minor> when major != to 2.12. It seems if we want to run all 3, we have to run as `sbt +unidoc`. It's not clear how much benefit we get from building on the other versions, so stick with 2.12 for now. * Generate .mergify.yml with script in chisel-repo-tools Generated with config: conditions: - status-success=all tests passed branches: - 1.2.x - 1.3.x - 1.4.x (cherry picked from commit bbd7fc41)
-
- Dec 12, 2020
-
-
mergify[bot] authored
(cherry picked from commit 93869cce ) Co-authored-by:
Megan Wachs <megan@sifive.com>
-
- Dec 08, 2020
-
-
mergify[bot] authored
Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit b02bea66 ) Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Dec 05, 2020
-
-
mergify[bot] authored
This is now set by sbt-ci-release (cherry picked from commit 862aaec4 ) Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Dec 03, 2020
-
-
mergify[bot] authored
sbt-ci-release changes the commands required to publish to Sonatype. While this may be a desirable change at some point, it is inconsistent with other repos. Reverting for the time being. (cherry picked from commit 594f783b ) Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Nov 24, 2020
-
-
mergify[bot] authored
* Make MultiTargetAnnotation.targets a def (#1969) * Make MultiTargetAnnotation.targets a def This enables the annotation writer to choose their own underlying data structure * Update MultiTargetAnnotation ScalaDoc Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit cd845bdb ) # Conflicts: # src/main/scala/firrtl/annotations/Annotation.scala * Resolve merge conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
Verilator 4.034 was complaining about wires being named weak and strong because those are SV 2009 keywords. Added them to the Utils.v_keywords list (cherry picked from commit 3be73de2 ) Co-authored-by:
Tim Snyder <timothy.snyder@sifive.com>
-
- Nov 17, 2020
-
-
mergify[bot] authored
(cherry picked from commit c9feb47d ) Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Nov 14, 2020
-
-
mergify[bot] authored
* Automatically publish SNAPSHOTs on pushes to master (#1955) Uses sbt-ci-release for automation (cherry picked from commit 06843bd9 ) # Conflicts: # .travis.yml # project/plugins.sbt * Resolve merge conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Nov 10, 2020
-
-
mergify[bot] authored
* -full64 is required to detect VCS. (#1930) (cherry picked from commit 1d0b1138 ) # Conflicts: # src/main/scala/firrtl/FileUtils.scala * Update FileUtils.scala Co-authored-by:
Jiuyang Liu <liu@jiuyang.me> Co-authored-by:
Adam Izraelevitz <azidar@gmail.com>
-
- Oct 14, 2020
-
-
mergify[bot] authored
* Faster dedup instance graph (#1732) * dedup: add faster InstanceGraph implementation and use it in dedup The new implementation takes care not to hash the instance types contained in DefInstance nodes. This should make dedup considerably faster. * FastInstanceGraph: cache vertices for faster findInstancesInHierarchy * FastInstanceGraph: remove the parent name field since it isn't actually necessary * FastInstanceGraph -> InstanceKeyGraph * InstanceGraph: describe performance problems. * InstanceKeyGraph: turn moduleMap into a def instead of a val This will make changing implementation details much easier in the future. * InstanceKeyGraph: return childInstances as Seq instead of Map This ensures a deterministic iteration order and it can easily be turned into a Map for O(1) accesses. * InstanceKeyGraph: add tests for public methods * InstanceKeyGraph: group public methods together * InstanceKeyGraphSpec: fix wording of a comment Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit 1b9f4ddf ) # Conflicts: # src/main/scala/firrtl/transforms/Dedup.scala * Fix conflicts Co-authored-by:
Kevin Laeufer <kevin.laeufer@sifive.com> Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
* Better error messages for unserializable annotations (#1885) (cherry picked from commit 47c81ee3 ) # Conflicts: # src/main/scala/firrtl/annotations/AnnotationUtils.scala # src/test/scala/firrtlTests/annotationTests/JsonProtocolSpec.scala * Fix conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit 7174098c ) Co-authored-by:
Jiuyang Liu <liujiuyang1994@gmail.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
Force a synchronization point on InferWidths.run due to get a lock on the mutable constraint solver. This prevents a rare threading issue where the same compiler is run multiple times in parallel. This is a backport of #1775 using a different technique that is binary compatible with the 1.3.x. Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
- Oct 13, 2020
-
-
Adam Izraelevitz authored
Bump MiMa previous artifacts to 1.3.2
-
- Oct 09, 2020
-
-
Jack Koenig authored
-
- Oct 01, 2020
-
-
mergify[bot] authored
* Backport #1908 Co-authored-by:Albert Magyar <albert.magyar@gmail.com>
-
- Sep 15, 2020
-
-
mergify[bot] authored
Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit 5f410f0e ) Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Sep 11, 2020
-
-
mergify[bot] authored
Co-authored-by:
chick <chick@qrhino.com> Co-authored-by:
Albert Magyar <albert.magyar@gmail.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit a8295871 ) Co-authored-by:
Kevin Laeufer <kevin.laeufer@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
* Add test for mem port clock legalization Co-authored-by:Albert Magyar <albert.magyar@gmail.com>
-
mergify[bot] authored
* Async reset tieoff bug (#1854) * Elide emission of literals for async reset in sensitivity lists * Deprecate LegalizeClocksTransform Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit 72d3983b ) # Conflicts: # src/main/scala/firrtl/transforms/LegalizeClocksAndAsyncResets.scala # src/test/scala/firrtlTests/AsyncResetSpec.scala # src/test/scala/firrtlTests/transforms/LegalizeClocks.scala * Resolve merge conflicts for BP PR#1861 Co-authored-by:
David Biancolin <biancolin@eecs.berkeley.edu> Co-authored-by:
David Biancolin <david.biancolin@gmail.com>
-
mergify[bot] authored
(cherry picked from commit e87f3f63 ) Co-authored-by:
Albert Magyar <albert.magyar@gmail.com>
-
- Aug 07, 2020
-
-
mergify[bot] authored
Adds missing deprecation warnings to firrtl.Compiler methods: compile and compileAndEmit. This provides a more informative message to the user about how to actually migrate. Without this, the user only has the generic deprecation warning about class Compiler. Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit e44cb05e ) Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Aug 01, 2020
-
-
mergify[bot] authored
* add sign-extend const-prop test * Emitter: don't wrap Neg operand in concat (cherry picked from commit b24b9a01 ) Co-authored-by:
Albert Chen <40366337+albertchen-sifive@users.noreply.github.com>
-
Albert Chen authored
* add const prop bitwise reduction equivalence test * mask negative literals when propagating reduction * change widths * get rid of unnecessary if * add BigInt mask utility
-
- Jul 31, 2020
-
-
mergify[bot] authored
* test const prop of addition of negative literals * Emitter: handle minimum negative values correctly * update expected verilog in AsyncResetSpec (cherry picked from commit ea558ad7 ) Co-authored-by:
Albert Chen <40366337+albertchen-sifive@users.noreply.github.com>
-
mergify[bot] authored
* ConstProp: test bitwise op of signed literals * ConstProp: use bit mask for FoldOr/FoldXor * handle and also * add UIntLiteral.masked helper Co-authored-by:
Jack Koenig <koenig@sifive.com> (cherry picked from commit 1927dc65 ) Co-authored-by:
Albert Chen <40366337+albertchen-sifive@users.noreply.github.com>
-