ファンアウトの大きいネット ドライバーの複製 - 2023.2 日本語

FPGA および SoC 用 UltraFast 設計手法ガイド (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 日本語

レジスタの複製を使用すると、レジスタのコピーを作成して信号のファンアウトを削減することにより、クリティカル パスを高速化できます。これにより、インプリメンテーション ツールでさまざまなロードおよび関連ロジックの配置配線がより柔軟に実行されるようになります。合成ツールでは、この手法が広範に使用されます。

ほとんどの合成ツールでは、ファンアウトしきい値制限を使用して、レジスタを複製するかどうかが自動的に決定されます。このグローバルしきい値を下げると、ファンアウトの大きいネットが自動的に複製されるようになりますが、どのレジスタを複製するか、そのロードをどのようにグループ化するかなどの詳細な制御はできません。また、グローバル複製メカニズムではタイミング スラックが正確に評価されないので、セルが不必要に複製されたり、ロジックの使用率が増加したり、消費電力が大きくなったりする可能性があります。

高周波数デザインでファンアウトを削減するには、ファンアウトの大きい信号に対してバランスの取れたツリーを使用するのがより良い方法です。1 つの階層に含まれるセルは通常一緒に配置されるので、デザイン階層に基づいてレジスタを手動で複製することを考慮してください。たとえば、次の図に示すバランスの取れたリセット ツリーでは、ファンアウトの大きいリセット FF RST2 が RTL で複製され、異なるモジュール間でファンアウトのバランスが取られます。必要であれば、物理合成でさらに複製を実行し、配置情報に基づいて WNS を向上できます。

ヒント: 合成で複製されたレジスタを保持するには、DONT_TOUCH ではなく KEEP 属性を使用してください。DONT_TOUCH 属性を使用すると、インプリメンテーション フローの物理最適化で最適化が実行されなくなります。
注記: レジスタではなく LUT1 が複製された場合は、属性または制約が正しく適用されていません。
図 1. ファンアウトの大きいリセットをバランスの取れたリセット ツリーに変換

クロック ドメイン間をまたぐ信号を同期するのに使用されたレジスタは複製しないようにしてください。これらのレジスタに ASYNC_REG 属性を適用すると、複製されなくなります。同期チェーンのファンアウトが大きく、タイミングを満たすために複製が必要な場合は、同期チェーンの後に ASYNC_REG 属性を設定しないレジスタを追加します。

次の表に、デザインで許容されるファンアウト数のガイドラインを示します。

表 1. 中程度パフォーマンスの 7 シリーズ デバイスでのファンアウト ガイドライン
条件 ファンアウト > 5000 ファンアウト > 200 ファンアウト > 100
低周波数 1 ~ 125 MHz 最大周波数での同期ロジック間のロジック段数は 13 未満 なし なし
中周波数 125 ~ 250 MHz デザインでタイミングが満たされない場合、ファンアウトまたはロジック段数を削減する必要がある場合あり。 最大周波数でのロジック段数は 6 未満 (ドライバーおよびロード タイプがパフォーマンスに影響)。 なし
高周波数 > 250 MHz ほとんどのデザインで推奨されない。 高速の場合、通常ロジック段数を少なくすることが必要。 アドバンス パイプライン手法が必要。注意してロジック複製。コンパクトな関数。ロジック段数を少なくすることが必要 (ドライバーおよびロード タイプがパフォーマンスに影響)。
ヒント: タイミング レポートにファンアウトの大きい信号が原因でデザイン パフォーマンスが制限されていることが示されている場合は、opt_design -hier_fanout_limitplace_designphys_opt_design などのインプリメンテーション ツール オプションを使用して信号を複製することを考慮してください。
ヒント: レジスタを複製する際は、<original_name>_a<original_name>_b のような名前を付けて複製されたものであることがわかるようにし、RTL コードが管理しやすくなるようにしてください。