• 検索結果がありません。

手順 4 : デザインのフロアプラン

Pblock の自動作成

1. [Tools] → [Floorplanning] → [Auto-create Pblocks] をクリックします。

[Auto-create Pblocks] ダイアログ ボックスが開きます。

図 40 : [Auto-create Pblocks] ダイアログボックス

このダイアログ ボックスで、作成する Pblock の最大数を定義するオプションを確認します。

ヒント : モジュールの数が指定した Pblock の最大数より多い場合は、最大のモジュールから順に Pblock が作成され ます。

2. [OK] をクリックし、リストされているモジュールの Pblock を作成します。

3. レイアウトセレクターで [Floorplanning] を選択し、[Physical Constraints] ビューを表示します。

[Physical Constraints] ビューに、作成された Pblock と最上位の ROOT が表示されます

(図 41)。

[Netlist] ビューでは、6 つのモジュールの横にあるアイコンが から に変更され、

モジュールが Plock として定義されたことが示されます。

手順 4 : デザインのフロアプラン

Pblock の配置

4. [Tools] → [Floorplanning] → [Place Pblocks] をクリックします。

[Place Pblocks] ダイアログ ボックスには、配置する Pblock を選択し、Pblock の SLICE のターゲットの使用率を指定するオ プションがあります。

図 42 : Pblock の配置

Vivado IDE で作成される Pblock のサイズは、[Place Pblocks] ダイアログ ボックスで指定した使用率 % によります。Pblock のサイズは SLICE ロジックの使用率のみに基づいており、Pblock のサイズを予測するのに有益ですが、[Place Pblocks]

コマンドで作成した Pblock のサイズは、Pblock に割り当てられているすべてのロジックに十分なリソースがあることを確実 にするため、インプリメンテーションの前に変更する必要があります。

5. デフォルト設定のまま [OK] をクリックし、すべての Pblock を配置します。

Pblock の配置は暫定的なもので、[Place Pblocks] コマンドを実行するたびに異なる配置になる可能性があります。

[Device] ビューで、Pblock を選択して移動して接続がからまないようにし、図 43 に示すように配置できます。

手順 4 : デザインのフロアプラン

図 43 : バンドルネットで表された Pblock のデータフロー

6. ツールバーの [Show I/O Nets] ボタン をクリックし、Pblock と I/O ポートの間の接続を表示します。

7. ツールバーの [Device View Options] をクリックし、[Design] の下の [Bundle Nets] の表示をオンにします。

バンドル ネットおよび I/O の接続を表示すると、デザインの接続性を理解しやすくなります (図 43)。暫定的なフロアプラン では、早期にデザインの全体的なデータ フローを確認し、配線の密集の可能性を発見できます。バンドルは、2 つの

Pblock 間で共有されるネット数に基づいて色分けされています。

現在の定義を表示または変更するには、[Tools] → [Options] をクリックして [Vivado Options] ダイアログ ボックスを開き、

左側のペインで [Colors] をクリックして、右側で [Bundle Nets] タブをクリックします。[Device] ビューの [Device View Options] メニューでも設定されている色を確認できますが、変更はできません。

8. [Device] ビューでバンドルネットの 1 つを選択します。

[Bundle Net Properties] ビューでネットのリストを確認します。これらのネットが 2 つの Pblock 間のバンドルに含まれます。

手順 4 : デザインのフロアプラン

図 44 : [Bundle Net Properties] ビュー

グローバル クロックの検索

フロアプランが効果的かどうかは通常、異なるクロック ドメインの同期エレメントが適切に配置されたかどうかによって決まりま す。クロック ドメインをハイライトして接続を表示し、Pblock がクロック領域に対して適切に配置されているかを確認できます。こ の手順では、検索機能を使用して USB グローバル クロック (usbClk) を検索して選択し、そのクロックが供給される Pblock を ハイライトします。

9. [Edit] → [Find] をクリックするか、または Ctrl + F キーを押します。

[Find] ダイアログ ボックスが開き、指定のタイプのオブジェクトを検索できます。

10. [Find] ダイアログボックスで次のようにオプションを設定します。

• [Find] : [Nets]

• [Criteria] : [Type]、[is]、[Global Clock]

11. [Unique nets only] がオンになっていることを確認し、[OK] をクリックします。

Vivado IDE の下部に [Find Results] ビューが開きます。

12. [Instance Pins] 列見出しを 2 回クリックし、結果を並べ替えます。

13. [Find Results] ビューで clkgen/usbClk_o を選択します。

[Device] ビューで 2 つのusbEngine Pblock を接続するネットがハイライトされます。こ

のクロックは、これら 2 つのブロックでのみ使用されます。

手順 4 : デザインのフロアプラン

Pblock の移動

暫定的な Pblock 配置で、Pblock 間のデータ フローをネット バンドルで表示した状態で、デザイン要件の一部を満たすために 配置をクリーンアップします。ここでは、usbEngine ブロックのタイミング遅延を削減するように Pblock を配置します。

usbEngine ブロックのみが対象なので、[Physical Constraints] ビューからほかの Pblock をクリアします。

14. [Physical Constraints] ビ ュ ー で pblock_clkgen、pblock_cpuEngine、pblock_fftEngine、 pblock_mgtEngine、および pblock_wbArbEngine. を選択します。

15. 右クリックして [Delete] をクリックします。

選択した Pblock が削除され、usbEngine0 およびusbEngine1 Pblock のみが残ります。

