FC2カウンター FPGAの部屋 2005年10月11日
FC2ブログ

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

FPGAの部屋

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

DDR SDRAMコントローラ何回目だかわからない2

昨日は2日連続お出かけだったので、発明工夫展にはやめました。
私だけがロボコン決勝を見に行った。少しみていたら飽きたので、職場に行って、仕事を少しやった。家でやっていると、1画面しかなくて不便だが、職場では2画面なので仕事がはかどる。
今日は、DDR SDRAMコントローラがPCIクロック(66MHz)の2倍で動くかどうかを確かめた。
まずは、DDR SDRAMコントローラがPCIクロック(66MHz)の2倍で動く様に戻して、コンパイル。やはりタイミング制約を満足しない。
DDRCLKとDDRCLK180度のクロックスキューが最大2.3ns位ある。これじゃ、3.75 - 2.3 = 1.45nsしか余裕が無いので、無理そう。(しかし、何でこんなにクロックスキューが大きいんだろう、ツールがつながっているスライスは同じくらいのスキューにするとか、もっとうまくやって欲しい)
それじゃというので、DDRCLKとDDRCLK180度クロックをDDRCLKに一本化する。
DDRCLK180 <= not DDRCLK;
にする。こうすると、スライスには、クロックを反転するインバータが入っているので、クロックラインがDDRCLKに一本化される。DDRCLK180クロックを使う所は、クロックを反転して使うからである。
slice_reg_config.png

図はVirtex2のデータシートより転載。クロックをスライス内で反転するインバータがある。上のように書くと、DDRCLK180を使用するスライスはクロックをインバートして使う(と思う)。必ずDCMのDUTY_CYCLE_CORRECTIONをTRUEにしておいたほうが良いと思う。(ディフォルトでTRUEなので心配ないかもしれないが。。。)

これでも、まだタイミング違反は50以上ある。
そのため、Timing AnalyzerからクロスプローブするためにFloorplannerを起動し、Place & Route後の配置をコピーした。
1.Timing Analyzerからクリティカルパスをダブルクリックして、Floorplannerにクリティカルパスを表示する。
2.クリティカルパスが短くなるように、配置を移動する。
1.2.の手順をコンパイルで様子を見ながら、70回以上繰り返すと、タイミング違反が3個くらいになって、タイミング違反の度合いもわずかになった。もういい加減飽きたので、今日はこの辺で終了。このくらいならば、大丈夫だと思うので、確かめてみることにする。
bitファイルを作って、確かめてみる。
何か、電源ONして、最初にbitファイルをロードした時がおかしい時がある。それから、パソコンをリブートすると大丈夫なようだ。まだ、試行回数が少ないので、明日確かめる。
水晶で133MHzを供給して確かめてみたくなった。
水晶はボードの製造元で分けてくれるそうだ。良かった。感謝。

mfreemanさん、教えていただいて、ありがとうございました。基板を作る時は、表面実装品になると思うので、参考になりました。
  1. 2005年10月11日 11:29 |
  2. DDR SDRAMコントローラ
  3. | トラックバック:0
  4. | コメント:2