FC2カウンター FPGAの部屋 Spartan3A Starter KitのDDR2 SDRAMコントローラの途中経過5(ロジックセルの固定の微調整)
fc2ブログ

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

FPGAの部屋

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

Spartan3A Starter KitのDDR2 SDRAMコントローラの途中経過5(ロジックセルの固定の微調整)

”Spartan3A Starter KitのDDR2 SDRAMコントローラの途中経過4(ロジックセルを固定する)”でロジックセルを固定したが、微妙な遅延差が残った。今回は微妙な遅延差の解消を目指す。

まずはIOBから非同期FIFOまでのネットが約0.4ns のDQ0と同じく0.7ns のDQ1の違いを考察することにする。まずはDQ0から下の図にFPGA Editorで見たIOBから非同期FIFOまでのネットを示す。
Spa3A_DDR2_25_090325.png

DQ0はIOBと非同期FIFOのロジックが同じ行にある。IOBから最初につながっているスライス(フロアプランの位置で言うとX0Y62)と次のスライス(X2Y63)はX方向(行方向)が異なっているが、遅延の差は5ps だった(0.405ns と0.410ns)。
次にDQ1を見てみよう。下にDQ1のにFPGA Editorで見たIOBから非同期FIFOまでのネットを示す。
Spa3A_DDR2_26_090325.png

これはIOBとスライスの列方向の位置が違っている。この遅延はどちらのスライスも0.700ns と大きい。やはり列方向に配線するのに遅延が大きくなっているのだろうか?なるべく、列方向が異なる配置にならないようにもう一度Floorplannerで配置をやり直すことにする。
もう一度、Floorplannerを立ち上げてよく見てみると、IOBとスライスの間が2重線でつながれているところがある。そこが列が違うところのようだった。
Spa3A_DDR2_27_090325.png

2重線をネットがまたがないように位置を並べ替えた。そして、この状態でインプリメントし、Timinig Analyzerで見たところ、IOBから非同期FIFOまでのネットの遅延が0.7ns程度のものがある。どうやら区画の上側のIOパッドから、その区画のSLICEM(分散RAMになるのはSLICEMのみです)に行くネットの遅延が大きいようだ。下にDQ1のネットを示す。0.7ns程度の遅延だ(ピンクの四角の部分)。
Spa3A_DDR2_28_090330.png

これは困った。スイッチファブリックのスイッチルートが悪いのだろうか?
更に、区画内の上側のIOパッドから少ない遅延時間で接続できるSLICEM(非同期FIFOの入り口のロジックセル)を探してみることにした。その結果、上の区画のX0の位置の2つのSLICEMに接続すれば0.481ns の遅延で接続できることがわかった。
Spa3A_DDR2_29_090330.png

この結果、区画の下側のIOパッドは同じ区画のSLICEMに接続すれば遅延が少なく、区画の上側のIOパッドは上の区画のX0の2つのSLICEMに接続すればやはり遅延が少ないことがわかった。
上の法則にしたがって、さらにもう一度Floorplannerで配置をやり直す。
これでインプリメントしたら失敗してしまった。FPGA Editorで見たIOパッドの位置とFloorplannerで見た区画内のIOパッドの位置は逆のようだ。それを考慮して、Floorplannerで逆に配置する。
実際には下の図のように配置した。
Spa3A_DDR2_30_090330.png

これでIOパッド(IOB)から非同期FIFOまでのネットの遅延は0.401ns、0.411ns と0.481ns になったが、DQ7のネットのみ、ロングライン配線の通っている(横切っている)数が多いようで、間が広いようだった?そのため遅延が0.543ns と多くなってしまった。それでも、最大遅延と最小遅延の差は142ps になった。これはこの辺でいいだろうというか、これ以上改善は難しいと思う。
  1. 2009年03月30日 22:00 |
  2. Spartan3A Starter Kit
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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