ほかの Pblock は、デザインの異なるモジュールのデータ フローを理解するためのもので、フ ロアプランには必要ありません。

16. pblock_usbEngine1 を [Physical Constraints] ビューで選択するか、[Device] ビューで 直接クリックします。

17. [Device] ビューで Pblock をドラッグしてデバイスの上の方に移動します。

Pblock の I/O ポートへの接続を示すワイヤが上部の I/O ポートに接続されいるので、新しい 配置は適切であると考えられます。遅延を削減するには、Pblock を接続されている I/O ポー トの近くに配置します。

Pblock を新しい位置に配置すると、新しい位置で Pblock 用にイネーブルにするリソースを

選択する [Move] ダイアログ ボックスが開きます。

18. [OK] をクリックして、すべてのリソースタイプを含めます。

図 45 : [Mo e] ダイアログボックス

19. Pblock のエレメントが既に配置されている場合、図 46 に示す [Choose LOC mode] ダイアログ ボックスが表示され、既存

のセル配置または LOC 制約の処理方法を選択できます。

このダイアログボックスには、次のオプションがあります。

• すべてのセルを現在の配置位置に保持

• 新しい Pblock エリア外となるセルの配置を解除

• 新しい Pblock エリア外となる固定されていないセルのみの配置を解除

• Pblock のすべてのセルの配置を解除

手順 4 : デザインのフロアプラン

20. [Delete all location constraints of the pblock] をオンにし、[OK] をクリックします。

これで、Pblock に割り当てられている配置されたセルがアップデートされ、セル上の LOC 制約がクリアされて、Pblock の

新しいエリアに移動されます。

図 46 : [Choose Loc mode] ダイアログボックス

重要 : 固定されたセルと固定されていないセルの両方が配置されます。

「固定された」 (Fixed) と「固定されていない」 (Unfixed) は、配置済みセルに使用される用語で、Vivado ツールでデ ザインの配置済みセルがどのように認識されるかを示します。

• 固定されたセルは、ユーザーが配置したか、制約ファイルからインポートされており、指示しない限り移動されま せん。

• 固定されていないセルは Vivado インプリメンテーションで place_design コマンドまたは最適化コマンドにより 配置されたもので、必要に応じて移動されます。

21. pblock_usbEngine0 を選択し、表示される接続を参考にして [Device] ビューの下の方に移動します。

[Move] ダイアログ ボックスと [Choose LOC mode] ダイアログ ボックスが表示されたら、先ほどと同様のオプションを選択し ます。

Pblock のサイズの変更

usbEngine ブロックをおよそ希望の位置に配置したら、必要なリソースを含めるためサイズを変更する必要があります。

22. Pblock を選択し、[Pblock Properties] ビューで [Statistics] タブをクリックします。

[Pblock Properties] ビューの [Statistics] タブには、Pblock で指定されているデバイスのエリア内に含まれるロジック リソー

ス、Pblock に割り当てられているロジックに必要なリソースの量、および現在の使用率 (%) が表示されます。

赤字で示される値は、Pblock のエリアに、Pblock に割り当てられたデザイン ロジックに必要なリソースが不足していること を示します (図 47)。このような場合、Pblock のサイズを変更して使用可能なリソース量を増加する必要があります。

手順 4 : デザインのフロアプラン

図 47 : [Pblock Properties] ビューの [Statistics] タブ

23. [Device] ビューで pblock_usbEngine0 を選択します。

24. 右クリックして [Set Pblock Size] をクリックします。

25. [Device] ビューの左側のクロック領域 X0Y1 を囲む長方形を描きます。

クロック領域の境界を含むよう正しく長方形を描くと、クロック領域を Pblock の範囲として選択することを確認するダイアロ グボックスが表示されます。クロック領域全体が含まれない場合は、Pblock エリアに含まれるロジック タイプを選択するダ イアログ ボックスが表示されます。

図 48 : [Set Pblock] ダイアログボックス

26. [OK] をクリックしてクロック領域または含まれるロジックを承認します。

ここで、[Pblock Properties] ビューの [Statistics] タブを確認すると、pblock_usbEngine0 の大きさが十分でなく、必要 なロジック リソースがすべて含まれていないことがわかります (図 49)。

27. [Pblock Properties] ビューを一番下までスクロールし、表示されている情報を確認します。

手順 4 : デザインのフロアプラン

図 49 : usbEngine0 Pblock のプロパティ

28. Pblock の下辺をデバイスの下辺まで広げ、[OK] をクリックしてクロック領域を Pblock の範囲とします。

Pblock の長方形を次の図に示すように拡張し、クロック領域 X0Y0 と X0Y1 の両方が含まれるようにします。各ロジック サ

イトのタイプではなく、クロック領域の選択を確認するダイアログボックスが表示されます。

手順 4 : デザインのフロアプラン

29. pblock_usbEngine1 を選択し、クロック領域 X0Y2 と X0Y3 が含まれるようサイズを変更します。

最終的な配置は、図 51 のようになります。

図 51 : usbEngine0 および usbEngine1 Pblock の配置

usbEngine0 およびusbEngine1 Pblock の配置制約を作成したので、デザイン制約を保存する必要があります。制約 を新しい制約セットに保存し、異なるデザイン ストラテジを分けておくと、必要に応じて前のデザイン ストラテジに戻したり、

1 つのデザインに対して異なるストラテジを作成してインプリメントしたりできるので、有益です。

30. [File] → [Save Constraints As] をクリックします。

[Save Design As] ダイアログボックス (図 52) が開きます。

関連したドキュメント