次に、回避する必要のある一般的なミスを 2 つ示します。
- マルチサイクルが各クロック サイクルでアクティブにならない場合に、ホールドを同じソース クロック エッジおよびデスティネーション クロック エッジに戻さずにセットアップを緩和する。
ホールド要件が大きくなりすぎ (ほとんどの場合少なくとも 1 クロック周期)、満たすことができなくなります。
- デザイン内の間違ったポイント間にマルチサイクル パス例外を設定する。
これは、始点セルから終点セルまでにパスが 1 つしかないと想定した場合に発生します。そうではない場合もあります。終点セルには、クロック イネーブルおよびリセット ピンを含め、複数のデータ入力ピンがあり、少なくと 2 つの連続したクロック エッジでアクティブになります。
このためAMD では、セル (またはクロック) だけでなく、終点ピンを指定することをお勧めします。たとえば、終点セル REGB には C、EN、D の 3 つの入力ピンがありますが、マルチサイクル パス例外の制約を設定する必要があるのは REGB/D ピンだけです。EN ピンには、各クロック サイクルで変更される可能性があるので、制約は設定しません。制約がピンではなくセルに適用される場合は、EN (クロック イネーブル) ピンを含むすべての有効な終点ピンがその制約に対して考慮されます。
確実にするため、AMD では常に次の構文を使用することをお勧めします。set_multicycle_path -from [get_pins REGA/C] \ -to [get_pins REGB/D] -setup 3 set_multicycle_path -from [get_pins REGA/C] \ -to [get_pins REGB/D] -hold 2