Add support of --trace-structs parameter for CMake (#2986)

This commit is contained in:
Martin Schmidt 2021-06-06 15:27:44 +02:00 committed by GitHub
parent 1f19e8e206
commit b0c1ac7ea2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 1 deletions

View File

@ -55,6 +55,7 @@ Marco Widmer
Markus Krause
Marlon James
Marshal Qiao
Martin Schmidt
Matthew Ballance
Michael Killough
Mike Popoloski

View File

@ -115,6 +115,8 @@ class CMakeEmitter final {
cmake_set_raw(*of, name + "_THREADS", cvtToStr(v3Global.opt.threads()));
*of << "# Threaded tracing output mode? 0/1/N threads (from --trace-threads)\n";
cmake_set_raw(*of, name + "_TRACE_THREADS", cvtToStr(v3Global.opt.traceThreads()));
*of << "# Struct output mode? 0/1 (from --trace-structs)\n";
cmake_set_raw(*of, name + "_TRACE_STRUCTS", cvtToStr(v3Global.opt.traceStructs()));
*of << "# VCD Tracing output mode? 0/1 (from --trace)\n";
cmake_set_raw(*of, name + "_TRACE_VCD",
(v3Global.opt.trace() && (v3Global.opt.traceFormat() == TraceFormat::VCD))

View File

@ -119,8 +119,15 @@ define_property(TARGET
FULL_DOCS "Verilator SystemC enabled"
)
define_property(TARGET
PROPERTY VERILATOR_TRACE_STRUCTS
BRIEF_DOCS "Verilator trace structs enabled"
FULL_DOCS "Verilator trace structs enabled"
)
function(verilate TARGET)
cmake_parse_arguments(VERILATE "COVERAGE;TRACE;TRACE_FST;SYSTEMC"
cmake_parse_arguments(VERILATE "COVERAGE;TRACE;TRACE_FST;SYSTEMC;TRACE_STRUCTS"
"PREFIX;TOP_MODULE;THREADS;TRACE_THREADS;DIRECTORY"
"SOURCES;VERILATOR_ARGS;INCLUDE_DIRS;OPT_SLOW;OPT_FAST;OPT_GLOBAL"
${ARGN})
@ -168,6 +175,10 @@ function(verilate TARGET)
list(APPEND VERILATOR_ARGS --cc)
endif()
if (VERILATE_TRACE_STRUCTS)
list(APPEND VERILATOR_ARGS --trace-structs)
endif()
foreach(INC ${VERILATE_INCLUDE_DIRS})
list(APPEND VERILATOR_ARGS -y "${INC}")
endforeach()
@ -277,6 +288,10 @@ function(verilate TARGET)
set_property(TARGET ${TARGET} PROPERTY VERILATOR_SYSTEMC ON)
endif()
if (${VERILATE_PREFIX}_TRACE_STRUCTS)
set_property(TARGET ${TARGET} PROPERTY VERILATOR_TRACE_STRUCTS ON)
endif()
# Add the compile flags only on Verilated sources
target_include_directories(${TARGET} PUBLIC ${VDIR})
target_sources(${TARGET} PRIVATE ${GENERATED_SOURCES} "${VCMAKE_COPY}"