Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Verilator の検索結果:

GoogleのCFU Playgroundの cfu を作るには?

…aray/home/verilator/CFU-Playground/proj/proj_template/cfu.py:27" *) wire [32:0] \$1 ; (* src = "/mnt/c/Users/haray/home/verilator/CFU-Playground/proj/proj_template/cfu.py:27" *) wire [32:0] \$2 ; (* src = "/mnt/c/Users/haray/home/verilator/…

GoogleのCFU Playgroundをやってみた

…Arty ではなく、Verilator で動けばいいので、 $ proj/proj_template $ make PLATFORM=sim load json-c/json.h: No such file と言われたので、Google君に聞いて、下記のパッケージをインストール後、再実行。 $ sudo apt-get install libjson-c-dev $ make PLATFORM=sim load うーん、存在しないファイル(wrapVexRiscv_FullC…

PythonベースのVerilog HDL/VHDLのテストベンチ環境の cocotb と Verilator

…b を調べてみたら、Verilator が Verilog HDL Simulator として使えるようになっていた。 Verilatorの中を調べるシリーズにて、いろいろと調べたので、どのようにテストベンチ側がなっているのかをみてみたので、記録しておきます。 cocotb サイトは、こちら。 github.com Verilator の対応のコードは、こちら。 github.com while (!Verilated::gotFinish()) ループのところは、ここ。to…

Verilator勉強会、無事終了しました

… で、オフラインにてVerilator勉強会を開催しました。 vengineer.hatenablog.com connpass.com Verilator 勉強会 発表は、 @Ryuz88 さんの「Verilatorやってみた」 @msyksphinz さんの「Verilatorの内部構造解析」 @Vengineer の「VerilatorとSystemC」 の3つです。 事前申し込みは31名でしたが、参加者は発表者を含めて、最大25-26人ぐらいでした。 Verilato…

Dynamic Scheduler版のVerilatorの中を調べる(その4)

…cheduler版 Verilatorの中を調べる、その4。今回は、fork/join がどのように実装されているのかをみていきます。 Verilog HDLコード Verilog HDLコード (examples/fork/fork.v) を以下に示します。initial 文の中で、fork/join, fork/join_any, fork/join_none のテストを行っています。fork/join の場合では実行したすべての threadが終了するまで待ちます。fo…

Dynamic Scheduler版のVerilatorの中を調べる(その3)

…cheduler版 Verilatorの中を調べる、その3。今回は、wait がどのように実装されているのかをみていきます。 Verilog HDLコード Verilog HDLコード (examples/wait/wait.v) を以下に示します。wait の中で 変数の比較をやっています。 module t(/*AUTOARG*/); int a = 0; int b = 0; int c = 0; initial begin $write("starting with …

Dynamic Scheduler版のVerilatorの中を調べる(その2)

…cheduler版 Verilatorの中を調べる、その2。今回は、events (-> や @event) がどのように実装されているかを調べていきます。 Verilog HDLコード Verilog HDLコード (examples/events.v) を以下に示します。event がたくさんあります。 always @(posedge clk) ブロックの中 initial 文 @(event) の3種類でのテストコードのようです。 module t(clk); inp…

Dynamic Scheduler版のVerilatorの中を調べる(その1)

…まった はじめに Verilatorは、オープンソースのVerilog HDL/SystemVerilog対応のシミュレータです。 しかしながら、msyksphinzさんの下記のブログにあるように、 全ての遅延記述 (#) は無視される。 event系のイベント (waitなど) はサポートされない。 Unknownステートはサポートされない です。また、fork/join もサポートされていません。 msyksphinz.hatenablog.com antmicro の …

2021年のGW、11連休にやったことメモ

… (4/29:木) Verilator薄い本、Verilatorの中を調べる(No.2)、テストコード編、ダウンロード開始 Verilator薄い本、Verilatorの中を調べる(No.3)、SystemC編、作成中 2日目 (4/30:金) RISC-V の Arm Trusted Firmware に相当するものの整理:OpenSBI等、5/1のブログ化 実力も運のうち 能力主義は正義か?を読み終えて、ブログ化 3日目 (5/1:土) ママチャリで散歩 4日目 (5/2…

Verilator勉強会を5月29日(土)の午後にやりますよー。

… 4月の中旬から Verilator の中を調べるということでやってきました。 せっかくやってきたので、みなさんにシェアしたいと思ったので、Verilatro勉強会をやることにしました。 いつものように、connpass 経由で申し込みできます。 connpass.com 自分で勉強会を企画したのは、Facebook Glow Compiler のソースコードをグダグダ語る会以来なので 1年6カ月ぶりですね。。。 connpass 経由での勉強会参加が 2019/11/12の…

薄い本シリーズ:UVM-SystemCを調べる

….booth.pm Verilator では、テストベンチ側にSystemCが使えるので、今回の UVM-SystemC を組み合わせて、UVM-SystemC-Verilator(Verilog HDL/SystemVerilog)の組み合わせにて検証環境が構築できそうです。 Verilatorの薄い本:Verilatorの中を調べる、第一弾、例題解析編 Verilatorの薄い本:Verilatorの中を調べる、第二弾、テストデータ解析編 Verilatorの薄い本:Ve…

Verilatorの薄い本:Verilatorの中を調べる、第三弾、できました

…公開から始まった Verilatorの薄い本:Verilatorの中を調べる、第一弾、例題解析編 Verilatorの薄い本:Verilatorの中を調べる、第二弾、テストデータ解析編 に引き続き Verilatorの薄い本:Verilatorの中を調べる、第三弾、SystemC編 ができました。 お値段は500円でしたが、ページ数が増えたので600円にしました。 vengineer.booth.pm 第一弾、例題編は、こちら、お値段は700円でしたが、ページ数が増えたので1…

Verilatorの薄い本:Verilatorの中を調べる、第二弾、できました

…公開から始まった Verilatorの薄い本:Verilatorの中を調べる、第二弾、テストデータ解析編ができました。 Verilatorの薄い本:Verilatorの中を調べる、第一弾、例題編と同様に、BOOTH にてダウンロード販売中です。 お値段は500 600円です。内容を追加して、60頁を超えたので、500円から600円に変更しました。 vengineer.booth.pm 第一弾、例題編は、こちら、お値段は700円です。 vengineer.booth.pm 関連…

Verilatorの薄い本:Verilatorの中を調べる、できました

…公開から始まった Verilatorの薄い本:Verilatorの中を調べる できました。 カラーPDFの電子本です。 紙の本にするとコストがかかるだけでなく、デリバリーのコストがかかるため電子本にしました。 Visual Code Studio にて Markdownで記述したものをPDFに変換しました。Markdown から PDF に変換できたことのより、カラー表示ができるだけでなく、github.com にある VerilatorのソースコードへのlinkをPDFに埋…

Verilatorの中を調べる(その4)

… はじめに 昨日の「Verilatorの中を調べる(その3)」の続き。今回は、examples/make_hello_c と examples/make_tracing_c では見てこなかった下記の機能についてみていきます。 timescale coverage trace Timescale Verilog HDL では `timescale directive 、SystemVerilog では timeunit/timeprecision にて timescale を決…

Verilatorの中を調べる(その3)

… はじめに 昨日の「Verilatorの中を調べる(その2)」の続き。今回は、examples/make_tracing_c を見ていきます。examples/make_tracing_c では、波形ダンプと、カバレッジを行っています。波形ダンプは VCD ファイルになります。VCD ファイルは、OSSの gtkwave にて波形を見ることができます。 Verilog HDLコード Verilog HDL コードでは、入力および出力信号、下位モジュール( sub.v )、それ…

Verilatorの中を調べる(その2)

… はじめに 昨日の「Verilatorの中を調べる(その1)」の続き。Verilatorの最新版 v4.200 では、その前の v4.110 とちょこっと変わったようです。。。それは、後程。 準備 最新版の v4.200 をインストール。あたしは Windows 10 上の WSL2/Ubuntu 20.04 + Visual Studio を使っています。 インストール先は、/usr/local/verilator/v4.200 です。SystemCを使うので、v2.3.3…

Verilatorの中を調べる(その1)

…った はじめに 「Verilator が凄いことになっている」をこのブログで取り上げたのは、2019年11月23日vengineer.hatenablog.comその後、何度か、Verilator を取り上げました。こんな感じ。最近では、Xilinx の QEMU + SystemC + Verilator の例題を解析したりもしました。XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1) Xili…

vfio (Virtual Funtion I/O) と SystemC を繋げる (その2)

…に SystemC/Verilatorをインストールし、SystemC側のモデルをビルド後、vfio-pci デバイスを登録しました。 今回は、SystemC側のモデル、test-pcie-ep-master-vfio.cc の中を見ていきます。 test-pcie-ep-master-vfio.cc の内容 test-pcie-ep-master-vfio.cc のブロック図を下記に示します。図の右側にある vfio_dev が vfio と接続することになります。 vfi…

vfio (Virtual Funtion I/O) と SystemC を繋げる (その1)

…stemC および Verilator をインストール Zynq、ZynqMP、Versalの時と違って、QEMUで起動した Ubuntu cloud image の中に、SystemC と Verilator をインストールする必要があります。 Ubuntu cloud image に login した後に、下記のように必要なパッケージをインストールします。 $ sudo apt-get update $ sudo apt-get install git build-ess…

Xilinx QEMU + SystemC (PCIe EP) + Verilog HDL (Verilator) の内容を探っていく(その2)

…ilog HDL (Verilator) のデモの内容を探っていく(その5)で説明しました remoteport_tlm を使っています。QEMU とは、remoteport_tlm と通信しています。remoteport_tlm からは rst 以外に、4つのポート config bar[6] dma irq が出ています。config と bar[6] は initiator port、dma は target port、irq は bool 型の入力信号です。confi…

Xilinx QEMU + SystemC (PCIe EP) + Verilog HDL(Verilator) の内容を探っていく(その1)

…ilog HDL (Verilator) のデモの内容を探っていく。XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1) XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2) XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その3) XilinxのQ…

XilinxのQEMU環境の原点は、XXX って、知っていた?

…ilog HDL (Verilator) のデモの内容を探っていく。XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1) XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2) XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その3) XilinxのQ…

XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その5)

…ilog HDL (Verilator) のデモの内容を探っていく(その5)。その1、その2、その3 については、下記のブログを参照してください。 XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1) XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2) XilinxのQEMU + SystemC + Verilog HD…

XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その4)

…ilog HDL (Verilator) のデモの内容を探っていく(その4)。その1、その2、その3 については、下記のブログを参照してください。 XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1) XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2) XilinxのQEMU + SystemC + Verilog HD…

XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その3)

…ilog HDL (Verilator) のデモの内容を探っていく(その3)。その1、その2 については、下記のブログを参照してください。 XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1) XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2)今日は、SystemC側のモデルで使っている インターコネクト (iconne…

XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その2)

…ilog HDL (Verilator) のデモの内容の内、下図のQEMU と SystemC の zynqmp を繋ぐ部分を探ってみました。 今回は、SytemC側をもう少し詳しく探っていきます。 SystemCモデルの中身 iconnect との接続 最初は、zynqpm、dma_mms2_A、dma_s2mm_C、tlm2apb_lmac が接続している bus (iconnect) の部分です。下記のように接続しています。上の部分が Initiatorポートで 下の部…

XilinxのQEMU + SystemC + Verilog HDL (Verilator) のデモの内容を探っていく(その1)

…モデルと通信できる。Verilatorを使うと、SystemC <=> Verilog HDL(SystemVerilog)ができるので、RTLも使える。これは素晴らしい。。。Edgar E. Iglesias さん、一人でやっているhttps://t.co/aofhE4Xrda— Vengineer@ (@Vengineer) 2021年3月5日 Xilinx の TLM-COSIM-DEMO github.com の Xilinx に systemctlm-cosim-d…

RISCVのQEMUのソースコードを眺めてみた

…SystemC + Verilator にて Verilog HDL で書いたハードウェアも利用することができますよ。XilinxのQEMU環境、面白い。Zynq/ZynqMP/VersalのARMコアをQEMU上で動かして、SystemC側のモデルと通信できる。Verilatorを使うと、SystemC <=> Verilog HDL(SystemVerilog)ができるので、RTLも使える。これは素晴らしい。。。Edgar E. Iglesias さん、一人でやっているh…

SystemVerilog DPIを使って、JTAGにアクセスする

…penRISC を Verilator で動かすものです。 github.com OpenOCD User's Guilde にも同じように、jtag_dpi というものが載っていまっす。 openocd.org 便利ですよね。 TCP/IP Library としては、Shunt というのがあるようで、これは SystemVerilog DPI だけでなく、SystemC でも使えるようです。 2018年のSNUG Boston で発表されたもののようです。 Shunt In…