タイミング解析とCDC
周期 1.0 ns のクロックで、フリップフロップA→B→Cとつながる経路がある。A→Bはクロック→出力遅延とセットアップ時間を含めて 1.2 ns が必要で、B→Cは 0.8 ns で足りる。スキューを意図的に使って両方のセットアップを満たすには、Bのクロックをどうすればよいか(AとCのクロックは同時に届くものとする)。
- A0.2 ns 早める
- B0.4 ns 遅らせる
- C0.2 ns 遅らせる
答えと解説を見る
正解:C. 0.2 ns 遅らせる
Bのクロックを 0.2 ns 遅らせると、A→Bの経路は取り込みが遅れて 1.0 + 0.2 = 1.2 ns の時間を使えます。B→Cの経路は送り出しが遅れるので 1.0 − 0.2 = 0.8 ns になりますが、必要な時間は 0.8 ns なので足ります。このように意図的に入れるスキューを有用スキューと呼びます。0.4 ns 遅らせるとB→Cが 0.6 ns しか使えず違反し、早めるとA→Bがさらに厳しくなります。スキューを変えたときは、ホールドの確認も欠かせません。