| Age | Commit message (Collapse) | Author |
|
Also remove all non-testing uses of chiselName.
(cherry picked from commit 1c5d1b5317a0c9fe7ef9d15138065a817380a1e4)
Co-authored-by: Jared Barocsi <82000041+jared-barocsi@users.noreply.github.com>
|
|
* Add copy constructors for compile options
* Add tests for the copy constructors
Co-authored-by: Jiuyang Liu <liu@jiuyang.me>
|
|
(cherry picked from commit 4b10cf7a276e90b280c1fd57070566acac3d80d3)
Co-authored-by: Girish Pai <girish.pai@sifive.com>
|
|
* Update scala-compiler, scala-library, ... to 2.12.16 (#2618)
* Update scala-compiler, scala-library, ... to 2.12.16
* Add 2.12.16 to compiler plugin crossbuild
Co-authored-by: Jack Koenig <jack.koenig3@gmail.com>
(cherry picked from commit e4f663574b740164f4f49c0e31cb12c69dce5beb)
# Conflicts:
# .github/workflows/test.yml
* Resolve backport conflicts
* Ignore lack of plugin 3.5.3 artifact for Scala 2.12.16
Since 2.12.16 did not exist when 3.5.3 was published, there is no
artifact for the plugin so we must ignore it until 3.5.4 is released.
Co-authored-by: Scala Steward <43047562+scala-steward@users.noreply.github.com>
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(cherry picked from commit 11e8cc60d6268301cff352b8a1d7c4d672b5be11)
Co-authored-by: Megan Wachs <megan@sifive.com>
|
|
#2612) (#2620)
* Refactor TruthTable.apply and add factory method for Espresso (#2612)
Improves performance of creating TruthTables by processing entire BitPats
rather than individual bits. New TruthTable factory method enables
constructing TruthTables with semantics of OR-ing output BitPats together
rather than erroring when multiple terms have the same input BitPat.
This alternative factory method matches semantics for the output format
of Espresso.
Co-authored-by: Megan Wachs <megan@sifive.com>
Co-authored-by: Jack Koenig <koenig@sifive.com>
(cherry picked from commit 231f14e74f112a9f721e774561126b2bd1250039)
# Conflicts:
# src/main/scala/chisel3/util/BitPat.scala
* Resolve backport conflicts
Co-authored-by: Aditya Naik <91489422+adkian-sifive@users.noreply.github.com>
|
|
(#2617)
Co-authored-by: Jack Koenig <koenig@sifive.com>
Co-authored-by: Megan Wachs <megan@sifive.com>
(cherry picked from commit 3ab34cddd8b87c22d5fc31020f10ddb2f1990d51)
Co-authored-by: Jared Barocsi <82000041+jared-barocsi@users.noreply.github.com>
|
|
Links between markdown pages should not have any file extension to ensure they work on the website.
(cherry picked from commit 04d4dc6da11678d0f12f84913fc05359d9a998a1)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
* Deprecate TransitName (#2603)
* Deprecate TransitName
* Add @nowarn macros to usages of TransitName in the repo
Co-authored-by: Jack Koenig <koenig@sifive.com>
(cherry picked from commit a0b05190e5303ec28a0c7abe645d81e9a72023ff)
* Update src/main/scala/chisel3/util/Valid.scala
* Update src/main/scala/chisel3/util/Valid.scala
Co-authored-by: Megan Wachs <megan@sifive.com>
|
|
* Publish unidoc as ScalaDoc in chisel project (#2595)
This makes it such that we can stop hosting ScalaDoc on the Chisel
website, instead just pointing to the latest docs on javadoc.io
(cherry picked from commit 8b9f3d78ea23d9d9f0a118d1a2c30478ca2ff2f9)
# Conflicts:
# build.sbt
* Resolve backport conflicts
Co-authored-by: Jack Koenig <koenig@sifive.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
(cherry picked from commit 7fa0d8bf1cafcdf141046476a100abf021bdcac4)
Co-authored-by: Zachary Yedidia <zyedidia@gmail.com>
|
|
Co-authored-by: Megan Wachs <megan@sifive.com>
(cherry picked from commit 4da410e09263ac6cdafce63858ee2f4c552e914f)
Co-authored-by: Michael Etzkorn 叶明凯 <34870910+metzkorn@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
(#2593) (#2599)
(cherry picked from commit 6ecf4d39d413a7d955a8b358cb34685aaefed1a2)
Co-authored-by: Carlos Eduardo <me@carlosedp.com>
|
|
Used for separate elaboration of Definition and Instance
(cherry picked from commit 48d57cc8db6f38fdf0e23b7dce36caa404c871b8)
Co-authored-by: Girish Pai <girish.pai@sifive.com>
|
|
* Make readme friendlier to beginners (#2586)
(cherry picked from commit 773d2d675dd0c1697b8daeab67755834c0a9c735)
# Conflicts:
# README.md
* Resolve backport conflicts
Co-authored-by: Carlos Eduardo <me@carlosedp.com>
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
Previously, the plugin would crash with a useless internal error.
(cherry picked from commit 9fcfb252beb9f06d8d1409fe7db9c8b3b6b962ce)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(cherry picked from commit d54a37a51b16fb6e46093265d65fd47d5318f67f)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
* Define leading '_' as API for creating temporaries
Chisel and FIRRTL have long used signals with names beginning with an
underscore as an API to specify that the name does not really matter.
Tools like Verilator follow a similar convention and exclude signals
with underscore names from waveform dumps by default. With the
introduction of compiler-plugin prefixing in Chisel 3.4, the convention
remained but was hard for users to use unless the unnnamed signal
existed outside of any prefix domain. Notably, unnamed signals are most
useful when creating wires inside of utility methods which almost always
results in the signal ending up with a prefix.
With this commit, Chisel explicitly recognizes signals whos val names
start with an underscore and preserve that underscore regardless of any
prefixing. Chisel will also ignore such underscores when generating
prefixes based on the temporary signal, preventing accidental double
underscores in the names of signals that are prefixed by the temporary.
(cherry picked from commit bd94366290886f3489d58f88b9768c7c11fa2cb6)
* Remove unused defaultPrefix argument from _computeName
(cherry picked from commit ec178aa20a830df2c8c756b9e569709a59073554)
# Conflicts:
# core/src/main/scala/chisel3/Module.scala
# core/src/main/scala/chisel3/experimental/hierarchy/ModuleClone.scala
* Resolve backport conflicts
* Waive false positive binary compatibility errors
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
option (#2575) (#2579)
* Added ImplicitInvalidate trait with tests
(cherry picked from commit 1356ced1b89ca35ae0cb1d1ab45227ec1776d5e7)
Co-authored-by: Adam Izraelevitz <adam.izraelevitz@sifive.com>
|
|
BitPat.rawString is called a lot when decoding and is used for certain
BitPat operations. We should use it less but this is at least a bandaid.
(cherry picked from commit c11af20fe5b211ec72ba00f3ce0880d7933e566b)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
Co-authored-by: Jack Koenig <koenig@sifive.com>
(cherry picked from commit 3c6c044b6bdee850ad9ba375324abaf3813c557d)
Co-authored-by: Adam Izraelevitz <adam.izraelevitz@sifive.com>
|
|
Include the function being called in the suggestion.
(cherry picked from commit 296623f6f41eb9f54899277621902679bb6b497c)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(cherry picked from commit 255c56c3955a8c16191a6751e7d547cfcfd96705)
Co-authored-by: Jared Barocsi <82000041+jared-barocsi@users.noreply.github.com>
|
|
* Factor buildName into reusable function
The new function is chisel3.internal.buildName.
(cherry picked from commit 370ca8ac68f6d888dd99e1b9e63f0371add398cf)
* Add --warn:reflective-naming
This new argument (and associated annotation) will turn on a warning
whenever reflective naming changes the name of a signal. This is
provided to help migrate from Chisel 3.5 to 3.6 since reflective naming
is removed in Chisel 3.6.
(cherry picked from commit 97afd9b9a1155fa7cd5cedf19f9e0c15fbe899ec)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
#2534) (#2559)
* Deprecate .U() and .S() syntax for literal bit extracts (#2534)
(cherry picked from commit cadaf33a650ef898fdab2f81244e4ad6a07a9ea8)
# Conflicts:
# macros/src/main/scala/chisel3/internal/sourceinfo/SourceInfoTransform.scala
* Fix backport conflict (#2560)
Co-authored-by: Jared Barocsi <82000041+jared-barocsi@users.noreply.github.com>
|
|
Previously, verification statements (assert, assume, cover, and printf)
were only named via reflection.
(cherry picked from commit 7fa2691f670813eef4ec59fc27c4e4f625d598de)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
This is a formatted version of the p"..." interpolator analogous to
Scala's f"..." interpolator. The primary difference is that it supports
formatting interpolated variables by following the variable with
"%<specifier>". For example:
printf(cf"myWire = $myWire%x\n")
This will format the hardware value "myWire" as a hexidecimal value in
the emitted Verilog. Note that literal "%" must be escaped as "%%".
Scala types and format specifiers are supported and are handled in the
same manner as in standard Scala f"..." interpolators.
(cherry picked from commit 037f7b2ff3a46184d1b82e1b590a7572bfa6a76b)
Co-authored-by: Girish Pai <girish.pai@sifive.com>
|
|
This includes (and is tested) for both the old .*Name APIs and
.toTarget
(cherry picked from commit 6e0d8d6b12e9d8f94c2cc43b92b2366ec70dfd50)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
ExtModule now uses the same namePorts implementation as regular Modules.
Previously, ExtModules only allowed port naming via runtime reflection.
This meant that .suggestName and other naming APIs do not work. It also
breaks FlatIO for ExtModule which is a potential replacement API for
BlackBox's special `val io` handling.
(cherry picked from commit 83cccfb782d9141bf2c843246c2a525c62392924)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(cherry picked from commit a1e3a6b5324997864168111bee8c02a60abb0acc)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(cherry picked from commit 77a6c93592d5766d66f199720fc6d69478005091)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(cherry picked from commit 68510515467ef7a86c54b2e710bfc5e736f7a2aa)
Co-authored-by: Gonsolo <gonsolo@gmail.com>
|
|
These methods will start using def macros and since def macros do not
supported named arguments this will be a source-incompatible change.
This deprecation will warn users that they need to remove any uses of
named arguments on these methods.
|
|
|
|
* Update CONTRIBUTING.md with backport cleanup process (#2523)
(cherry picked from commit ac19ff70458959e795933c7aad6bab88a16fcf5d)
# Conflicts:
# CONTRIBUTING.md
* Resolve conflicts
Co-authored-by: Megan Wachs <megan@sifive.com>
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(backport #2512) (#2520)
* Support separately elaborating definition and instance in ChiselStage (#2512)
(cherry picked from commit a0aa4d1550e3fbde199a98529cffeb176fb4bed8)
# Conflicts:
# core/src/main/scala/chisel3/experimental/hierarchy/Definition.scala
# core/src/main/scala/chisel3/experimental/hierarchy/Instance.scala
# core/src/main/scala/chisel3/internal/Builder.scala
* fixing imports (#2522)
Co-authored-by: Deborah Soung <debs@sifive.com>
|
|
|
|
|
|
For traits or abstract classes that extend Bundle but have no concrete
methods, the plugin will print a benign warning that the user cannot
fix. It will no longer print that warning.
(cherry picked from commit ed4a98188ee1fe43efbd3a1ba43a657a128764d6)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(cherry picked from commit f9aee1f72744abc6ee13aafc4d1a51a2783cbab8)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
In Scala 2.13, Auto-application to `()` is deprecated. Any nullary
method (ie. a method with no arguments) that is defined with () must now
be called with (). @chiselName used to inject a case of this warning
into user code which would then cause a warning on the @chiselName macro
that the user has no way to fix.
(cherry picked from commit ca902680df772445371e6c3dd907c01113afb1f5)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
The difference in logic depth for various paths now has a maximum of 1.
Also make treeReduce order the same for 2.12 and 2.13
.grouped(_) returns an Iterator
.toSeq on an Iterator returns a Stream in 2.12 and a List in 2.13
This can lead to changes in order when bumping from 2.12 to 2.13 that
can be avoided by simply using an eager collection explicitly.
Co-authored-by: Jack Koenig <koenig@sifive.com>
(cherry picked from commit 6975f77f3325dec46c613552eac663c29011a67c)
Co-authored-by: Martin Schoeberl <martin@jopdesign.com>
|
|
Fixes #2470
(cherry picked from commit 44165a259bb16733a41798edca6b554b13f1d54a)
Co-authored-by: Kevin Laeufer <laeufer@cs.berkeley.edu>
|
|
This is a quick fix for issue #2408
(cherry picked from commit d4ef9a96c4131252a0a49002a28be3391eb67258)
Co-authored-by: Kevin Laeufer <laeufer@cs.berkeley.edu>
|
|
(cherry picked from commit 52165fe2796d08c664069c148868aedc64ea3777)
Co-authored-by: Lucheng Zhang <79909456+geekLucian@users.noreply.github.com>
|
|
(cherry picked from commit d6a357d29cfa7120b3c0c90684b33be1863e5599)
Co-authored-by: Megan Wachs <megan@sifive.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
|
|
Loosen restrictions on clocks to enable them to be connected to
DontCare, i.e., be invalidated.
Co-authored-by: Jack Koenig <koenig@sifive.com>
Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
Co-authored-by: Jack Koenig <koenig@sifive.com>
(cherry picked from commit 5d8a0c8e406376f7ceda91273fb0fa7a646865aa)
Co-authored-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
|
|
* Use a single field instead of two in HasId (4-bytes per HasId)
* Set the prefix to Nil after setting ref to free up memory
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 3aa179f0dc1a29403fd25be7d3dc08630976d018)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
(backport #2476) (#2479)
* Capture 1:1 mappings of Aggregates inside of views
This is implemented by including any corresponding Aggregates from the
DataView.mapping in the AggregateViewBinding.childMap (which is now of
type Map[Data, Data]).
This enables dynamically indexing Vecs that are themselves elements of
larger Aggregates in views when the corresponding element of the view is
a Vec of the same type. It also increases the number of cases where a
single Target can represent part of a view.
(cherry picked from commit 1f6b1ca14ccf86918065073c3f6f3626dd83a68e)
* Add FlatIO API for creating ports from Bundles without a prefix
(cherry picked from commit 772a3a1fe3b9372b7c2d7cd2d424b2adcd633cdb)
* [docs] Add FlatIO to the general cookbook
(cherry picked from commit b4159641350f238f0f899b69954142ce8ee11544)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|
|
* During sanitize, only filter the String if needed
* Do not recurse on name, saving an unnecessary call to sanitize
(cherry picked from commit 559b3df3e5bd6c73588638aa44a6df1244a11a53)
Co-authored-by: Jack Koenig <koenig@sifive.com>
|