FC2カウンター FPGAの部屋 mt9d111_inf_axis IP をテストする
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

mt9d111_inf_axis IP をテストする

前回、”custom_vtc IP をテストする1”で、簡単な1つだけのVerilog HDLファイルで構成されたIPをIP Integrator でインスタンスした時は、問題なくシミュレーション、論理合成、インプリメントまで行うことが出来た。今回は、NGCファイル、つまり、CoreGen で生成したFIFO IPが含まれているIPをIP Integrator でインスタンスして、問題なくシミュレーション、論理合成、インプリメントできるかどうかを確認する。

今回も、”Vivado チュートリアル Designing with IP Lab3 (IP Packager)3”を参考にして、Vivado プロジェクトを作り、IPリポジトリをインポートした。
mt9d111_inf_axis_test_1_130821.png

・mt9d111_inf_axi_stream_1 をダブルクリックして、C M Axis Data Width を 24 から 32 に変更した。
mt9d111_inf_axis_test_3_130821.png

・Verilog HDLのラッパーを作った。
CRITICAL WARNINGが出ている、AXI4-Stream にクロックピンが含まれていないということのようだ。クロックは、pclkで兼用しているが、それがまずいのだろうか?
mt9d111_inf_axis_test_2_130821.png

WARNING の詳しい内容を下に示す。

CRITICAL WARNING: [BD 41-968] AXI interface port /m_axis is not associated to any clock port. It may not work correctly. Please update ASSOCIATED_BUSIF parameter of a clock port to include this interface port.
CRITICAL WARNING: [BD 41-967] AXI interface pin /mt9d111_inf_axi_stream_1/m_axis is not associated to any clock pin. It may not work correctly.


・シミュレーション用ファイル、mt9d111_inf_axi_stream_tb.v、axi4s_slave_BFM.vhd、mt9d111_model.v を用意して、Vivado のプロジェクトに追加した。
mt9d111_inf_axis_test_4_130821.png

シミュレーションと論理合成をしてみたがエラーになってしまった。
mt9d111_inf_axis_test_5_130821.png

[Synth 8-439] module 'mt9d111_inf_axis_test_mt9d111_inf_axi_stream_1_0' not found ["C:/Users/Masaaki/Documents/Vivado/Zynq/Zedboard/mt9d111_inf_axis_test/mt9d111_inf_axis_test.srcs/sources_1/bd/mt9d111_inf_axis_test/hdl/mt9d111_inf_axis_test.v":79]


mt9d111_inf_axi_stream_1_0のインスタンスが無いと言われているので、IPがうまくできていないのかも?
  1. 2013年08月21日 05:20 |
  2. Vivado
  3. | トラックバック:0
  4. | コメント:5

コメント

ASSOCIATED_BUSIF 云々について

Package IP の IP Interface ウィンドウから
1. 新しいインターフェースを作る.
Add Bus Interface をクリックしてダイアログボックスが出たら Bus Interface to Configure: にclock_rtl を選択.
Bus Interface Display Name: を適当に入力.
2. 作ったインターフェースとクロック信号をマッピング.
作ったインターフェースを選択してから右クリックで Edit Port Mapping...を選んで左のLogical Ports と右の IP's Physical Ports からクロック信号を選択し、真ん中の Map ボタンをクリック.
3. 作ったインターフェースにパラメータ ASSOCIATED_BUSIF を設定する.
Bus Parameters タグを選択し、右クリックで Add Bus Parameter... を選択.
パラメータ名に ASSOCIATED_BUSIF を入力して OK をクリック.
ASSOCIATED_BUSIF の Value 欄に、AXI のインターフェース名を設定.

というようなことをしたら、CRITICAL WARNING は出なくなりました.

サンプルとしてgithubにIPをアップロードしておきますので、なにかの参考にしてください.
https://github.com/ikwzm/PUMP_AXI4/target/xilinx/ip/ikwzm_pipework_pump_axi4_to_axi4_0.3.zip
とりあえずこれで論理合成と配置配線まで出来ました。
  1. 2013/08/24(土) 19:26:46 |
  2. URL |
  3. ikwzm #-
  4. [ 編集 ]

ikwzm さん、教えていただいてありがとうございました。
後でやってみます。
  1. 2013/08/25(日) 06:37:28 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

AX4-Stream Master インターフェイスを作ってもクロックが見当たらないです。クロックポートありましたか?AXI4 Slave を作ってもなかったです。
  1. 2013/08/27(火) 04:05:48 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

クロックはどうやら AXI4 インターフェースには含まれないようです。
AXI4 インターフェースとクロックを結びつけるには別にクロック信号を用意する必要があります。

例えば、この記事のようなIPの場合、すでに pclk があり、AXI4 インターフェースもこのクロックで動作するようなので、

1. 新しいインターフェースを作る.
Add Bus Interface をクリックしてダイアログボックスが出たら Bus Interface to Configure: にclock_rtl を選択.
Bus Interface Display Name: を適当に入力(CLKとかがいいかな).
2. 作ったインターフェースとクロック信号(pclk)をマッピング.
作ったインターフェースを選択してから右クリックで Edit Port Mapping...を選んで左のLogical Ports と右の IP's Physical Ports からクロック信号(pclk)を選択し、真ん中の Map ボタンをクリック.
3. 作ったインターフェースにパラメータ ASSOCIATED_BUSIF を設定する.
Bus Parameters タグを選択し、右クリックで Add Bus Parameter... を選択.
パラメータ名に ASSOCIATED_BUSIF を入力して OK をクリック.
ASSOCIATED_BUSIF の Value 欄に、AXI のインターフェース名(多分m_axisとかかな?)を設定.

というのはどうでしょう? 思いっきり外しているかもしれませんが。
  1. 2013/08/28(水) 18:31:20 |
  2. URL |
  3. ikwzm #-
  4. [ 編集 ]

ikwzm さん、ありがとうございました。うまく行きました。
経過を、”Vivado 2013.2 の IP Packager でAXI4-Stream にクロックを関連付ける”に書きました。
http://marsee101.blog19.fc2.com/blog-entry-2572.html
  1. 2013/08/29(木) 08:45:26 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2561-7dd124c2
この記事にトラックバックする(FC2ブログユーザー)