aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-07-28Merge pull request #207 from ucb-bar/fix-width-bugDonggyu
InferWidths now only fixes declaration widths
2016-07-28InferWidths now only fixes declaration widthsazidar
Then calls InferTypes to propagate inferred widths to expressions. Required upgrading InferTypes to do simple width propagation. Fixes #206 and #200.
2016-07-27Merge pull request #205 from ucb-bar/add-future-releaseAdam Izraelevitz
Added future-release.txt
2016-07-27Merge pull request #199 from ucb-bar/add-annotationsAdam Izraelevitz
Rework Annotations
2016-07-27Fixed compilation error using old annotationsazidar
2016-07-27Forgot to add Annotations.scalaAdam Izraelevitz
2016-07-27Reworked annotation system. Added tenacity and permissibilityAdam Izraelevitz
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
2016-07-27Merge pull request #204 from ucb-bar/fix-specAdam Izraelevitz
Fixed reg concrete syntax. #197.
2016-07-27Added future-release.txtazidar
Keeps track of proposed changes to add to the next version of the Firrtl spec.
2016-07-27Merge pull request #198 from ucb-bar/add-chirrtl-checkAdam Izraelevitz
Added a Chirrtl check for undeclared wires, etc.
2016-07-27Fixed reg concrete syntax. #197.azidar
2016-07-26Merge pull request #201 from ucb-bar/recursive-modules-fixAdam Izraelevitz
Detects and flags cyclic module loops
2016-07-25Changed InferTypes to update types if UnknownType or has an UnknownWidthazidar
Removed InferWidths after ExpandWhens
2016-07-25Detects and flags cyclic module loopschick
2016-07-21Added a Chirrtl check for undeclared wires, etc.azidar
2016-07-21Indentation support for the ANTLR parser (as discussed in #192) (#194)Kamyar Mohajerani
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
2016-07-07Guard register randomization with RANDOMIZE, rather than SYNTHESISAndrew Waterman
Randomization should be controllable separately. Verilator, for example, already does this if it is passed --x-assign unique; doing it redundantly reduces simulation performance.
2016-07-07Re-run constant propagation after pad widthsAndrew Waterman
2016-07-07Generalize and clean up constant propagation passAndrew Waterman
2016-07-06Emit correct Verilog for SIntLiteralAndrew Waterman
2016-07-06Only assign garbage to Mem reads for non-power-of-2 depthsAndrew Waterman
2016-07-06Avoid width warnings on Mem garbage assignmentAndrew Waterman
2016-07-06Rely on $fatal vs. $finish, rather than stderr, for stop codesAndrew Waterman
This approach uses the normal Unix mechanisms, rather than log grepping.
2016-07-05Merge pull request #195 from terpstra/support-char-printfAdam Izraelevitz
printf: support '%c' for printing characters
2016-07-04printf: support '%c' for printing charactersWesley W. Terpstra
2016-06-27Optionally guard stop with `STOP_COND macroAndrew Waterman
This allows for testbench handling of pipelined reset, independently of `PRINTF_COND.
2016-06-23Emit more useful code for stopAndrew Waterman
- Based upon stop value, use $fatal instead of $finish. This causes the Verilog simulator to signal an error to the OS as appropriate. - Don't guard stop with `PRINTF_COND (only not-`SYNTHESIS).
2016-06-13Merge pull request #191 from ucb-bar/ir-cleanup-fixAdam Izraelevitz
Ir cleanup fix
2016-06-10Change BoolType from method to valJack Koenig
2016-06-10API Cleanup - ASTJack
trait AST -> abstract class FirrtlNode Move all IR to new package ir Add import of firrtl.ir._
2016-06-10API Cleanup - PrimOp & PrimOpsJack
Add simple documentation trait PrimOp -> abstract class PrimOp Move PrimOp case objects to object PrimOps Rename PrimOp case objects to match concrete syntax Overrwrite toString for more canonical serialization Update some PrimOps utility functions
2016-06-10API Cleanup - ExpressionJack
trait Expression -> abstract class Expression Ref -> Reference abbrev. exp -> expr Add abstract class Literal UIntValue -> UIntLiteral extends Literal SIntValue -> SIntLiteral extends Literal
2016-06-10API Cleanup - StatementJack
trait Stmt -> abstract class Statement (to match Expression) abbrev. exp -> expr BulkConnect -> PartialConnect camelCase things that were snake_case case class Empty() -> case object EmptyStmt Change >120 character Statements to multiline
2016-06-10API Cleanup - WidthJack
Add simple documentation trait Width -> abstract class Width case class UnknownWidth -> case object UnknownWidth
2016-06-10API Cleanup - Field & FlipJack
Add simple documentation Flip -> Orientation trait Orientation -> abstract class Orientation Orientation case objects to upper camel case REVERSE -> Flip
2016-06-10API Cleanup - TypeJack
trait Type -> abstract class Type case class ClockType() -> case object ClockType case class UnknownType() -> case object UnknownType Add GroundType and AggregateType ClockType has width of IntWidth(1)
2016-06-10API Cleanup - Port & DirectionJack
Add simple documentation Change Direction case objects to upper camel case
2016-06-10API Cleanup - ModuleJack
trait Module -> abstract class DefModule InModule -> Module (match concrete syntax) ExModule -> ExtModule (match concrete syntax) Add simple scaladoc for each one
2016-06-10Avoid exponential growth in reg code emissionAndrew Waterman
In 7afe9f6180a53fd9f024c67d78289689a601c8b7, I reintroduced a performance pathology when recursing through Mux trees. This patch prevents redundantly expanding the same Mux more than a constant number of times, preserving linear runtime but still resulting in acceptable QoR.
2016-06-10Merge pull request #190 from ucb-bar/threadsafe-testAdam Izraelevitz
Add test to check compiler is thread safe
2016-06-10Add test to check compiler is thread safeJack Koenig
2016-06-10Fix Verilog codegen for regAndrew Waterman
Previously, we emitted if-else sequences for reg updates. Recent improvements to FIRRTL resulted in the emission of explicit mux networks instead. While equivalent, doing so reduces QoR, presumably because ECAD tools are tuned to the habits of manual Verilog coders. This seems to be a result of WRefs appearing between the regs and muxes. Chasing down the sources of the WRefs corrects the code generation. This patch reduces the Rocket pipeline area by about 2% and improves rocket-chip's Verilator performance by about 8%.
2016-06-09Initializes register addresses. (#189)Adam Izraelevitz
Fixes #187.
2016-06-09Merge pull request #177 from ucb-bar/update-specAdam Izraelevitz
Updated spec
2016-06-09Merge branch 'master' into update-specAdam Izraelevitz
2016-06-09Merge pull request #180 from ucb-bar/fix-warningAdam Izraelevitz
Suppress "match may not be exhaustive" warning
2016-06-09Merge branch 'master' into fix-warningAdam Izraelevitz
2016-06-08Merge pull request #185 from ucb-bar/fix-width-bugAdam Izraelevitz
Fix for bug introduced in #174
2016-06-08Merge branch 'master' into fix-width-bugAdam Izraelevitz
2016-06-08Increased depth of travis clone.azidar