今回はProcessesウインドウのUse Constraints を展開して選ぶ、Floorplan Area / IO / Logic - Post-Synthesis をやってみることにした。これを選ぶとSparntan-3EやVirtex-2などはPACEが起動するが、Virtex-4, Virtex-5, Spartan-3AなどはFloorplan Editorが起動する。多分、正規のISEを使用している方はPlanAhead Liteを使えるので、エリア制約をかけるとしたら、そっちを使用するのだと思うが、WebPACKではそれはないので、エリア制約をするとしたら、この方法になるか、それともFloorplannerになると思う。
Floorplan Editorを使ってみた記事は、
” ISERDESのお勉強の続き2 ”がある。(よく書けていると自分でもと思う。後で見ると、ああこんなこともやっていたと思うことが良くある)
さて、プロジェクトはSuzaku-V用のDDR2_burst_testでやってみよう。ProcessesウインドウのUse Constraints を展開して、Floorplan Area / IO / Logic - Post-Synthesis をダブルクリックする。(すでにTiminig ConstrainsがAll Constrains Met になっている。これは、いろいろ苦労してVerilogファイルを最適化しながら制約を満足するようにしたのだった)

Floorplan Editorが立ち上がる。

左のSourceウインドウを見ると、モジュールに分かれていないで、リソースがばらばらになっているのがわかると思う。これではエリア制約をかけることが出来ない。
そうこれは、XSTのKeep Hierarchy オプションをONにする必要がある。(これをONすると、モジュールが残るので、モジュールを渡った最適化が弱くなって、タイミング制約を満たさない可能性も大きくなる)
ProcessesウインドウのSynthesize を右クリックして、Properties... を選択しよう。

Synthesis Options ダイアログが開くので、Keep Hierarchy をNoからYesに変更する。これでモジュールの階層が保持される。

これで再度、ProcessesウインドウのUse Constraints を展開して、Floorplan Area / IO / Logic - Post-Synthesis をダブルクリックする。
そうすると、下の図に示すように、左側のSourceウインドウに各モジュールが表示されるのがわかると思う。右のウインドウのFloorplanタブをクリックして、Floorplanのウインドウに変更する。各モジュールを右側のFloorplanウインドウに適当にドラックアンドドロップしてみる。

下の図がドラックアンドドロップをした後。

適当ではあるが、フロアプランが出来たので、例によってインプリメントした。そうしたら、エリアが小さすぎたようでエラーが出てしまった。

ここでエリアを広げるのだが、やはり、位置を考えてフロアプランすることにした。
ピンクの四角で囲ったところが、IOパッドだ。DQ入出力の近くにread_data_module とwrite_data_module があったほうが良いので、そのモジュールを重ねて大きくして、その2つを重ねた。contorlller は上に大きく配置して、その下にFIFO群を配置した。

これで再度インプリメント。しかし、タイミング制約がエラーになってしまった。

結構、フロアプランするのも面倒だ。。。シビアでなければ、しないほうが面倒がないかも?
後半に続く。果たして無事にインプリメントが成功するのか???
- 2009年02月16日 21:14 |
- Floorplan Editorの使い方
-
| トラックバック:0
-
| コメント:1