diff options
| author | Jack Koenig | 2017-01-10 17:18:09 -0800 |
|---|---|---|
| committer | GitHub | 2017-01-10 17:18:09 -0800 |
| commit | 06df5adfd78061aa5ae7567882fb8c42d7260a46 (patch) | |
| tree | 39b070505c95fd89e7a88eb64009d9b1468ef7a3 /src/main | |
| parent | 22b9beefd6ddc358f1573a305ed9b498634c6d23 (diff) | |
Make stop() immediately end simulation for Verilator tests (#434)
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/resources/top.cpp | 7 | ||||
| -rw-r--r-- | src/main/scala/chisel3/Driver.scala | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/main/resources/top.cpp b/src/main/resources/top.cpp index 075d7085..4e9c1433 100644 --- a/src/main/resources/top.cpp +++ b/src/main/resources/top.cpp @@ -5,6 +5,13 @@ # include <verilated_vcd_c.h> // Trace file format header #endif +// Override Verilator definition so first $finish ends simulation +// Note: VL_USER_FINISH needs to be defined when compiling Verilator code +void vl_finish(const char* filename, int linenum, const char* hier) { + Verilated::flushCall(); + exit(0); +} + using namespace std; //VGCDTester *top; diff --git a/src/main/scala/chisel3/Driver.scala b/src/main/scala/chisel3/Driver.scala index 40c94b54..c569a81b 100644 --- a/src/main/scala/chisel3/Driver.scala +++ b/src/main/scala/chisel3/Driver.scala @@ -128,7 +128,7 @@ trait BackendCompilationUtilities { s"+define+PRINTF_COND=!$topModule.reset", s"+define+STOP_COND=!$topModule.reset", "-CFLAGS", - s"""-Wno-undefined-bool-conversion -O1 -DTOP_TYPE=V$dutFile -include V$dutFile.h""", + s"""-Wno-undefined-bool-conversion -O1 -DTOP_TYPE=V$dutFile -DVL_USER_FINISH -include V$dutFile.h""", "-Mdir", dir.toString, "--exe", cppHarness.toString) System.out.println(s"${command.mkString(" ")}") // scalastyle:ignore regex |
