FC2カウンター FPGAの部屋 Vivado HLSで作ったDMA Write IP を実機でテスト3(Vivado Analyzer)

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

FPGAの部屋

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

Vivado HLSで作ったDMA Write IP を実機でテスト3(Vivado Analyzer)

Vivado HLSで作ったDMA Write IP を実機でテスト2(実機テスト)”の続き。

前回はZYBO_0_2 プロジェクトにDMA Write IP を入れたプロジェクトでカメラの画像を表示できないという結果だった。今回は、Vivado Analyzer を使って、なぜDMA Write IP が動作しないか?を探った。その結果、原因は判明した。

まずは、camera_interface ブロックデザインでDMA_Write_0 IP の周りのバスをMark Debug した。
DMA_Write_IP_test_17_160908.png

これで、論理合成し、Open Synthesized Design を起動した。Tools メニューからSet up Debug を行って、Vivado Analyzer に入れるプローブを設定して、インプリメントを行ったが、タイミングエラーになってしまった。
DMA_Write_IP_test_18_160908.png

Open Implemented Design を開いて、Timing Summary を見たところ、Intra-Clock の clk_fpga_0 がタイミングエラーを起こしていた。
DMA_Write_IP_test_19_160908.png

そこで、ブロックデザインで ZYNQ をダブルクリックして開き、FCLK_CLK0 を 100 MHz から 90 MHz に変更した。
DMA_Write_IP_test_20_160908.png

これで、論理合成、インプリメントを行うと、今度は、Inter-Clock Paths でエラーになった。
DMA_Write_IP_test_21_160908.png

clk_fpga_0, clk_fpga_1 間のタイミングを無視する設定を制約ファイルに加えた。
DMA_Write_IP_test_22_160908.png

これで、論理合成、インプリメント、ビットストリームの生成を行うと、タイミングエラーは無くなった。
DMA_Write_IP_test_23_160908.png

Vivado Analyzer の結果を示す。これは、DMA Write IP のAXI4-Lite Slave の最初のレジスタの設定タイミングが表示されている。
3つのフレームバッファのベースアドレス・レジスタに 0x10000000 のアドレスを書き込んでいる。
DMA_Write_IP_test_24_160908.png

次の波形は、ap_start に 1 を書き込んで、次は、auto_restart を 1 に設定している。
DMA_Write_IP_test_25_160908.png

AXI4-Stream もきちんと来ているし、AXI4 Master も出ている。ちなみにAWADDR は下2ビットがないので、0x04000000 のアドレスとなっている。
DMA_Write_IP_test_26_160908.png

Vivado Analyzer をフリートリガにしてみると、AWADDR が 0x04000bf0 で止まっているようだ。
DMA_Write_IP_test_27_160908.png

あ~。これは、シミュレーションで 'A' という画像のシミュレーションを行っているときの数だ。画像のサイズを 800 x 600 ピクセルにしていなかったようだ。
  1. 2016年09月09日 04:35 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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