アウトプットブログ

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

OVL(Open Verification Library)を導入する

FPGAで組む回路規模が大きくなってくると、波形目視でのシミュレーションは抜けが多くなり、どうすれば良いか悩んでいます。少し検証手法について調べてみると、「アサーション」という手法があることを知りました。(詳細説明は以下ページが詳しいです) その…

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言語でBMPファイルのR/W

前回BMPファイルの読み込み失敗の原因としてバイトオーダーを挙げましたが、間違いでした。(それどころか問題を修正してバイトオーダー変換をかましたら逆に動きませんでした…笑)原因は構造体のバイトアライメントでした。BMPファイルの先頭にはBMPFILEHEA…

バイトオーダー変換

前回、malloc関数で確保したメモリにSystemVerilogからアクセスできたので、C言語で画像ファイルを読み込めればそのままテストデータとして使用できるはず。C言語の標準関数では画像ファイルを読み込む関数は存在しない。検索するとそのまま使用できそうなソ…

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言語の関数を使用できるらしく、何が出来るのか試してみることにした。そ…

技術ブログ

勉強のモチベーションのために始めてみます。