VerilatorインストールとSystemC実行(Mac)

SystemCインストールしたので、Verilatorと一緒に動かしてみる。

環境

前提

以下がインストールされている状態です。

インストール

versionにこだわりなかったので、brewでインストールした。

$ brew install verilator
$ verilator --version
Verilator 4.224 2022-06-19 rev UNKNOWN.REV

実行

基本的には、Verilatorのマニュアルを参考にした。

SystemCの環境変数として、以下が設定されている必要がある。

  • SYSTEMC_INCLUDE
  • SYSTEMC_LIBDIR

基本的には、上記で出来たけど面白味にかけるので CMakeでできるようにしてみた。

マニュアルとしては、以下を参考にした。

$ ls
CMakeLists.txt our.v          sc_main.cpp

CMakeLists.txtの中身はこちら

cmake_minimum_required (VERSION 3.1)

project(cmake_example)

set(target run.x)

find_package(verilator HINTS $ENV{VERILATOR_ROOT})
add_executable(${target} sc_main.cpp)
verilate(${target} SYSTEMC SOURCES our.v)
verilator_link_systemc(${target})

あとの手順は以下の通り。

$ mkdir build; cd build
$ cmake ..
$ make
[ 10%] Building CXX object CMakeFiles/run.x.dir/sc_main.cpp.o
[ 20%] Building CXX object CMakeFiles/run.x.dir/CMakeFiles/run.x.dir/Vour.dir/Vour.cpp.o
[ 30%] Building CXX object CMakeFiles/run.x.dir/CMakeFiles/run.x.dir/Vour.dir/Vour___024root__DepSet_hd6c43f43__0.cpp.o
[ 40%] Building CXX object CMakeFiles/run.x.dir/CMakeFiles/run.x.dir/Vour.dir/Vour___024root__Slow.cpp.o
[ 50%] Building CXX object CMakeFiles/run.x.dir/CMakeFiles/run.x.dir/Vour.dir/Vour___024root__DepSet_hd6c43f43__0__Slow.cpp.o
[ 60%] Building CXX object CMakeFiles/run.x.dir/CMakeFiles/run.x.dir/Vour.dir/Vour__Syms.cpp.o
[ 70%] Building CXX object CMakeFiles/run.x.dir/usr/local/share/verilator/include/verilated.cpp.o
[ 80%] Linking CXX executable run.x
[100%] Built target run.x
$ ./run.x

        SystemC 2.3.3-Accellera --- Aug 16 2022 12:13:48
        Copyright (c) 1996-2018 by all Contributors,
        ALL RIGHTS RESERVED
Hello World
- our.v:4: Verilog $finish

という感じでおしまい。