CverのPLIで浮動小数点入力(Linux)

Verilog PLIで浮動小数点の値をバイナリ値に変換する方法を紹介します。シミュレータはCver、動作環境はLinux(ubuntu 14.04LTE 64bit)です。

ステップ1: PLI用Cファイルの準備
ステップ2: Cファイルのコンパイル
ステップ3: テストベンチからの呼び出し
ステップ4: シミュレーションの実行

ステップ1:PLI用Cファイルの準備

$to_float32というtaskを追加します。
$to_float32は、第2引数で指定された浮動小数点値を、バイナリ値に変換して第1引数のレジスタにセットします。例えば、1.0という値は$to_float32で0x3f800000に変換されます。実際のコードは次の通りです。浮動小数点値のバイナリ変換は共用体で行っています。

ステップ2:Cファイルのコンパイル

CverのPLI用インクルードファイルのディレクトリにパスを通して Cファイルのコンパイルを行います。64bit環境でコンパイルを行う場合には-m32オプションが必要です。またリンク時には-melf_i386オプションが必要です。

ステップ3:テストベンチからの呼び出し

テストベンチでPLI taskを呼び出します。次の例では0.0から9.0の浮動小数点値を$to_float32でバイナリに変換し、レジスタf32にセットしています。

ステップ4:シミュレーションの実行

作成したPLI用シェアードライブラリを+loadpli1オプションで指定してcverを実行します。

実行ログです。

簡単なモジュールをつかったプロジェクト・サンプルはこちら

スポンサーリンク
広告大
広告大
  • このエントリーをはてなブックマークに追加
スポンサーリンク
広告大