合成中、デザイン パフォーマンスを向上するため一部のレジスタが複製されます。合成エンジンでは、複製されたセルを含めるためにユーザー XDC 制約は変更されません。Vivado 合成で複製されたオブジェクトにタイミング制約が設定されている場合、XDC 制約の記述方法によって、複製されたセルに常に XDC 制約が適用されるわけではないので、インプリメンテーションの結果の質 (QoR) に影響することがあります。
Vivado 合成を使用する際は、get_cells
および get_pins
コマンドを使用すると、複製されたオブジェクトが自動的に含まれるようになります。
たとえば set_false_path –from [get_cells –hierarchical *rx_reg]
は、次のように記述し直すと、インプリメンテーション中に複製されたオブジェクトが含まれるようになります。
set_false_path -from [get_cells -hierarchical *rx_reg -include_replicated_objects]
-include_replicated_objects
コマンド オプションは、複製されたオブジェクトに設定された ORIG_CELL_NAME プロパティに依存します。次のクエリ コマンドでは、元のセルと複製されたセルが返されます。
get_cells -include_replicated_objects *rx_reg
get_cells -include_replicated_objects [get_cells -hier -filter {NAME =~ *rx_reg}]
get_cells -hierarchical -filter {NAME =~ *rx_reg || ORIG_CELL_NAME =~ *rx_reg}
-filter
オプションは、常にオブジェクトのコレクションが構築されてから適用されます。フィルター式が NAME プロパティを参照する場合、-filter
と include_replicated_objects
を一緒に使用しないようにしてください。このような場合、NAME で指定したパターンと一致しないと、複製オブジェクトは返されません。たとえば、次の構文では、*reg_replica*
に一致する複製オブジェクトは返されません。
get_cells -include_replicated_objects -filter {NAME =~ *rx_reg}
ザイリンクスでは、設計手法チェック (report_methodology) を実行して XDCV-1 および XDCV-2 チェックのメッセージを確認し、get_cells
/get_pins
-include_replicated_objects
オプションを使用して記述し直す必要がある制約を特定することを勧めしています。
インプリメンテーションに進む前に、大きなタイミング違反がないことを確認する必要があります。マイナーなタイミング違反であれば、たいていのものは配置配線で修正できますが、タイミング クロージャを不可能にするような根本的なデザインの問題は修正できません。
詳細は、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) のこのセクション、または 『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904) のこのセクションを参照してください。