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

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

FPGAの部屋

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

Spartan3A Starter KitのDDR2 SDRAMコントローラのバーストテストのその後

Spartan3A Starter KitのDDR2 SDRAMコントローラのバーストテストの2度目のシミュレーションを行った。
やはり、FFでクリティカルパスを切ったので、全体的にタイミングがずれていて、DQに出すデータやマスクを再度FFでラッチする必要があった。いろいろなタイミング関係を調整して、やっとバースト転送テストで正常に動作するようになった。当たり前だが、前のものより1クロック動作するのが遅くなった。当然ながら、FFを使ったので回路規模も増えた。
下に、以前と今回のタイミングチャートの違いを示す。
Spa3A_STKit_DDR2_Sim_9_090610.png

上のタイミングチャートが以前のもの、下が今回修正後のタイミングチャートだ。上のタイミングチャートはピンクの楕円で囲ったMAIN_STATEがWRITになった時から、実際にDDR2 SDRAMにWRITEコマンドを発行するまでの遅延は1クロックだが、下のタイミングチャートでは2クロックに増加している。これが遅延の増加分だ。

動作がOKになったものをISE11.1iでインプリメントして、FPGA Editorで見てみると結構、配線が散らばっている。
Spa3A_STKit_DDR2_imp_8_090611.png

Timing Analyzerのタイミング解析結果はこれ、Timing Analyzerを単体で動作させている。
Spa3A_STKit_DDR2_imp_9_090611.png

ここで疑問なのは、クロックの制約が5nsで、スラックが-1.648nsなのに、なんで Minimum period is 7.974ns.なのかということだ。後の1.362ns はどこから来たんだろうか?

ともかく、SDRAMの配置の領域がFPGA内部に散らばっているようなので、PlanAheadでフロアプランを試みる。
まずはPlace & Route後の配置をPlanAheadで見てみよう。ISE11.1iのProject NavigatorのProcessesペインでImplement Desin -> Place & Route -> Analyze Timing / Floorplan Design (PlanAhead) をダブルクリックしてPlanAheadを立ち上げる。
Spa3A_STKit_DDR2_imp_10_090611.png

すると下にTiming Resultsが表示されている。エラーがあるパスが表示される。エラーがあるパスをクリックすると右上のデバイスの中にそのパスが表示されるみたいだ。
下のTiming Resultsでクリティカルパスを右クリックしてSchematicを選択すれば、クリティカルパスの回路も表示することができる。
Spa3A_STKit_DDR2_imp_11_090611.png

ここは、次のアドレスがアクティブバンクかどうかを比較するところで、DDR2 SDRAMコントローラの動作上仕方のないところだ。
今現在だとPlace & Route後のPlanAheadを使っているが、Place & Routeする前にPlanAheadを使ってフロアプランしようと思う。そのためには、もう少し部分的なモジュールの階層キープを使っていこうと思っている。
  1. 2009年06月11日 05:45 |
  2. Spartan3A Starter Kit
  3. | トラックバック:0
  4. | コメント:0