@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
はじめに
「Verilator が凄いことになっている」をこのブログで取り上げたのは、2019年11月23日
その後、何度か、Verilator を取り上げました。こんな感じ。
最近では、Xilinx の QEMU + SystemC + Verilator の例題を解析したりもしました。
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その3)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その4)
XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その5)
Xilinx QEMU + SystemC (PCIe EP) + Verilog HDL(Verilator) の内容を探っていく(その1)
Xilinx QEMU + SystemC (PCIe EP) + Verilog HDL (Verilator) の内容を探っていく(その2)
ということで、Verilator 、結構使えるじゃんと思うようになりました。
みんな?は、Verilatorの何を知りたいのか?
いろいろと調べたものをどうするか?ということで、下記のようなツイートをして、アンケートを取りました。投票数は、109票。それなりの需要はありそうですね。
Verilog HDLでコード書いてもシミュレーションできないとね?ということで、OSSのVerilog HDL/SystemVerilog Simulator である Verilatorの解説本的(薄い本)なものってどのくらい需要があるでしょうか?https://t.co/qtuEnFB3qa
— Vengineer@ (@Vengineer) 2021年4月14日
拡散してもらえると嬉しいです。
とはいっても、Verilatorは Verilog HDL/SystemVerilog のシミュレータです。ただし、以下のような制約があります。
- #xxx のような遅延は無視される
- @(posged clk); のような、イベント待ちができない
- Verilog HDL/SystemVerilog コードはデザイン側のみで、テストベンチ側には使えない
- テストベンチ側は、C++ あるいは SystemC++ で記述する必要がある
最初の 遅延と、2番目の イベント待ちができないということは、SystemVerilog の DPI-C の export task で BFM(Bus Functional Model)でのサイクルを発生するような記述ができないということです。これ、結構辛いです。。。今まで、SystemVerilog DPI-C の export task を使って、Software Driven Verifiaction やりましょう!とか、言っていたので、それができないのです。
Verilator の中を調べる
では、どんなことをすれば、Software Driven Verification ができるようになるのか? そのために、Verilator の中を調べる必要があります。
Verilator は、Verilog HDL/SystemVerilog のコードを C++コードに変換します。その生成された C++コードの中を見ることで何かわかるかな?と思い、
example にあるコードを 使って、Verilator の 中を調べることにしました。
おわりに
明日から、Verilator の中を調べた結果をブログにアップすることにします。
どのまで深く書くかは、わかりませんが、
こうご期待を。。。