インテル® Quartus® Prime プロ・エディションのユーザーガイド: デザインの推奨事項

ID 683082
日付 8/03/2023
Public
ドキュメント目次

3.3.1. 同期レジスターチェーン長

Synchronization Register Chain Length オプションでは、最適化から保護する必要があるレジスターの数を指定します。これを行わないと、各レジスターチェーンのMTBFが低下する可能性があります。また、Optimize Design for Metastability オプションとともに使用することで、MTBFの向上に向けて最適化するレジスターの数を制御します。

例えば、Synchronization Register Chain Length オプションが 2 に設定されている場合、レジスターの複製やロジックのリタイミングなどの最適化は、特定されているすべての同期チェーンの最初の2つのレジスターで実行されません。Optimize Design for Metastability オプションがオンになっている場合は、最初の2つのレジスターも最適化され、MTBFを改善します。

Synchronization Register Chain Length オプションのデフォルトの設定は 3 です。同期チェーンの最初のレジスターは、MTBFが低下する可能性のある操作から常に保護されます。ただし、保護の長さを設定することにより、シンクロナイザー・チェーンのより多くの部分を保護することが推奨されます。インテルでは、このオプションをデザインの同期チェーンの最大長に設定することで、すべての同期レジスターが維持され、MTBFに関する最適化が行われるようにすることを推奨しています。

Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis) をクリックし、グローバル Synchronization Register Chain Length オプションを変更します。

Assignment Editorでは、Synchronization Register Chain Length をノードまたはエンティティーに設定することもできます。この値を同期チェーンの最初のレジスターに設定すると、このチェーンで保護および最適化するレジスターの数を指定することができます。この個別の設定は、MTBFが低い特定の同期チェーンで作成した追加レジスターを保護および最適化する場合や、最大周波数またはタイミング・パフォーマンスが満たされていない特定のチェーンで少ないレジスターを最適化してMTBFを改善する場合に役立ちます。Tclでグローバル設定を行うには、次のコマンドを使用します。

set_global_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH <number of registers>

Tclを使用して割り当てをデザイン・インスタンスまたは特定のチェーンの最初のレジスターに適用するには、次のコマンドを使用します。

set_instance_assignment -name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH <number of registers> -to <register or instance name>