diff options
| author | Jiuyang Liu | 2020-11-10 00:12:06 +0000 |
|---|---|---|
| committer | GitHub | 2020-11-10 00:12:06 +0000 |
| commit | 92af63c599fc480f6480ee22f23763f54881085f (patch) | |
| tree | b4fde701d44a0d5a0d44d3a05489a61481762a7f /src/main/scala/firrtl/backends/verilog/SystemVerilogEmitter.scala | |
| parent | fe95544d573fff9bb114b3302986aa746e1f4763 (diff) | |
Refactor emiter (#1879)
* split big Emitter to submodules.
* fix all deprecated warning.
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Diffstat (limited to 'src/main/scala/firrtl/backends/verilog/SystemVerilogEmitter.scala')
| -rw-r--r-- | src/main/scala/firrtl/backends/verilog/SystemVerilogEmitter.scala | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/backends/verilog/SystemVerilogEmitter.scala b/src/main/scala/firrtl/backends/verilog/SystemVerilogEmitter.scala new file mode 100644 index 00000000..2d8e3089 --- /dev/null +++ b/src/main/scala/firrtl/backends/verilog/SystemVerilogEmitter.scala @@ -0,0 +1,31 @@ +package firrtl + +import firrtl.ir.{Expression, Info, StringLit} + +import scala.collection.mutable +import scala.collection.mutable.ArrayBuffer + +class SystemVerilogEmitter extends VerilogEmitter { + override val outputSuffix: String = ".sv" + + override def prerequisites = firrtl.stage.Forms.LowFormOptimized + + override def addFormalStatement( + formals: mutable.Map[Expression, ArrayBuffer[Seq[Any]]], + clk: Expression, + en: Expression, + stmt: Seq[Any], + info: Info, + msg: StringLit + ): Unit = { + val lines = formals.getOrElseUpdate(clk, ArrayBuffer[Seq[Any]]()) + lines += Seq("// ", msg.serialize) + lines += Seq("if (", en, ") begin") + lines += Seq(tab, stmt, info) + lines += Seq("end") + } + + override def execute(state: CircuitState): CircuitState = { + super.execute(state) + } +} |
