FC2カウンター FPGAの部屋 2016年09月04日
fc2ブログ

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

FPGAの部屋

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

Vivado HLSで作ったDMA Write IP を実機でテスト1(インプリメント)

Vivado HLS で生成した AXI4 Master DMA IP を使用したカメラ画像表示システム2(SDK)”で、Vivado HLS で作った DMA Write IP と DMA Read IP 、そして新たに作ったAXI4-Stream版ビットマップ・ディスプレイ・コントローラをテストしたが、動作しなった。更に、Vivado Analyzer でデバックしようとしたが、一部動作したり、しなかったりで、どうにもうまくデバックができなかった。

そこで、”Zybot のカメラ画像でGabor Filterのパラメータを取得した3(Zybotでテスト)”で実際に使用しているプロジェクトで、AXI VDMA IPと”Vivado HLS で DMA Write IP を作る(絶対アドレス指定編)”のDMA Write IP を入れ替えてテストしてみようと思う。

まずはプロジェクトを示す。Z:/test/ZYBO_0_162_3_t0 フォルダに入れてある。
DMA_Write_IP_test_1_160904.png

camera_interface モジュールのAXI VDMA を DMA_Write IP に変更した。
DMA_Write_IP_test_2_160904.png

これで、論理合成、インプリメントすると、タイミングエラーが発生した。
DMA_Write_IP_test_3_160904.png

Open Implemented Design で調べてみると、ガボール・フィルタの内部でエラーになっていた。動作周波数は 100 MHz。
DMA_Write_IP_test_4_160904.png

ガボール・フィルタはVivado HLS で作ってあるので、Vivado HLS のGabor_filter_lh プロジェクトを開いて、Target は今まで 7 ns だったところを 6 ns に変更して、C コードの合成を行った。
DMA_Write_IP_test_5_160904.png

C コードの合成のレポートの続き。
DMA_Write_IP_test_6_160904.png

これで IP 化を行って、この IP をVivado プロジェクトのガボール・フィルタIP と入れ替えて、もう一度、論理合成、インプリメント、ビットストリームの生成を行った。
やはり、タイミングエラー。しかも悪くなっている。
DMA_Write_IP_test_7_160904.png

やはり、ガボール・フィルタの内部でタイミングエラーが発生している。ロジック遅延も少し増えているが、ネット遅延が8 ns 程度から 11 ns程度に増えている。
DMA_Write_IP_test_8_160904.png

これは案外、Vivado HLS のTarget 時間を延ばした方が良いのか?ということで、Target を 8 ns にしてみた。
DMA_Write_IP_test_9_160904.png DMA_Write_IP_test_10_160904.png

これで、C コードの合成、IP 化した。

Vivado のガボール・フィルタのIP を更新して、もう一度、論理合成、インプリメント、ビットストリームの生成を行った。
DMA_Write_IP_test_11_160904.png

やはり、タイミングエラーが発生している。

仕方がないのでガボール・フィルタを削除した。
DMA_Write_IP_test_12_160904.png

これで、再々度、論理合成、インプリメント、ビットストリームの生成を行った。
DMA_Write_IP_test_13_160904.png

今度もほんの少しではあるが、タイミングエラーが発生している。

詳しく見てみると、ラプラシアンフィルタでの1個だけなので、これで良しとした。
DMA_Write_IP_test_14_160904.png
  1. 2016年09月04日 09:09 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0