インテル® Quartus® Primeタイミング・アナライザー・クックブック

ID 683081
日付 7/21/2022
Public

クロック・イネーブル・マルチサイクル

マルチサイクルの指定は、レジスターのイネーブルされたポートに基づいて、クロックがイネーブルされたマルチサイクルを使用して行うことができます。例えば、次の図で示す単純な回路では、レジスター enable_reg を使用して、レジスター din_a_reg[7..0]din_b_reg[7..0]din_x_reg[7..0]din_y_reg[7..0]a_times_b、および x_times_y に対するレジスターイネーブル信号が作成されます。

enable_reg レジスターによって生成されるイネーブルパルスは、レジスターのクロック周期の2倍です。そのため、正しい解析を行うには、マルチサイクル例外を適用する必要があります。enable_reg レジスターによって供給されるイネーブル駆動レジスターに対して、マルチサイクル・セットアップ2とマルチサイクル・ホールド1を適用します。マルチサイクル例外を適用する対象は、デスティネーション・レジスターが enable_reg によって制御されているレジスター間パスに限られます。これを実現するには、すべてのイネーブル駆動レジスターに set_multicycle_path 例外を適用します。これは、すべてのイネーブル駆動レジスターを指定しなければならないので、煩雑な作業になります。また、set_multicycle_pathget_fanouts の組み合わせを使用することもできます。

図 18. クロック・イネーブル・マルチサイクル・デザイン

クロック・イネーブル・マルチサイクル制約

#Setup multicycle of 2 to enabled driven destination registers
set_multicycle_path 2 -to [get_fanouts [get_pins enable_reg|q] \
-through [get_pins -hierarchical *|ena]] -end -setup

set_multicycle_path 例外のターゲットは、レジスターのイネーブルポートを供給する enable_reg レジスターのすべてのファンアウトに限定されます。次のオプションを使用します。

[get_fanouts [get_pins enable_reg|q] -through [get_pins -hierarchical *|ena]]

セットアップとホールドの関係は、enable_reg レジスターで開始し、イネーブル駆動レジスターでそれぞれ2、1で終了します。