- 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 10, 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 ) 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
* Remove explicit pom scm from build.sbt (#2004) This is now set by sbt-ci-release (cherry picked from commit 862aaec4 ) # Conflicts: # build.sbt * Resolve conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
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 # src/test/scala/firrtlTests/RemoveWiresSpec.scala * Resolve conflicts Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.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>
-
- 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 03, 2020
-
-
mergify[bot] authored
* Restore publish settings to before sbt-ci-release (#1999) 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 ) # Conflicts: # build.sbt * Resolve merge conflicts 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 # build.sbt # project/plugins.sbt * Resolve merge conflicts Co-authored-by:
Jack Koenig <koenig@sifive.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
* Build ArrayBuffers in Block.mapStmt (#1669) * Build ArrayBuffers in Block.mapStmt * Have empty Block serialize as "skip" The FIRRTL parser requires at least one indented line in each module. Sometimes tests emit and parse modules with no contents; this ensures there's always at least a "skip" in empty modules. Also fix tests that expected certain skips * Use var List as stack in Block.mapStmt impl This replaces Iterator concatenation. In Scala 2.11, RHS recursion on Iterators is not stack safe. This seems to have been fixed in 2.12 by Scala PR 5033. Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit 1e497ce3 ) # Conflicts: # src/test/scala/firrtlTests/annotationTests/EliminateTargetPathsSpec.scala # src/test/scala/firrtlTests/annotationTests/MorphismSpec.scala * Fix up backport conflict in EliminateTargetPathsSpec Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
chick <chick@qrhino.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
* DRY out transform running and annotation remapping (cherry picked from commit 1930b7b0) # Conflicts: # src/main/scala/firrtl/Compiler.scala # src/main/scala/firrtl/stage/transforms/UpdateAnnotations.scala * Do not throw NonFatal exceptions in annotation logging If an annotation cannot be serialized by json4s, we should not throw exceptions when doing trace-level logging. (cherry picked from commit db7928a4 ) # Conflicts: # src/main/scala/firrtl/Compiler.scala * Fixup backport Signed-off-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com> Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@sifive.com> Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
mergify[bot] authored
* Refactor benchmark_code_compile.py to have job running utility This provides a common Python interfaces for monitoring resource usage of subprocesses Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> (cherry picked from commit 038faf9f ) * Add find_heap_bound.py script for finding minimum heap size Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> (cherry picked from commit f7ae514f ) # Conflicts: # .travis.yml * Fix conflicts Co-authored-by:
Jack Koenig <koenig@sifive.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.2.7
-
- 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
-
-
Albert Magyar authored
Specify appropriate Chisel and Treadle branches for CI tests (bp #1892)
-
Albert Magyar authored
(cherry picked from commit e87f3f63)
-
- 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
* test const prop of addition of negative literals * Emitter: handle minimum negative values correctly * update expected verilog in AsyncResetSpec
-
- Jul 31, 2020
-
-
Albert Chen authored
[1.2.x] mask bits when propagating bitwise ops (bp #1745)
-
Albert Chen 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>
-
- Jul 30, 2020
-
-
mergify[bot] authored
* WiringUtils.sinksToSources: make sinkInsts order deterministic * WiringUtils: make owners a LinkedHashMap * Wiring: only make something a Wire if it isn't a port already Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit c02c9b7f ) Co-authored-by:
Kevin Laeufer <kevin.laeufer@sifive.com>
-
- Jul 16, 2020
-
-
mergify[bot] authored
* Change ProtoBuf generated directory (#1762) Changed from target/<scala-version>/src_managed/main/firrtl/ to target/<scala-version>/src_managed/main/compiled_protobuf/firrtl/ The protobuf generation clears its target directory so it would clear the generated ANTLR-generated files. (cherry picked from commit c14330d6 ) # Conflicts: # build.sbt * Fix for 1.2.x Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Jun 26, 2020
-
-
Schuyler Eldridge authored
Batch renames in LowerTypes (bp #1718)
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Jun 24, 2020
-
-
mergify[bot] authored
* Don't Dedup modules if it would change semantics (#1713) If a module has ports of type Bundle that are used in aggregate connections in parent modules, Dedup cannot change the names of the fields of the Bundle or it would change the semantics of the connection. Dedup now detects this case and refrains from agnostifying the ports of such modules to prevent this issue. (cherry picked from commit e0e68568 ) # Conflicts: # src/main/scala/firrtl/transforms/Dedup.scala # src/test/scala/firrtlTests/transforms/DedupTests.scala * Fixup for 1.2.x Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
mergify[bot] authored
* Add support for ValidIf to ProtoBuf [de]serialization (cherry picked from commit d1db9067 ) # Conflicts: # src/test/scala/firrtlTests/ProtoBufSpec.scala * Fixup ProtoBuf ValidIf test for 1.2.x Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Jun 11, 2020
-
-
mergify[bot] authored
* Use Travis Workspaces (#1675) * Use Travis Workspaces Add stage to build FIRRTL and share it with later steps running the tests * [CI] Do not sbt clean in formal_equiv.sh This change takes advantage of shared workspace in Travis Co-authored-by:
mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit 1769f8d7 ) # Conflicts: # .travis.yml * Resolve conflicts * Bump SBT to 1.3.10 Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Jun 10, 2020
-
-
mergify[bot] authored
* Speed up ExpandWhens for very large designs (#1666) Use WrappedExpression instead of MemoizedHash. The benefit of memoizing the hash pales in comparison to the cost of hashing deeply nested Types in the AST. Co-authored-by:
Schuyler Eldridge <schuyler.eldridge@ibm.com> (cherry picked from commit bffc340e ) * Change deprecated since to 1.2.7 Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Jun 07, 2020
-
-
Jack Koenig authored
-
- Jun 04, 2020
-
-
Albert Magyar authored
Limit recursion (and reduce total work) in CheckWidths (bp #1646)
-