FC2カウンター FPGAの部屋 AXI4 プロトコルの勉強2(読み出しバースト例)
FC2ブログ

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

FPGAの部屋

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

AXI4 プロトコルの勉強2(読み出しバースト例)

今回は、読み出しバースト例ついて勉強する。

最初は、オーバーラップしない読み出しバースト例だ。タイミングチャートを下に示す。これを書くのに1日かかった。
AXI_Protcol_1_111208.png

最初の読み出しバーストは4バイト幅で4バーストだ。これは最速のパターン。
Read address channelで、ARADDRにアドレスを出力して、ARVALIDが1にアサートされた時に、ARREADYが1にアサートされていたので、1クロックで終わった例だ。多分これで良いと思う。
その後の、Read data channelも最速のパターンを作ってみた。RDATAに常にデータが出力され、RVALIDが1にアサートされている。RREADYもデータ転送中は1にアサートされ、データ待ちが無く最速となっている。最後のデータの時にRLASTがアサートされてデータの終了を知らせる。RRESPは0(OKEY)を出力している。

2番目の読み出しバーストは、4バイト幅で2バーストだ。
Read address channelで、ARADDRにアドレスを出力して、ARVALIDが1にアサートされた時には、ARREADYが0にディアサートされていた。次のクロックでARREADYが1にアサートされたので、Read address channelの転送が終了した。
Read data channelの最初のデータ転送は、RVALIDが1にアサートされた時にRREADYは0でディアサートされていた。よって、このデータReadは1クロックで終わらず、次のクロックでRREADYが1になるまでWaitしている。次のデータRadは、RREADYが1でアサートされていたが、RVALIDがディアサートされていた例だ。この場合は、RVALIDがアサートされる次のクロックまでWaitしている。


次に読み出しバーストがオーバーラップする例を示す。こちらの方がRead address channelの2つ目の転送を隠蔽できるので、データのスループットが向上する。下にタイミングチャートを示す。(2011/12/09:修正:タイミングチャートが間違っていたので、書き直しました。お知らせいただいて、ありがとうございました。)
AXI_Protcol_2_111209.png

ARIDはどちらの読み出しも0にしている。こうするとOut-Of-Order実行されないので、Read address channelで発行した順番に読み出しデータが来るのが保証される。ARIDを異なる値にすると、Out-Of-Order実行されて発行順ではなく、速く読み出しデータの準備ができた順に読み出しデータが来る。

(2011/12/10:修正)
AXI リファレンスガイド UG761 (v13.2)2011年7月6日の101ページを見ると、ARPORTは値000を推奨するそうです。(ノーマル、セキュア、データ属性)
同様に、ARCACHEは値0011を推奨するそうです。(ノーマル、キャッシュ不可、変更可能、バッファリング可能)
これに合わせて、タイミングチャートを書き換えました。
  1. 2011年12月08日 21:07 |
  2. AXI4バス
  3. | トラックバック:0
  4. | コメント:1

コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
  1. 2011/12/09(金) 09:14:49 |
  2. |
  3. #
  4. [ 編集 ]

コメントの投稿


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

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