アウトプットブログ

勉強したことをまとめていきます。

SystemVerilog

SystemVerilogでファイル入出力

前回テストデータと比較データを自動生成しました。その比較結果は標準出力に表示していましたが、ログとしてファイル出力できると便利そう。比較はSystemVerilg側で実施しているので、そのままSystemVerilogで出来るならやってしまいたい。ということで試し…

DPI-CでVHDLモジュールの処理結果をコンペア(別の方法を考える)

前回の方法でもタイトルの内容は可能なのですが、もっと便利で確実に(と思う)方法でコンペアを実施する方法がありました。ざっくりまとめると、①テストデータ生成と比較値生成を同時に行い、SVモジュールに入力。その際、C関数からSystemVerilogのタスクを…

DPI-CでVHDLモジュールの処理結果をコンペア

前回BMPファイルをDPI-C経由でVHDLモジュールに入力できました。今回はVHDLモジュールの出力結果をC関数に入力してコンペアを取ってみました。以下テストベンチの流れです。 1.シミュレーション開始時にC関数によりBMPファイル読込と比較データ生成を実施。 …

DPI-CでBMPファイルリード

ひとまずの目標であるDPI-Cでの画像読み込みです。前回作成したC言語でのBMPファイル読込モジュールを使用して、画像データをVHDLモジュールへ入力することが出来ました。ヘッダファイルを自作したためコンパイル方法が変わるかも、と思いましたが、ModelSim…

C関数で確保したメモリ領域にSystemVerilogからアクセス

DPI-Cを使用して、C言語のmalloc関数で確保したメモリ領域にSystemVerilogテストベンチからアクセスしてみる。最終的にはBMP等の画像ファイルをCで読み込んでテストデータとして使いたいと考えている。以下ソース。今回は以下URLを参考にさせて頂いた。 Shar…

DPI-CでSystemVerilogからC言語の関数呼び出し

VHDL/SystemVerilog混在シミュレーションにてSystemVerilogテストベンチからVHDLモジュールを呼び出せたので、次はDPI-CでC言語関数の生成データをVHDLモジュールに入力してみる。C言語をコンパイルできる環境が必要なため、MinGWをインストール、環境設定し…

VHDL/SystemVerilog混在シミュレーション

自分は普段の開発ではVHDLを使用している。テストベンチも同様なのだが、少し凝ったことをしようとすると面倒と感じることがあった。調べるとSystemVerilogのDPI-Cという機能で検証にC言語の関数を使用できるらしく、何が出来るのか試してみることにした。そ…