- Oct 30, 2018
-
-
Schuyler Eldridge authored
This switches from using an overloaded bind to an overloaded connect when emitting StrongEnum annotations. Use of bind proved difficult to differentiate between assignment and subindexing. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Oct 28, 2018
-
-
Schuyler Eldridge authored
Make BaseModule.name lazy
-
- Oct 26, 2018
-
-
Schuyler Eldridge authored
This wraps the evaluation of BaseModule.name in try/catch to look for a NullPointerException that may result from trying to evaluate desiredName before it's ready. This catches a test case of using a desiredName that depends on a later defined eager subinstance. h/t @jackkoenig Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This changes BaseModule.name to be lazy (instead of eager) to enable a desiredName to be a function of a sub-instance. This includes a test case showing the new behavior. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Oct 13, 2018
-
-
Hasan Genc authored
* Added new strongly-typed enum construct called "StrongEnum". "StrongEnum" will automatically generate annotations that HDL backends can use to mark components as enums Removed "override val width" constructor parameter from "Element" so that classes with variable widths, like the new strong enums, can inherit from it Changed the parameter types of certain functions, such as "switch", "is", and "LitArg.bindLitArg" from "Bits" to "Element", so that they can take the new strong enums as arguments * Added tests for the new strong enums * Changed StrongEnum exception names and made sure in StrongEnum tests that the correct types of exceptions are thrown * Fixed bug where an enum's global annotation would not be set if it was used in multiple circuits Made styling changes to StrongEnum.scala * Reverted accidental changes to the AnnotatingDiamond test * Changed the API for casting non-literal UInts to enums Added an isValid function that checks whether or not enums have valid values Calling getWidth on an enum's companion object now returns a BigInt instead of an Int * Casting a literal to an enum using the StrongEnum.castFromNonLit(n) function is now simply a wrapper for StrongEnum.apply(n) * Fixed compilation bug * * Added "next" method to EnumType * Renamed "castFromNonLit" to "fromBits" * The FSM example in the test/scala/cookbook now uses StrongEnums * * Changed strong enum API, so that users no longer have to declare both a class and a companion object for each strong enum * Strong enums do not have to be static any longer * * Added scope protections to ChiselEnum.Value so that users cannot call it outside of a ChiselEnum definition * Renamed ChiselEnum.Value type to ChiselEnum.Type so that we can give it a companion object just like UInt and Bool do * * Moved strong enums into experimental package * Non-literal UInts can now be cast to enums with apply() rather than fromBits() * Reduced code-duplication by moving some functions from EnumType and Bits to Element
-
- Oct 12, 2018
-
-
Jim Lawson authored
* Drop pomExtra scm definitions (now generated by git.remoteRepo. * Incorporate lessons learned from latest publishing.
-
- Oct 05, 2018
-
-
Schuyler Eldridge authored
Change InlineSpec to expect "_" and not "$"
-
Schuyler Eldridge authored
A FIRRTL change to inlining changes the inlined instance delimiter to "_" from "$". This change is reflected here in an update to the associated Chisel tests for the Inline API. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Oct 04, 2018
-
-
Richard Lin authored
-
Steve Burns authored
* Modify noenq to set the input wires to DontCare.
-
- Sep 29, 2018
-
-
Schuyler Eldridge authored
- Add dumpAnnotations method to Driver
-
- Sep 28, 2018
-
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Sep 22, 2018
-
-
Albert Magyar authored
-
- Sep 21, 2018
-
-
edwardcwang authored
-
- Sep 15, 2018
-
-
grebe authored
The litOption field currently has no type that can be inferred. Some subtypes override it and give it a type, but the original declaration should have a type so things like bundles can override it.
-
- Sep 14, 2018
-
-
Jim Lawson authored
-
- Sep 08, 2018
-
-
Schuyler Eldridge authored
API Documentation Improvements
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Minor updates to Element's documentation to conform with ScalaDoc style. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Adds documentation of Arithmetic, Bitwise, and Comparison operators for SInt. The duplication of documentation between UInt and SInt strongly indicate a unification around Num would make sense. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds documentation of Arithmetic, Comparison, and Bitwise operator methods of UInt. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This includes general documentation for the arithmetic and comparison operators of Num. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This puts Data's connection methods, `:=` and `<>`, in the ScalaDoc `Connect` group. These groups will propagate through to all children of Data, e.g., UInt, and cause those methods to be grouped in the ScalaDoc of these children. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This places all do_* methods (and two unary methods in SInt and FixedPoint that act like do_* methods) inside the ScalaDoc group "SourceInfoTransformMacro". Classes/objects which need information about this group have an additional bare trait mixed in, `SourceInfoDoc`, that provides information about the group and its priority. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds the `-groups` option to `scalacOptions`. This makes ScalaDoc build with group support such that developers can group methods using the `@group <groupName>` tag. This also adds the `-skip-packages chisel3.internal` option. This makes ScalaDoc build while ignoring everything in the chisel3.internal package. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds the ScalaDoc group "Connect" to the Data class. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a bare trait that provides a ScalaDoc group, `SourceInfoTransformMacro`, that is intended to group all `do_*` methods in one place in the documentation. This provides a group description for this group and a priority (1001) which is lower than all other normal groups (the lowest priority is supposed to be 1000). Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This bumps scopt from 3.6.0 to 3.7.0 to align with FIRRTL. FIRRTL requires 3.7.0+ for added scopt methods that allow introspection of options (e.g., examing the short options of a long option). This bump avoids a compile-time warning due to the version mistmatch. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
- Sep 01, 2018
-
-
Chick Markley authored
* Ability to load memories at simulation startup * first pass * create annotation * create skeleton Transform * Work in progress Building out transform and pass now * Support for LoadMemory annotation * Creates chisel and firrtl LoadMemory annotations * LoadMemoryTransform converts annotation into BlackBox InLine * Simple test that verilog bound modules get created. * Support for LoadMemory annotation * Supports Bundled/multi-field memories * more tests * support for `$readmemh` and `$readmemb` * warns if suffix used in file specification. * Support for LoadMemory annotation * Use standard chisel annotation idiom * Support for LoadMemory annotation * Fixes for @seldridge nits and super-nits * Support for LoadMemory annotation - transform now only runs if emitter is an instance of VerilogEmitter - suffixes on memory text files are now respected - if suffix exists and memory is aggregate, aggregate sub-fields will now be inserted before suffix - every bind module created gets a unique number - this is required when multiple loaded memories appear in a module - this should be generalized for other uses of binding modules * Support for LoadMemory annotation - remove un-needed suffix test * Support for LoadMemory annotation - remove instance walk, now just processes each module * Support for LoadMemory annotation - Move LoadMemoryTransformation into Firrtl for treadle to access it. * Support for LoadMemory annotation - One more bug in suffix handling has been eliminated * Support for LoadMemory annotation - remove unused findModule per jackkoenig - fixed complex test, bad filename edge case * Support for LoadMemory annotation - changed to not use intellij style column alignment for : declarations * Load memory from file Fixes based on @jkoenig review - remove unused BindPrefixFactory - Moved code from CreateBindableMemoryLoaders into to LoadMemoryTransfrom - Made map to find relevant memory annotations faster - Made map to find modules referenced by annotations faster - Made things private that should be private - DefAnnotatedMemorys are no longer referenced, shouldn't be found here. - println of error changed to failed * Loading memories from files - Many changes based on review - move stuff into experimental - clean up annotation manipulation - manage tests better - use more standard practices for transform * Loading memories from files - More review changes - Move doc from annotation to the object apply method that generates the annotation - Make scalastyle directives more specific - Use more efficient collect to generate name to module map - Made lines obey style length limit - a couple of cleanups of imports in tests - removed some commented out code - optimized checking for lines using .exists - use _ for unused variable in match
-
- Aug 30, 2018
-
-
Jim Lawson authored
* Inhibit aggressive resource file name mangling. This addresses #883. * Use common method to write resources to a directory to keep file names consistent.
-
- Aug 24, 2018
-
-
Jack Koenig authored
Add instance inline API
-
Schuyler Eldridge authored
This adds a new trait, FlattenInstance, to chisel3.util.experimental. When mixed into a module or a specific instance this trait will "flatten", i.e., "inline that module and all of its submodules". This includes testing (additions to InlineSpec) and ScalaDoc documentation. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-
Schuyler Eldridge authored
This adds a new trait, InlineInstance, to chisel3.util.experimental. This trait, when mixed into a specific module or instance, will "inline" that module, i.e., "collapse a module while preserving it's submodules." This includes testing (InlineSpec) and ScalaDoc documentation. Signed-off-by:Schuyler Eldridge <schuyler.eldridge@ibm.com>
-