aboutsummaryrefslogtreecommitdiff
path: root/src/main
AgeCommit message (Collapse)Author
2016-08-09fix read port enables in RemoveCHIRRTLDonggyu Kim
read port enables for cmems should always be high
2016-08-08Don't create output files until the compiler succeedsAndrew Waterman
Creating the output file preemptively screws up make, as on subsequent executions of make, it thinks the task succeeded.
2016-08-05Merge pull request #220 from ucb-bar/fix-width-error-msgAdam Izraelevitz
Bugfix: recursing stmts to remove unknown widths
2016-08-04Added RemoveEmpty.scala, which removes Empty and nested Blocks (#218)Adam Izraelevitz
* Added RemoveEmpty.scala, which removes Empty and nested Blocks * Reused squashEmpty from ExpandWhens by moving it to Utils * Squash EmptyStmts in ExpandWhens correctly
2016-08-04Addd check: bits, tail, head arg widthazidar
2016-08-04Bugfix: recursing stmts to remove unknown widthsazidar
2016-08-03fixes small mistakes in serialize (#216)Donggyu
2016-08-02Merge pull request #215 from ucb-bar/new-serializeAdam Izraelevitz
Change serialize to abstract method on FirrtlNode
2016-08-02Merge pull request #203 from ucb-bar/fix_mem_inferAdam Izraelevitz
Fix mem infer
2016-08-02make infer readwrite ports optionalDonggyu Kim
turned on with '--inferRW <circuit name>'
2016-08-02Change serialize to abstract method on FirrtlNodeJack Koenig
2016-08-02Merge pull request #214 from ucb-bar/fix-thread-unsafetyAdam Izraelevitz
Fix use of global state in instance loop checking
2016-08-02Merge pull request #213 from ucb-bar/default-to-warnAdam Izraelevitz
Change default log level to warn
2016-08-02Merge pull request #211 from ucb-bar/fix-subaccessAdam Izraelevitz
Refactor RemoveAccesses and fix bug #210.
2016-08-02Fix use of global state in instance loop checkingjackkoenig
Also increase sensitivity of thread safety checking Fixes #159
2016-08-01Added minor cosmetic changes to RemoveAccessesazidar
2016-08-01Change default log level to warnJack Koenig
2016-08-01Refactor RemoveAccesses and fix bug #210.azidar
Added corresponding unit test.
2016-07-29remove ConstProp in HighFirrtlToMiddleFirrtlDonggyu Kim
ConstProp before width padding causes errors for SIntLiteral
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-27infer readwrite ports for backward compatibilityDonggyu Kim
2016-07-27fix read port enables in RemoveCHIRRTLDonggyu Kim
read ports are declared outside when clauses and used multiple times, so their enables should be inserted when being replaced
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 #198 from ucb-bar/add-chirrtl-checkAdam Izraelevitz
Added a Chirrtl check for undeclared wires, etc.
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-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-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.