- Dec 06, 2022
-
-
Jiuyang Liu authored
-
Jiuyang Liu authored
-
Jiuyang Liu authored
-
Jiuyang Liu authored
-
Jiuyang Liu authored
-
Jiuyang Liu authored
* add upickle to dependency * implement SerializableModuleGenerator to serialize a parameterized module * add simple test * Add mdoc Co-authored-by:
Jack Koenig <koenig@sifive.com> Co-authored-by:
Jack Koenig <koenig@sifive.com>
-
- Dec 04, 2022
-
-
Jack Koenig authored
-
Jack Koenig authored
* Don't copy _ids to a Seq just to Iterate on them Saves a copy of a large data structure. * Only add Data to _ids when the binding is constrained ConstrainedBinding means that the bound Data is scoped to a module. Since _ids are used for naming of signals within a module, there is no reason to add Unconstrained Data to the _ids of the Module they were constructed during. Unconstrained Data include things like literals and children of Aggregates (which sort of are constrained to a Module but only via their parent, they are not directly named by the module).
-
- Dec 02, 2022
-
-
Aditya Naik authored
-
- Dec 01, 2022
-
-
Adam Izraelevitz authored
-
- Nov 30, 2022
-
-
Adam Izraelevitz authored
Includes support for waiving unmatched fields from triggering errors, and mismatched widths from triggering errors. Includes extensive documentation and tests. Co-authored-by:Megan Wachs <megan@sifive.com>
-
- Nov 29, 2022
-
-
Jack Koenig authored
The namespace disambiguates requests for the same name with _<idx>. Rather than storing every disambiguated name in the underlying HashMap, it now only stores the base along with the "next available" index. This makes the logic for checking if a name is already contained in the namespace slightly more sophisticated because users can name things in a way that will collide with disambiguated names from a common substring. For example, in naming the sequence "foo", "foo", "foo_1", the 2nd "foo" takes the name "foo_1" so the following "foo_1" gets disambiguated to "foo_1_1". But since we compressed that original "foo_1" into the same HashMap entry as just "foo", we have to do a form of "prefix checking" whenever naming something that ends in "_<idx>". In practice, the saved memory allocations more than make up for the more complicated logic to disambiguate names because the common case is still fast.
-
- Nov 19, 2022
-
-
Jack Koenig authored
It used to be implemented with recursion, now it's implemented with a stack safe reverse and foldLeft. Also there were no tests for PriorityMux so I added one which helps prove the change is functionally correct.
-
- Nov 17, 2022
-
-
Daniel Resnick authored
* Use SourceInfo in Builder error messages when available * Use line break instead of semicolon Co-authored-by:
Jack Koenig <jack.koenig3@gmail.com> Co-authored-by:
Jack Koenig <jack.koenig3@gmail.com>
-
- Nov 15, 2022
-
-
Megan Wachs authored
-
Jiuyang Liu authored
Move InjectingTransform to Chisel Phase
-
- Nov 11, 2022
-
-
Chick Markley authored
Adds a new call `getModulePortsAndLocators` which returns a list of 2-tuples of (Port, SourceLocators) Fixed up internal calls to use the correct call Co-authored-by:Jack Koenig <koenig@sifive.com>
-
Megan Wachs authored
-
Jack Koenig authored
* Change RawModule._commands to a VectorBuilder Use the resulting Vector to build the underlying Component's commands and then use those instead of copying the original ArrayBuffer when iterating on commands. Previously, the Component was using a List to hold the commands which is particularly memory inefficient, especially for large modules. * Optimize Converter's handling of Seq[Command] It previously converted the Commands to a List (which, while not captured in the type system, they were already a List) and then used head and tail iteration. This is less efficient with the new underlying Vector implementation.
-
- Nov 09, 2022
-
-
Adam Izraelevitz authored
-
Jack Koenig authored
-
Jack Koenig authored
-
Jack Koenig authored
This makes it more clear that the feature is experimental. Users may still override the opaqueType method for more dynamic control over when instances of a given Record are OpaqueTypes or not, but they are discouraged from doing so.
-
- Nov 08, 2022
-
-
Megan Wachs authored
-
Jack Koenig authored
Co-authored-by:mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
-
Adam Izraelevitz authored
* Bugfix: Output on Vec of bundle with mixed field orientations * Bugfix OpaqueTypes clearing flips
-
Jack Koenig authored
Improve Record.bind and Detect Records with unstable elements
-
- Nov 06, 2022
-
-
Jack Koenig authored
-
Jack Koenig authored
This replaces an immutable.Map with a single mutable.HashSet and saves the allocation of # elements Seqs.
-
Jack Koenig authored
Vec overrides bind and does not call the version in Aggregate so the version in Aggregate is misleading in that its only ever used by Records. Now there is no version in Aggregate and the actual functionality and use is more clear.
-
Jack Koenig authored
elementsIterator provides a more efficient API for iterating on the elements of Aggregates. It is especially useful for Records where getElements returns a Seq and thus eagerly constructs a new datastructure which may then just be iterated on anyway. This new elementsIterator API is then used throughout the codebase where it makes sense. Also change Vec.getElements to just return the underlying self instead of constructing a new Seq.
-
Jack Koenig authored
Co-authored-by:Megan Wachs <megan@sifive.com>
-
- Nov 05, 2022
-
-
Jack Koenig authored
This factory method makes it easy to create PartialDataViews from a Bundle type to its supertype. Because of the typing relationship, there is no need to provide a mapping between fields. The only thing necessary is to provide a function for constructing an instance of the supertype from an instance of the subtype.
-
- Nov 02, 2022
-
-
Jiuyang Liu authored
-
- Oct 25, 2022
-
-
Megan Wachs authored
* Add initial roadmap Co-authored-by:edwardcwang <edwardcwang@users.noreply.github.com>
-
Jiuyang Liu authored
* add scalafmt for test in mill build system. * reformat codes in integration-tests
-
- Oct 24, 2022
-
-
Megan Wachs authored
MonoConnect.traceFlow now properly handles coerced directions. Also minor improvement to getClassName especially useful in test case printf debugging.
-
- Oct 22, 2022
-
-
Jared Barocsi authored
* Don't invalidate ExtModule ports in an explicitInvalidate = true context ExtModule ports were previously invalidated in the emitted FIRRTL, which is correct in a NonStrict / `Chisel._` compatibility context but not in newer chisel3 code where `explicitInvalidate = true`.
-
- Oct 20, 2022
-
-
Jared Barocsi authored
-
- Oct 19, 2022
-
-
Jared Barocsi authored
Don't modify the Builder prefix if reinvoking suggestName on a Data
-