次の例はすべてのデザインに適用できるわけではありませんが、階層を使用して何が達成できるかを示しています。DSP デザインでは、通常デザインにレイテンシを追加できるので、レジスタを追加して高クロック周波数デザインをインプリメントできます。レジスタは、配置の柔軟性を上げるためにも使用できます。高クロック周波数では 1 クロック サイクルでダイを通過することは不可能なので、これは重要です。レジスタを追加することで、到達しにくいエリアが使用されるようになります。次の図に、効果的な階層プランニングにより、タイミング クロージャにかかる時間を短縮できることを示します。
デザインのこの部分には、次の 3 つのレベルがあります。
-
DSP_i
DSP_i アルゴリズム ブロックには、入力と出力の両方にレジスタが付いています。デバイスにはレジスタが多数含まれるので、この方法を使用してタイミング バジェットを改善することをお勧めします。
-
floorplanning_wrapper_i
floorplanning_wrapper_i
には、CE 信号が含まれます。CE 信号は通常負荷が高く、タイミングを満たすのが困難なので、フロアプランに含めておく必要があります。フロアプラン ラッパーを作成しておくと、このモジュールを後で必要に応じて手動でフロアプランできます。また、モジュール レベルに KEEP_HIERARCHY を追加しておくと、その他のグローバル合成オプションに関係なく、階層がフロアプラン用に保持されます。
-
placement_flexibility_wrapper_i
placement_flexibility_wrapper_i
では、DATA_IN、VALID_IN、DATA_OUT、および VALID_OUT 信号にレジスタが付いています。これらの信号はフロアプランの一部になるようには意図されていないので、floorplanning_wrapper_i
外にあります。フロアプランに含めると、配置の柔軟性に必要な条件が満たされません。また、DATA_IN と VALID_IN または DATA_OUT と VALID_OUT がペアとして処理されていれば、後でさらにレジスタを追加できます。さらにレジスタを追加すると、合成ツールでシフト レジスタ LUT (SRL) が推論され、すべてのレジスタが強制的に 1 つのコンポーネントに配置され、配置に柔軟性がなくなる可能性があります。これを回避するには、モジュール レベルに SHREG_EXTRACT を追加して NO に設定します。