diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/scala/chisel3/Driver.scala | 19 | ||||
| -rw-r--r-- | src/main/scala/chisel3/util/BlackBoxUtils.scala | 24 |
2 files changed, 40 insertions, 3 deletions
diff --git a/src/main/scala/chisel3/Driver.scala b/src/main/scala/chisel3/Driver.scala index f4a7d0e5..f9f6dabe 100644 --- a/src/main/scala/chisel3/Driver.scala +++ b/src/main/scala/chisel3/Driver.scala @@ -113,10 +113,23 @@ trait BackendCompilationUtilities { vSources: Seq[File], cppHarness: File ): ProcessBuilder = { - val command = Seq("verilator", - "--cc", s"$dutFile.v") ++ + val blackBoxVerilogList = { + val list_file = new File(dir, firrtl.transforms.BlackBoxSourceHelper.FileListName) + if(list_file.exists()) { + Seq("-f", list_file.getAbsolutePath) + } + else { + Seq.empty[String] + } + } + val command = Seq( + "verilator", + "--cc", s"$dutFile.v" + ) ++ + blackBoxVerilogList ++ vSources.map(file => Seq("-v", file.toString)).flatten ++ - Seq("--assert", + Seq( + "--assert", "-Wno-fatal", "-Wno-WIDTH", "-Wno-STMTDLY", diff --git a/src/main/scala/chisel3/util/BlackBoxUtils.scala b/src/main/scala/chisel3/util/BlackBoxUtils.scala new file mode 100644 index 00000000..084d58f9 --- /dev/null +++ b/src/main/scala/chisel3/util/BlackBoxUtils.scala @@ -0,0 +1,24 @@ +// See LICENSE for license details. + +package chisel3.util + +import chisel3._ +import chisel3.core.ChiselAnnotation +import firrtl.transforms.{BlackBoxInline, BlackBoxResource, BlackBoxSourceHelper} + +trait HasBlackBoxResource extends BlackBox { + self: Module => + + def setResource(blackBoxResource: String): Unit = { + annotate(ChiselAnnotation(self, classOf[BlackBoxSourceHelper], BlackBoxResource(blackBoxResource).serialize)) + } +} + +trait HasBlackBoxInline extends BlackBox { + self: Module => + + def setInline(blackBoxName: String, blackBoxInline: String): Unit = { + annotate(ChiselAnnotation( + self, classOf[BlackBoxSourceHelper], BlackBoxInline(blackBoxName, blackBoxInline).serialize)) + } +} |
