FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

VivadoでZynqのブロックデザインをTCLで生成する(3. FPGAでの動作確認)

前回の続き。bitファイルが完成したので、boot.binをSDカードコピーして動作させてみた。

本当に動作しているかどうかを確認するために、BlockRAMのデザインに少しだけギミックを入れた。

  always @ (posedge s_axi_aclk) begin
    up_rack_s      <= up_rreq_s;
    blockram_rdata <= reg_mem[up_raddr_s[9:0]];
  end

  always @ (posedge s_axi_aclk) begin
    up_raddr_s2 <= up_raddr_s;
  end

  assign up_rdata_s = (up_raddr_s2 == 14'h0) ? 32'hdeadbeef : blockram_rdata;

github.com

つまり、当該ブロックの先頭アドレスにリードアクセスをすると、0xdeadbeefが返されるはずだ。

当該ブロックのアドレスは、design_1_bd.tclで定義している。

ad_cpu_interconnect 0x43c00000 axi_blockram

さて、さっそく実行してみた。

f:id:msyksphinz:20170803012041p:plain

まず、当該ブロックの先頭へのリードを実行する。

devmem2 0x43c00000 word

0xdeadbeefが返ってきた。成功だ。

次に、次のワードに対して書き込みを実行する。書き込む値は0x12345678だ。

devmem2 0x43c00004 word 0x12345678

次に同じアドレスに対してリードをする。ちゃんと0x12345678が返ってきた。成功だ。

devmem2 0x43c00000 word