FC2カウンター FPGAの部屋 AXI4 Master IP にAXI4 Lite Slave を追加10(ハードウェア完成)
FC2ブログ

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

FPGAの部屋

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

AXI4 Master IP にAXI4 Lite Slave を追加10(ハードウェア完成)

このブログ記事のトップは、”AXI4 Master IP にAXI4 Lite Slave を追加1(インプリメント)”
前の記事は、”AXI4 Master IP にAXI4 Lite Slave を追加9(バグフィックス)

前回の記事でバグをフックスしたので、今回はインプリメントし、SDKでBOOT.bin を生成して、SDカードにコピーしてZedBoardで確かめてみた。

まずはISEでインプリメントを行った。
AXI4M_and_Lite_Slave_92_130420.png

LUT使用率は26%だ。
ここから、ハードウェア・デザインをエクスポートして、SDKを立ち上げた。

SDKでは、Linux起動用のBOOT.bin を生成して、SDカードにコピーした
SDKでリモートデバッグを開始した。AXI_Lite_test_linux.elf はZedBoard の電源をOFFすると消えてしまうので、もう一度ファイルを作成した。

Debug Configuration を使用して、AXI_Lite_test_linux.elf のデバックを開始した。

・デバックを進めて、カメラ・インターフェイスIPとビットマップ・ディスプレイ・コントローラIPのレジスタをRead した。
AXI4M_and_Lite_Slave_88_130419.png

カメラ・インターフェイスIPとビットマップ・ディスプレイ・コントローラIPのレジスタの値が 0x1a000000 になった。これは正しい。

・最初にビットマップ・ディスプレイ・コントローラIPのレジスタに、今回のフレームバッファのアドレスの 0x19000000 をWrite した。
AXI4M_and_Lite_Slave_89_130419.png

VGAモニタの画面にペンギンが表示された。
#VGAモニタのホコリはご愛嬌ということでご勘弁を。。。
AXI4M_and_Lite_Slave_93_130420.jpg

ちゃんとフレームバッファにアドレスを使っているようだ。

・次に、カメラ・インターフェイスIPのレジスタに、今回のフレームバッファのアドレスの 0x19000000 をWrite した。
AXI4M_and_Lite_Slave_90_130419.png

今度は、カメラの画像がVGAモニタに表示された。成功だ。。。
AXI4M_and_Lite_Slave_94_130420.jpg

・次に、カメラ・インターフェイスIPとビットマップ・ディスプレイ・コントローラIPのレジスタの値をRead した。
AXI4M_and_Lite_Slave_91_130419.png

2つのレジスタの値は、0x19000000 だった。これは正しい値だ。

AXI4 Master バス・インターフェースとAXI4 Lite Slave バス・インターフェースの2つのAXIバスを持つカスタムIPのハードウェアは完成した。
次は、dmesg のフレームバッファの情報を取得して、Sysfs に書かれているカメラ・インターフェイスIPとビットマップ・ディスプレイ・コントローラIPのレジスタのアドレスに書き込むCプログラムを作成する。

ISEのMAPリポートを貼っておきます。

Release 14.4 Map P.49d (nt64)
Xilinx Mapping Report File for Design 'system_top'

Design Information
------------------
Command Line   : map -intstyle ise -p xc7z020-clg484-1 -w -logic_opt off -ol
high -t 1 -xt 0 -register_duplication off -r 4 -mt off -ir off -pr off -lc off
-power off -o system_top_map.ncd system_top.ngd system_top.pcf 
Target Device  : xc7z020
Target Package : clg484
Target Speed   : -1
Mapper Version : zynq -- $Revision: 1.55 $
Mapped Date    : FRI 19 APR 6:41:49 2013

Design Summary
--------------
Number of errors:      0
Number of warnings:  276
Slice Logic Utilization:
  Number of Slice Registers:                18,637 out of 106,400   17%
    Number used as Flip Flops:              18,543
    Number used as Latches:                      4
    Number used as Latch-thrus:                  0
    Number used as AND/OR logics:               90
  Number of Slice LUTs:                     14,268 out of  53,200   26%
    Number used as logic:                   10,455 out of  53,200   19%
      Number using O6 output only:           7,151
      Number using O5 output only:             334
      Number using O5 and O6:                2,970
      Number used as ROM:                        0
    Number used as Memory:                   2,579 out of  17,400   14%
      Number used as Dual Port RAM:            498
        Number using O6 output only:           114
        Number using O5 output only:            14
        Number using O5 and O6:                370
      Number used as Single Port RAM:            0
      Number used as Shift Register:         2,081
        Number using O6 output only:         1,233
        Number using O5 output only:             8
        Number using O5 and O6:                840
    Number used exclusively as route-thrus:  1,234
      Number with same-slice register load:    994
      Number with same-slice carry load:       239
      Number with other load:                    1

