2008年3月18日火曜日

ModelSimでのRocket IOお試し

ModelSimでRocket IO(Xilinx)のシミュレーションを実行してみる。
なお、Rocket IOのシミュレーションには、Smart Model対応の環境が必要。

試したモジュールは、CoreGeneratorで生成した“GTP Aurora(2.8)”。
これで生成すると、projectフォルダの下に以下のフォルダが生成される。

project
+- module_name
+ +- cc_manager
+ +- clock_module
+ +- examples
+ +- scripts
+ +- src
+ +- testbench
+ +- ucf

scriptsの下にお試し用のスクリプト(example_test.do)がある。
example_test.doでは、scriptsの直下で行なうことを前提としているような形でファイルの位置情報が記載されているので、scriptsフォルダをシミュレーション用フォルダとするか、module_nameの下にシミュレーション用フォルダを作成すること。

以下、VHDLおよびverilog HDLでのシミュレーション実行までの手順を示す。なお、基本的には2回目以降はexample_test.doを実行すればいいはず。

[VHDLの場合]
(1) smart_modelを使えるように、libraryを設定する。
> compxlib -s mti_pe -arch virtex5 -smartmodel_setup

# なおmodelsim.iniも書き換えておく必要あり。この辺を参照すること。
# http://japan.xilinx.com/support/answers/14019.htm

(2) example_test.doを編集する。MTI_LIBS変数はどこにも定義されていない上に不要な模様なので、以下の行をコメントアウトしておく。
set MTI_LIS $env{MTI_LIBS}

(3) example_test.doを実行する。
> do example_test.do


[verilog HDLの場合]
(1) VHDLと同様にライブラリの設定をする。詳細は前述を参照。

(2) example_test.doを編集する。MTI_LIBSはVHDLと同様にコメントアウトしておく。

(3) simprim、unisim、xlinxcorelibの参照位置をvmapコマンドで変えておく。
> vmap simprim C:/xilinx/verilog/mti_pe/simprims_ver
> vmap unisim C:/xilinx/verilog/mti_pe/unisims_ver
> vmap xilinxcorelib C:/xilinx/verilog/mti_pe/xilinxcorelib_ver

# これをしないと、なぜかVHDLの方のライブラリを参照しにいってしまい、
# “FDSモジュールにINIT変数なんかない”と言われてvsimでErrorで落ちる。

(4) example_test.doを実行する。
> do example_test.do


verilogの(3)については、もっと別のやり方があるような気がするので、時間があるときに方法を探しておこう。

0 件のコメント: