From 06df5adfd78061aa5ae7567882fb8c42d7260a46 Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Tue, 10 Jan 2017 17:18:09 -0800 Subject: Make stop() immediately end simulation for Verilator tests (#434) --- src/main/resources/top.cpp | 7 +++++++ src/main/scala/chisel3/Driver.scala | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/main') 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 // 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 -- cgit v1.2.3