セットアップ時間とホールド時間
フリップフロップがデータを正しく取り込むには、クロックのエッジの前後でデータが変わってはいけない時間があります。エッジより前に必要な時間がセットアップ時間、エッジのあとに必要な時間がホールド時間です。
データの到着が遅すぎてセットアップ時間を守れないのがセットアップ違反で、クロックを遅くすれば直ります。次のデータへの変化が早すぎてホールド時間を守れないのがホールド違反で、こちらはクロックの周波数を下げても直らないため、遅延を足して修正します。
動かして確かめる:データの変化のタイミング
データが新しい値になる時刻(到着)と、次の値へ変わる時刻を、クロックのエッジを0として動かし、セットアップ時間とホールド時間を守れているかを判定します。セットアップ時間は0.3 ns、ホールド時間は0.2 nsとしています。