FC2カウンター FPGAの部屋 2010年04月30日
FC2ブログ

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

FPGAの部屋

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

Spartan-6のMCBの動作3(Readポート)

Spartan-6のMCBの動作2(コマンドポートとWriteポート)”で、MCBのコマンドポートとWriteポートの構成と操作方法を見てきたが、今度はReadポートの構成と操作方法を見ていくことにする。

Readポートのexsample_top.vのmemc3_wrapperのポート接続を下に示す。

.p0_rd_clk (c3_clk0),
.p0_rd_en (c3_p0_rd_en),
.p0_rd_data (c3_p0_rd_data),
.p0_rd_full (c3_p0_rd_full),
.p0_rd_empty (c3_p0_rd_empty),
.p0_rd_count (c3_p0_rd_count),
.p0_rd_overflow (c3_p0_rd_overflow),
.p0_rd_error (c3_p0_rd_error),


p0_rd_emptyが0の時に有効なReadデータがp0_rd_dataに出ているので、ユーザー回路がp0_rd_en が1にして、p0_rd_dataを読み込む。p0_rd_dataは現在の構成では128ビット幅。
p0_rd_countは7ビット幅のReadデータカウントで64まで。
p0_rd_overflow はReadデータ用のFIFOにReadデータの十分な格納領域がないなどで、Readデータが無くなってしまったときに1になる。
p0_rd_error は、Read用のポインタがおかしくなったときに1になる。

現在のシミュレーション波形でDDR3 SDRAMのRead部分を下に示す。
MIG_OP_4_100430.png

上の図では図中に3つのReadコマンドが見える。最初のコマンドは、”Spartan-6のMCBの動作2(コマンドポートとWriteポート)”で見たWriteコマンドの番地をReadしている。mcb3_dram_dq にそのデータが見える。
これがMCBで読み込まれて、ユーザー側にどのように出てくるかを、シミュレーション波形で見てみよう。
MIG_OP_5_100430.png

p0_rd_empty が1から0になった時に、Readデータが用意されている。すでにp0_rd_data[127:0] に"00000400000004000000040000000400"が出力されている。po_rd_clk に同期して、ユーザー回路がp0_rd_en が1になり、次のpo_rd_clk に同期して次のp0_rd_data[127:0] が出力される。

最後にReadのレイテンシを測定した。Readコマンドが発行されてから、p0_rd_emptyが0になるまでの時間は下のシミュレーション結果から、約46nsec だった。
MIG_OP_6_100430.png
  1. 2010年04月30日 21:57 |
  2. Virtex-6, Spartan-6
  3. | トラックバック:0
  4. | コメント:0