FC2カウンター FPGAの部屋 Spartan3A Starter KitのDDR2 SDRAMコントローラの途中経過2(DQSからBUFGをまわしたクロック)
FC2ブログ

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

FPGAの部屋

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

Spartan3A Starter KitのDDR2 SDRAMコントローラの途中経過2(DQSからBUFGをまわしたクロック)

”Spartan3A Starter KitのDDR2 SDRAMコントローラの途中経過1”でエラーが解消できたのでDQSをクロックとして使用してグローバルクロックバッファ (BUFG) にまわして、そのクロックをLUTをFIFOとして使った分散RAMを使用した非同期FIFOのクロックとして使ってみた。
たぶん問題としては、DQSはBUFGの専用入力を使用していないので、BUFGに行くまでのネットの遅延が大きくなることが予想される。DQSは2本あるので、DQが8本ごとに1本のDQSをクロックとして使用してデータをサンプルする予定だ。ここで問題なのは、BUFGの位置が決まっているためにDQSごとにBUFGに行く遅延が異なるのではという懸念がある。

さて実際にやってみた結果を検証してみよう。はじめに制約はまだいい加減で、必要な制約もまだまだ足りない。その状態で、どのようなインプリメントになるのかを見ていこう。
下がDQ0のタイミング解析結果だ。ピンクの枠で囲ったのが、DQS0のIOパッドからBUFGまでのネットの遅延で、3.139nsかかっている。かなり遅延している。黄色の枠で囲ったDQ0のIOパッドから分散RAMを使用した非同期FIFOに入る部分の遅延が7.774nsとかなり遅延がある。
Spa3A_DDR2_3_090325.png

次に、DQS0のIOパッドからBUFGまでのネットをFPGA Editorで見てみよう。FPGA Editorで表示したDQS0のIOパッドからBUFGまでのネットを下に示す。
Spa3A_DDR2_4_090325.png

次にDQ9のTiming Analyzerの解析結果を見てみよう。DQ9のクロックリソースはDQS1であるので、DQ0とは違っているはずだ。
下の図で、ピンクの枠で囲ったのが、DQS0のIOパッドからBUFGまでのネットの遅延で、1.988nsかかっている。かなり遅延している。DQ0のIOパッドから分散RAM使用FIFOに入る部分の遅延が5.544nsだった。DQ0と比べるとDQSのIOパッドからBUFGまでのネットの遅延は1.988ns - 3.139ns = -1.151nsの差があり、DQのIOパッドから分散RAM使用FIFOに入る部分の遅延は5.544ns - 7.774ns = -2.230ns の差がある。かなり大きな差となっていると思う。
Spa3A_DDR2_5_090325.png

FPGA Editorで表示したDQS1のIOパッドからBUFGまでのネットを下に示す。
Spa3A_DDR2_6_090325.png

DQS0はFPGAチップの下のBUFGを使っているが、DQS1は上のBUFGを使っている。このようなところにBUFGまでにネットの遅延時間の差が出ていると思う。
とりあえずこれでは使えないので、2つのBUFGがどちらもチップの上の配線遅延が少ないBUFGを使うように位置を固定しようと思う。次に”ISE10.1iのFloorplan Editorでエリア制約”を参考にフロアプランをすることにしようと思う。

  1. 2009年03月25日 21:01 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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