FC2カウンター FPGAの部屋 ZedBoardにビットマップ・ディスプレイ・コントローラを追加する15(ChipScope での評価)
FC2ブログ

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

FPGAの部屋

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

ZedBoardにビットマップ・ディスプレイ・コントローラを追加する15(ChipScope での評価)

ZedBoardにビットマップ・ディスプレイ・コントローラを追加する14(ソースの公開)”の続き。

(2012/10/21: 注: この記事は、AXI4バスのHDLコードにミスがあったので、全面的に書き直しました。)

前回はソースを公開したが、今回は、DDR3 SDRAMのフレーム・バッファにキャラクタを書き込むchar_write_axi_master IPのChipScope による評価を行う。
まずは、DDR3 SDRAMのフレーム・バッファにキャラクタを書き込む全体のタイミングチャートのキャプチャ図を下に示す。
ZedBoad_BitMap_DispCnt_96_121020.png

Bus/Signal の黄色の部分がAXIバスの信号だ。その下の信号がIPの内部信号だ。キャラクタをキャラクタROMから読んで、AXIバスでDDR3 SDRAMにWriteし終わるまでに掛かった時間は306クロックだ。クロックの周波数は100MHz、クロック周期は10nsec だから、306クロック x 10nsec = 3.06usec となる。結構遅いかも?知れない。
char_gen_8raster.v がキャラクタROMからビットマップデータを読んでFIFOのピクセルデータを入力するまでがピンクのカーソルまでだ。ここで99クロックかかっている。990nsec、約1usec かかっている事になる。AXIバスでの転送にの残りの約2usec かかっていることになる。

次にAXIバスのトランザクションを詳しく見てみよう。
Master(自作IP)がawvalid をアサートしてから、Slave (ARM, PS) がM_AXI_AWREADYをアサートするのは2クロック後だ。
ZedBoad_BitMap_DispCnt_97_121020.png

Master がwvalid をアサートしてから、Slave がM_AXI_WREADY をアサートし始めるのは5クロック後となる。
ZedBoad_BitMap_DispCnt_98_121020.png

64ビット幅データがWaitすることなく4バーストでデータ転送を終了している。そのデータ転送の最後ににwlast がアサートされている。
最後のデータ転送からSlave がM_AXI_BVALIDをアサートするまでに14クロックかかっている。これでAXIバスのWriteのトランザクションは終了する。
ZedBoad_BitMap_DispCnt_99_121020.png

この14クロックは長い気がする。Writeは通常はFIFOなどのキューにためて完了することが多いと思うのだが、それだけではなくDDR3 SDRAMに書いてから完了しているのだろうか?次のWriteが、このIPでは初められなくてスループットが落ちている。1回のWriteトランザクションに23クロック、230nsec かかっている。案外High Performance ポートは遅いというか、完了するのが長いようだ。
最も、AXIバスはトランザクションを重ね合わせることができるので、Master の方でトランザクションを重ね合わせれば良いはずだ。自分がサボっていると証明されてしまったが、HPポートのWriteの完了が遅いことは考慮しておく必要があると思う。
  1. 2012年10月20日 05:49 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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