@Vengineerの戯言 : Twitter SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
はじめに
Verilatorの中を調べるでは、Verilator v4.200/v4.202 で生成されるコードについて調べました。 また、Verilatorの薄い本としても BOOTH にて販売しています。
V4.210 で生成されるコードの構成が変わったようです。
Verilator 4.210 2021-07-07
The generated model class instantiated by the user is now an interface object and no longer the TOP module instance. User code with direct C++ member access to model internals, including verilator public_flat items will likely need to be updated. See the manual for instructions: https://verilator.org/guide/latest/connecting.html#porting-from-pre-4-210 (#3036). [Geza Lore]
ドキュメントの [Model interface changes in version 4.210]
どのように変わったのかを、examples/make_hello_c で確認しました。
examples/make_hello_c にて、make を実行後、obj_dir ディレクトリの中は、
v4.202 の
Vtop Vtop.mk Vtop__ALL.d Vtop__Syms.cpp Vtop__verFiles.dat sim_main.o Vtop.cpp Vtop__ALL.a Vtop__ALL.o Vtop__Syms.h Vtop_classes.mk verilated.d Vtop.h Vtop__ALL.cpp Vtop__Slow.cpp Vtop__ver.d sim_main.d verilated.o
に対して、v4.210 では
Vtop Vtop.mk Vtop__ALL.d Vtop__Syms.h Vtop___024root__Slow.cpp Vtop_classes.mk verilated.d Vtop.cpp Vtop__ALL.a Vtop__ALL.o Vtop___024root.cpp Vtop__ver.d sim_main.d verilated.o Vtop.h Vtop__ALL.cpp Vtop__Syms.cpp Vtop___024root.h Vtop__verFiles.dat sim_main.o
になります。
v4.202 の
Vtop__Slow.cpp
に対して、
Vtop___024root.cpp Vtop___024root.h Vtop___024root__Slow.cpp
になった感じです。
おわりに
v4.210 では、生成されるコードの構造が変わりました。今回は生成されるファイルについてしか見ませんでした。 内容がどのように変わったかは、Verilatorの薄い本、No.4として作成したいと思っています。。。