| Age | Commit message (Collapse) | Author |
|
|
|
* Conf file info is passed in through annotations.
* A pass should have its own set of sub-arguments delimited by :
|
|
* Instead of filling the whole data width
* Added helper functions in MemUtils
|
|
* Note, this version uses Albert's toBitMask function,
* which expands the bit mask to be the full data width (similar to Chisel2 output)
* Black boxes only have wmasks as needed
|
|
* Annotate reference
* Changed memory port names to RWx, Wx, Rx, etc. and reconnected nodes
|
|
* Was originally adding one extra set of things (to -> until)
* MemPortUtil conditionally includes wmask, if necessary
Changed endian-ness of write data/mask to match convention (little endian)
|
|
* Annotates all sequential memories that can be black boxed.
* Annotates sequential memories that don't need write masks.
|
|
|
|
* Corrected names to match current RW port spec
* Added Jack's Namespace on Circuit
|
|
|
|
this eliminates warnings in recent versions of VCS
|
|
Before, the verilog emitter would connect registers to the invalid ports
and use random initialization on the generated registers.
It is better to generate wires instead and use random assignment on the
wires.
|
|
We previously had `ifdef guards on some parts of the emitted verilog to
control whether some registers or nets should be given random initial
values. These guards were all dependent on the RANDOMIZE macro.
However, there were actually three separate cases being controlled
1. Giving random values to disconnected wires
2. Random initialization of registers
3. Random initialization of memories
It is possible that the designer would want to switch these three on or
off independently in simulation. For instance, the latter two are
usually safe because registers and memories will get some definite
binary value at power on in the actual circuit, but the first one can
be quite dangerous because the undriven wire could be metastable.
This change provides separate macros for each of the three sets of
guards so that they can be controlled independently.
|
|
|
|
|
|
|
|
* Updated FIRRTL spec + related code for readwrite ports.
(write) data -> wdata & mask -> wmask for clarity
* Also removed simple.fir that snuck into master branch.
|
|
Now prints usage when given incorrect arguments
|
|
|
|
|
|
|
|
read port enables for cmems should always be high
|
|
Creating the output file preemptively screws up make, as on
subsequent executions of make, it thinks the task succeeded.
|
|
Bugfix: recursing stmts to remove unknown widths
|
|
* Added RemoveEmpty.scala, which removes Empty and nested Blocks
* Reused squashEmpty from ExpandWhens by moving it to Utils
* Squash EmptyStmts in ExpandWhens correctly
|
|
|
|
|
|
|
|
Change serialize to abstract method on FirrtlNode
|
|
Fix mem infer
|
|
turned on with '--inferRW <circuit name>'
|
|
|
|
Fix use of global state in instance loop checking
|
|
Refactor RemoveAccesses and fix bug #210.
|
|
Also increase sensitivity of thread safety checking
Fixes #159
|
|
|
|
Added corresponding unit test.
|
|
ConstProp before width padding causes errors for SIntLiteral
|
|
Then calls InferTypes to propagate inferred widths to expressions.
Required upgrading InferTypes to do simple width propagation.
Fixes #206 and #200.
|
|
|
|
read ports are declared outside when clauses and used multiple times, so their enables should be inserted when being replaced
|
|
|
|
Conflicts:
src/main/scala/firrtl/Compiler.scala
src/main/scala/firrtl/LoweringCompilers.scala
src/main/scala/firrtl/passes/Inline.scala
src/test/scala/firrtlTests/AnnotationTests.scala
src/test/scala/firrtlTests/InlineInstancesTests.scala
|
|
Added a Chirrtl check for undeclared wires, etc.
|
|
Removed InferWidths after ExpandWhens
|
|
|
|
|
|
Indentation support for the ANTLR parser
- some clean-up of the parser code (TODO: file input could be improved, more clean-up)
- get rid of Translator and specify all syntactic rules in antlr4 grammer
- support for else-when shorthand in the grammar
- rename Begin to Block which makes more sense
|
|
Randomization should be controllable separately. Verilator, for
example, already does this if it is passed --x-assign unique; doing
it redundantly reduces simulation performance.
|
|
|