クロックスキューとジッタ

[] [] []


同期設計の前提条件は「全てのFFに同時にクロック信号が分配されること」であるが、現実のクロック信号は厳密には同時ではなく、配線遅延やゲート遅延により各FFごとに時間差がある。この時間差をクロックスキューと呼び、通常は最早と最遅の差で定義する。(一般にskewとは同時に起きるべきイベントに時間差が生じることを指す)

またクロック信号自体のエッジの位置も一定ではなく、オシレータの変動や信号波形の歪みによりノミナル位置からばらつく。この時間差をジッタと呼び、通常はノミナルからのずれで定義する。

これらのスキューとジッタを考慮に入れると、FF間転送のタイミング条件は次のように修正される。

 tCO + tPD(max) < tPERIOD - (skew + jitter) - tSU ・・・(1)

 tHD + (skew + jitter) < tCO + tPD(min)  ・・・(2)

したがって正確に言うと、クロックが同時であるとはこのクロックスキューとジッタが一定値以下に管理されているということである。

FPGAにはグローバルバッファが備わっていてこれを使えば、全FFに対してクロックスキューが一定値以下に抑えられるようになっている。逆に、このグローバルバッファを使っていないFFは転送のタイミング条件は保証されない。


[] [] []