diff options
| author | jackkoenig | 2016-01-28 18:04:20 -0800 |
|---|---|---|
| committer | jackkoenig | 2016-01-28 18:04:20 -0800 |
| commit | 53cac5ce88100b6c50781e0ddaecada235e5fe27 (patch) | |
| tree | 99ad0235dbafaa38401af314311ab90d5d19847b | |
| parent | 86872a2888698656487e1201406a0786553d8480 (diff) | |
WIP Added support for printf to Scala FIRRTL
| -rw-r--r-- | src/main/scala/firrtl/Utils.scala | 3 | ||||
| -rw-r--r-- | src/main/scala/firrtl/Visitor.scala | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Utils.scala b/src/main/scala/firrtl/Utils.scala index 46253923..ca4153e7 100644 --- a/src/main/scala/firrtl/Utils.scala +++ b/src/main/scala/firrtl/Utils.scala @@ -173,7 +173,8 @@ object Utils { } case i: IsInvalid => s"${i.exp} is invalid" case s: Stop => s"stop(${s.clk}, ${s.en}, ${s.ret})" - case p: Print => s"printf(${p.clk}, ${p.en}, ${p.string}" + p.args.map(_.serialize).mkString(", ") + case p: Print => s"printf(${p.clk.serialize}, ${p.en.serialize}, ${p.string}" + + (if (p.args.nonEmpty) p.args.map(_.serialize).mkString(", ", ", ", "") else "") + ")" case Empty => "skip" } ret + debug(stmt) diff --git a/src/main/scala/firrtl/Visitor.scala b/src/main/scala/firrtl/Visitor.scala index c9d34003..8cdb0110 100644 --- a/src/main/scala/firrtl/Visitor.scala +++ b/src/main/scala/firrtl/Visitor.scala @@ -135,6 +135,8 @@ class Visitor(val fullFilename: String) extends FIRRTLBaseVisitor[AST] } // TODO implement stop // TODO implement printf + case "printf(" => Print(info, ctx.StringLit.getText, ctx.exp.drop(2).map(visitExp), + visitExp(ctx.exp(0)), visitExp(ctx.exp(1))) case "skip" => Empty // If we don't match on the first child, try the next one case _ => { |
