セットアップ時間とホールド時間の違い:定義・遅延・周波数・直し方を比較
どちらも、フリップフロップがデータを正しく取り込むための時間の条件ですが、守る向きが逆です。セットアップ時間は、クロックのエッジより前にデータを確定させておく時間で、データが遅すぎないかを確かめます。ホールド時間は、エッジの後もデータを保っておく時間で、データが速すぎないかを確かめます。セットアップの条件にはクロックの周期が入るので、クロックを遅くすれば直りますが、ホールドは同じエッジどうしの比較なので、周波数を下げても直りません。
| 項目 | セットアップ時間 | ホールド時間 |
|---|---|---|
| 定義 | クロックの有効なエッジより前に、データを確定させておく最小の時間 | クロックの有効なエッジの後も、データを変えずに保つ最小の時間 |
| 確かめること | データが遅すぎないか。次のエッジに間に合うか | データが速すぎないか。同じエッジで新しいデータが入り込まないか |
| 比べるエッジ | 送り側のエッジと、1周期後の受け側のエッジ | 送り側と受け側の同じエッジ |
| チェックに使う遅延 | 最大(max)の遅延。最も遅い経路 | 最小(min)の遅延。最も速い経路 |
| 条件の式(目安) | tcq(max) + tlogic(max) + tsu ≤ T + tskew | tcq(min) + tlogic(min) ≥ th + tskew(tskewは受け側のクロックが遅れる向きを正とする) |
| クロック周波数との関係 | 周期Tが式に入る。最大動作周波数を決める | 周期が式に入らない。周波数とは無関係 |
| クロックスキューの影響 | 受け側のクロックが遅れると余裕が増える | 受け側のクロックが遅れると余裕が減る |
| 違反の直し方 | 論理の段数を減らす、駆動力の大きいセルやしきい値の低い速いセルに替える、配置を近づける、パイプラインで経路を分ける、クロックを遅くする | データ経路に遅延用のバッファを入れる、しきい値の高い遅いセルに替える、クロックスキューを調整する |
| 違反しやすいコーナー | 遅い条件。遅いプロセス・低い電圧・高温(微細なプロセスでは低温の方が遅いこともある) | 速い条件。速いプロセス・高い電圧・低温など |
| チップができてから見つかると | クロックを遅くすれば動く。性能は下がる | 周波数を下げても直らず、正しく動かない。修正には設計の変更が必要になることが多い |
数値は代表的な目安で、世代や製品によって異なります。