###################################################################### # # DESCRIPTION: Verilator CMake Example: Small CMakeLists.txt with SystemC tracing # # This is an example cmake script to build a verilog to SystemC project # using CMake and Verilator. # # Copyright 2003-2020 by Wilson Snyder. This program is free software; you # can redistribute it and/or modify it under the terms of either the GNU # Lesser General Public License Version 3 or the Perl Artistic License # Version 2.0. # SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 # ###################################################################### # This example builds the tracing_sc example using CMake # To use it, run the following: # cd /path/to/verilator/examples/cmake_tracing_sc # rm -rf build && mkdir build && cd build # cmake .. # cmake --build . cmake_minimum_required(VERSION 3.8) project(cmake_tracing_sc_example) find_package(verilator HINTS $ENV{VERILATOR_ROOT} ${VERILATOR_ROOT}) if (NOT verilator_FOUND) message(FATAL_ERROR "Verilator was not found. Either install it, or set the VERILATOR_ROOT environment variable") endif() # SystemC dependencies set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) # Find SystemC using SystemC's CMake integration find_package(SystemCLanguage QUIET) # Create a new executable target that will contain all your sources add_executable(example ../make_tracing_sc/sc_main.cpp) # Add the Verilated circuit to the target verilate(example SYSTEMC COVERAGE TRACE INCLUDE_DIRS "../make_tracing_sc" VERILATOR_ARGS -f ../make_tracing_sc/input.vc -Os -x-assign 0 SOURCES ../make_tracing_sc/top.v) verilator_link_systemc(example)