Slice Logic Distribution:
  Number of occupied Slices:                 7,161 out of  13,300   53%
  Number of LUT Flip Flop pairs used:       21,697
    Number with an unused Flip Flop:         5,567 out of  21,697   25%
    Number with an unused LUT:               7,429 out of  21,697   34%
    Number of fully used LUT-FF pairs:       8,701 out of  21,697   40%
    Number of unique control sets:           1,012
    Number of slice register sites lost
      to control set restrictions:           4,368 out of 106,400    4%

  A LUT Flip Flop pair for this architecture represents one LUT paired with
  one Flip Flop within a slice.  A control set is a unique combination of
  clock, reset, set, and enable signals for a registered element.
  The Slice Logic Distribution report is not meaningful if the design is
  over-mapped for a non-slice resource or if Placement fails.
  OVERMAPPING of BRAM resources should be ignored if the design is
  over-mapped for a non-BRAM resource or if placement fails.

IO Utilization:
  Number of bonded IOBs:                        55 out of     200   27%
    Number of LOCed IOBs:                       55 out of      55  100%
  Number of bonded IOPAD:                      130 out of     130  100%
    IOB Flip Flops:                             16

Specific Feature Utilization:
  Number of RAMB36E1/FIFO36E1s:                 33 out of     140   23%
    Number using RAMB36E1 only:                 33
    Number using FIFO36E1 only:                  0
  Number of RAMB18E1/FIFO18E1s:                  2 out of     280    1%
    Number using RAMB18E1 only:                  2
    Number using FIFO18E1 only:                  0
  Number of BUFG/BUFGCTRLs:                      9 out of      32   28%
    Number used as BUFGs:                        9
    Number used as BUFGCTRLs:                    0
  Number of IDELAYE2/IDELAYE2_FINEDELAYs:        0 out of     200    0%
  Number of ILOGICE2/ILOGICE3/ISERDESE2s:        0 out of     200    0%
  Number of ODELAYE2/ODELAYE2_FINEDELAYs:        0
  Number of OLOGICE2/OLOGICE3/OSERDESE2s:       16 out of     200    8%
    Number used as OLOGICE2s:                   16
    Number used as OLOGICE3s:                    0
    Number used as OSERDESE2s:                   0
  Number of PHASER_IN/PHASER_IN_PHYs:            0 out of      16    0%
  Number of PHASER_OUT/PHASER_OUT_PHYs:          0 out of      16    0%
  Number of BSCANs:                              1 out of       4   25%
  Number of BUFHCEs:                             0 out of      72    0%
  Number of BUFRs:                               0 out of      16    0%
  Number of CAPTUREs:                            0 out of       1    0%
  Number of DNA_PORTs:                           0 out of       1    0%
  Number of DSP48E1s:                            0 out of     220    0%
  Number of EFUSE_USRs:                          0 out of       1    0%
  Number of FRAME_ECCs:                          0 out of       1    0%
  Number of ICAPs:                               0 out of       2    0%
  Number of IDELAYCTRLs:                         0 out of       4    0%
  Number of IN_FIFOs:                            0 out of      16    0%
  Number of MMCME2_ADVs:                         3 out of       4   75%
  Number of OUT_FIFOs:                           0 out of      16    0%
  Number of PHASER_REFs:                         0 out of       4    0%
  Number of PHY_CONTROLs:                        0 out of       4    0%
  Number of PLLE2_ADVs:                          0 out of       4    0%
  Number of PS7s:                                1 out of       1  100%
  Number of STARTUPs:                            0 out of       1    0%
  Number of XADCs:                               0 out of       1    0%

Average Fanout of Non-Clock Nets:                3.15

Peak Memory Usage:  1349 MB
Total REAL time to MAP completion:  16 mins 
Total CPU time to MAP completion:   15 mins 32 secs


(2013/04/21:追加)
ビットマップ・ディスプレイ・コントローラIPのAXI4 Lite Slave トランザクションを下に示す。正常になった。
AXI4M_and_Lite_Slave_95_130421.png
  1. 2013年04月20日 06:11 |
  2. 複数のAXI4 バスを持つIPの作製
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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