FC2カウンター FPGAの部屋 ISEで任意のパスのディレイを見る方法2
FC2ブログ

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

FPGAの部屋

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

ISEで任意のパスのディレイを見る方法2

今回はFPGA Editorを使ってみようと思ったが、とりあえずFloorplannerで見てみよう。ISEのProcess View - Implement Design - Place & Route - View/Edit Placed Design (Floorplanner)をダブルクリックして、Floorplannerを起動。
右側のPlacementウインドウを見てみよう。赤丸の中、チップの下のほうにCLKパッドがある。SW入力パッドは右真ん中のあたり。いくらもロジックが無いので、チップの右真ん中のあたりに固まっている。(下図参照)
Tech_Schma_10_051215.png

Inst_ssgdisp_FreqDivi_lcnt_12を表示してみよう。右上のHierarchyウインドウのdynadisp_test "Primitives"を展開すると、Inst_ssgdisp_FreqDivi_lcnt_12がある。クリックすると、Placementウインドウに斜線でハッチングされて表示される。(図は拡大している)
Tech_Schma_11_051215.png

同様にswl_3をクリックすると出てこない。FPGA Editorでみると、IOパッド内のInputレジスタを使用しているようだ。Floorplannerでも片鱗が見える。SW3パッドを見ると、IQ1としてswl<3>がマップされている。FloorplannerでのIOBレジスタのマップ状況の見方はいまいち良くわからない。
Tech_Schma_12_051215.png

次に、FPGAチップ内で、どの位クロックディレイに差があるか調べてみよう。いい加減な方法だが、適当にFloorplannerでFFの配置を移動して調べてみようと思う。やり方は以前このブログで紹介したので割愛するが、"Floorplannerの使い方覚書1"を見てほしい。(FloorplannerはTiming Analyzerからのクロスプローブで立ち上げないで、この前のように単体で立ち上げる)すべてのロジックをUCF Flowにコピーする。適当にInst_ssgdisp_FreqDivi_lcnt_11、Inst_ssgdisp_FreqDivi_lcnt_12を動かしてみた。
Tech_Schma_13_051215.png

これでセーブして、コンパイルし、クロックディレイを観察してみよう。
Timinig Analyzerを起動しよう。
例によって、Process View - Implement Design - Place & Route - Generate Post-Place & Route Static Timing - Analyze Post-Place & Route Static Timing(Timing Analyzer)をダブルクリックして、Timing Analyzerを起動。起動したら、ツールバーの右から5番目の砂時計マーク(Analyze against Users Paths by defining Endpoint)をクリックする。
下図のようなダイアログが開く。
Tech_Schma_7_051213.png

前回と同様にSourcesにclkを入れる。DestinationsにはInst_ssgdisp_FreqDivi_lcnt_10、Inst_ssgdisp_FreqDivi_lcnt_11、Inst_ssgdisp_FreqDivi_lcnt_12を入れよう。
それでOKボタンを押す。
Tech_Schma_14_051215.png

ディレイを計算して表示する。
Tech_Schma_15_051215.png

その結果、Inst_ssgdisp_FreqDivi_lcnt_10だけclkパッドからFFまでのディレイは2.952nsで、他のディレイは2.950nsだった。2psしか変わらない。
今まではxc3s200だったが、今度はxc3s1500と大きなFPGAにしてやってみよう。
さっきと同様にFloorplannerでInst_ssgdisp_FreqDivi_lcnt_11、Inst_ssgdisp_FreqDivi_lcnt_12を動かしてみた。下の図はその位置。
Tech_Schma_16_051215.png

さっきと同様に、clkパッドからInst_ssgdisp_FreqDivi_lcnt_10、Inst_ssgdisp_FreqDivi_lcnt_11、Inst_ssgdisp_FreqDivi_lcnt_12間での遅延を見てみる。
Tech_Schma_17_051215.png

そうするとclkパッドからInst_ssgdisp_FreqDivi_lcnt_11が2.355ns、Inst_ssgdisp_FreqDivi_lcnt_10が2.189ns、Inst_ssgdisp_FreqDivi_lcnt_12が2.172nsとなった。Inst_ssgdisp_FreqDivi_lcnt_11とInst_ssgdisp_FreqDivi_lcnt_12間のクロックスキューは183psとなった。これは適当にFFを配置しているので、確かなことはいえないが、大きいFPGAはクロックスキューも大きくなる傾向のようだ。チップが大きいので当たり前だが。。。もっと大きくなると、もっと顕著になる。大きいFPGAを速く動かすのは難しいと言えよう。
  1. 2005年12月16日 23:00 |
  2. Timing Analyzerの使い方
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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