FC2カウンター FPGAの部屋 AXI VDMAのシミュレーション5(こんどこそシミュレーション)
FC2ブログ

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

FPGAの部屋

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

AXI VDMAのシミュレーション5(こんどこそシミュレーション)

前回、”AXI VDMAのシミュレーション4(インプリメント)”でインプリメントをしてみたので、こんどこそISim14.5でシミュレーションを行った。

まずは、XPSプロジェクトのトップファイルを生成した。(2013/07/12:前のブログでトップファイルは生成していました)

次に、テストベンチを生成して、修正して、完成した。

Project Navigator をSimulation モードにして、Simulate Behavioral Model をクリックしてシミュレーションを開始した。そうするとエラーで停止してしまった。
VDMA_test_8_130711.png

エラーの内容を下に示す。

ERROR:HDLCompiler:1654 - "D:/HDL/FndtnISEWork/Zynq-7000/ZedBoard/test/VDMA_test2/system_mt9d111_inf_axi_stream_0_wrapper.v" Line 49: Instantiating from unknown module


mt9d111_inf_axi_streamが見つからないとエラーのようだ。ネットを検索してみたが該当するものが見つからなかった。

もしかしてと思い、mt9d111_inf_axi_stream_v2_1_0.pao ファイルの内容を見ると以下のように書いてあった。

lib mt9d111_inf_axi_stream_v1_00_a mt9d111_inf_axi_stream.vhd vhdl
lib mt9d111_inf_axi_stream_v1_00_a pixel_fifo.v verilog
lib mt9d111_inf_axi_stream_v1_00_a mt9d111_cam_conts.v verilog


mt9d111_inf_axi_stream.vhd を先に書いてあるので、これがまずいのかもしれない。インプリメントは通っても、ISim でのシミュレーションは通らないのでないか?という仮説のもとに順番を変更した。

lib mt9d111_inf_axi_stream_v1_00_a pixel_fifo.v verilog
lib mt9d111_inf_axi_stream_v1_00_a mt9d111_cam_conts.v verilog
lib mt9d111_inf_axi_stream_v1_00_a mt9d111_inf_axi_stream.vhd vhdl


これでセーブして、XPSプロジェクトでRescanして、すべてのファイルを消去してから、もう一度、Simulate Behavioral Model をクリックしてシミュレーションを開始した。

コンパイルが完了して、ISimが起動した。
VDMA_test_9_130711.png

やった~。ISimによるシミュレーションが成功した。

インプリメント時には問題ない PAOファイルのファイルの順番は、ISimによるシミュレーション時には問題になることがある。その場合に、階層が下のファイルを最初にPAOファイルに記述して、階層が最上位のファイルは最後にPAOファイルに書く必要があるようだ。

さて、今回はISimが起動して、シミュレーションができるかどうか?を見ただけとなる。詳細なAXI VDMAの検証は、AXI VDMAのレジスタの設定を決定してからとする。

レジスタの設定は、reg_set_axi_lite_master IPで行う予定だ。これは、テキストファイルを読んで、AXI VDMAの設定を行う。その場合に、BRAMの初期値設定用テキストファイルを変更した時に、その値を反映させるには、どうすれば良いのかも探って行きたいと思う。

(参考)

AXI VDMAのレジスタ設定用AXI Lite Master IPの作製1(仕様の検討)
AXI VDMAのレジスタ設定用AXI Lite Master IPの作製2(シミュレーション)

  1. 2013年07月11日 04:21 |
  2. IP
  3. | トラックバック:0
  4. | コメント:3

コメント

おめでとうございます。
普通、こんなところ気づけませんよね (^_^;)
なぜ、ここに気付いたのかとか教えてもらえると助かります。

ISE14.6とSDKを使用してLx9 MicroBoardのCDCE913の設定変更用のツールを作ろうとしているのですが、途中で仕様変更した箇所が結果に反映されなくて何回も必要なファイルだけを残してプロジェクト作成しなおしたりしています。
PicoBlazeからすればMicroBlazeMCS+C言語で動かすのが凄く楽になった分、トータルの環境は複雑怪奇で年寄りには辛いです。
Spartan-3E StarterKitも眠ったままだからなんとかしなければ。
  1. 2013/07/11(木) 09:08:50 |
  2. URL |
  3. おる #qbIq4rIg
  4. [ 編集 ]

おるさん、こんにちは。

>なぜ、ここに気付いたのかとか教えてもらえると助かります。
前々からPAOファイルの書く順番については、依存性があるのかな?と思って、いろいろな順番で書いていたんですが、インプリメントは全て通っていました。
シミュレーションでは、ModelSimでDOファイル書くときも依存性ありますよね。そのようにシミュレーションでは、PAOファイルに依存性があるのかも?という考えがすぐに思いつきました。
前々から、PAOファイルの事を気にかけていたのが良かったみたいです。

MicroBlazeMCSもTCL使ったりと複雑になっていますね。もっと楽に簡単化してくれると良いと思いますが、それよりもWebPACKでもSpa6でXPS、それとChipScope Proを使えるようにしてくれると良いですね。
  1. 2013/07/11(木) 12:39:52 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

インプリメント:
 回路図でのトップダウン設計と同じで接続さえわかれば中身は後で展開してもいいし最終的にはすべてを展開しなければならないので順番への依存性がない。

シミュレーション:
 C言語のコンパイラとかと同じ前方宣言してなければそこでエラー吐き出すので順番への依存性がある。

ハードとソフトの考え方の違いなんでしょうけど実例があると、なんとなく理解できました。 m(_ _)m
  1. 2013/07/11(木) 14:08:18 |
  2. URL |
  3. おる #qbIq4rIg
  4. [ 編集 ]

コメントの投稿


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

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