手順 2 : タイミングパスの階層
4. [Schematic] ビューで右クリックし、[Select Primitive Parents] をクリックします。
[Select Primitive Parents] コマンドを使用すると、選択されているプリミティブまたはモジュールの階層の親から、階層をた
どってデザインの最上位まで選択されます。親モジュールは、[Netlist] ビューでも選択されます。
5. [Netlist] ビューで、右クリックして [Show Hierarchy] を選択するか、F6 キーを押します。
選択されたロジック (ワースト遅延のタイミング パス上にあるロジック) は、すべてusbEngine1 モジュールに含まれていま す。同一のロジックであるusbEngine0 モジュールでも、同じ問題が発生していると考えられます。これら 2 つの usbEngine ブロックを後ほどフロアプランします。
図 34 : タイミングパスに関連するロジック
6. [Hierarchy] ビューのタブにある [X] ボタンをクリックして閉じます。
7. [Timing] ビューの一番上のパスを選択します。
8. 右クリックして [Schematic] をクリックします。
[Schematic] ビューにタイミングパスロジックが表示されます (図 35)。
手順 2 : タイミングパスの階層
図 35 : パス 1 の階層回路図
[Schematic] ビューのネストされた長方形は、デザインの階層構造を表します。これにより、クリティカル パス ロジックに関連 するロジック モジュールを簡単に特定できます。選択したタイミング パスを見ると、ロジックが usbEngine1 ブロックに含 まれているのがわかります。
9. メインツールバーの [Unselect All] をクリックするか、F12 キーを押します。
10. [Schematic] ビューで buffer_fifo ブロックの中の RAMB36E1 を選択します。
11. 右クリックして [Expand Collapse] → [Collapse Outside] をクリックします。
選択したセルの外側のモジュールがすべて非展開になり、選択したセルの階層のみが表示されます。ここでは、選択した セルがクリティカルタイミングパスのソースです。
12. ブロック RAM の左上にある ADDRARDADDR[15:0] ピンの外側をダブルクリックします。このピンに接続されているロジッ クが展開表示されます。
ヒント : ピンの外側をダブルクリックすると、ピンを右クリックして [Expand Cone] → [To Primitives] をクリックした場合と 同じ操作が実行されます。
13. 新たに表示されたロジックの一番上の infer_fifo.wr_addr_reg[0] セルを選択します。
14. 右クリックして [Expand Cone] → [To Primitivies] をクリックするか、ダブルクリックします。
この操作により、選択したセルに接続されているロジックが次に接続されているプリミティブまで開きます (図 36)。リセット ネット、グローバル クロック バッファー、usbEngine1 ブロックのロジックなどが表示されます。ブロック RAM は、ほかのロ ジックから比較的分離されているのがわかります。
手順 2 : タイミングパスの階層
15. [Schematic] ビューのツールバーの [Previous schematic] ボタン をクリックします。
[Previous schematic] および [Next schematic] ツールバー ボタンをクリックすると、[Schematic] ビューで前の表示または次 の表示に移動できます。
図 36 : ロジックの展開表示
16. [Schematic] ビューの [X] ボタンをクリックして閉じます。
このブロック RAM への入力は、usbEngine ブロックに含まれています。ほかの階層はフロアプランする必要はありませ ん。
17. [Unselect All] ツールバー ボタンをクリックするか、F12 キーを押します。
18. [Netlist] ビューで [Collapse All] ボタンをクリックします。