タイミング解析とCDC
マルチビットのデータを、別のクロックドメインに安全に渡す方法として正しいものはどれか。
- Aデータの各ビットに3段の同期化回路を付ければ、ビットごとのずれがなくなるので、それだけで安全に渡せる
- Bデータを送り側で保持したまま、1ビットの有効信号だけを同期化し、受け側はそれを見てからデータを取り込む
- C各ビットの同期化回路を互いに近くに配置して、ビットごとのずれをなくす
答えと解説を見る
正解:B. データを送り側で保持したまま、1ビットの有効信号だけを同期化し、受け側はそれを見てからデータを取り込む
マルチビットのデータでは、各ビットの同期化の結果が1サイクルずれる問題を、段数や配置の工夫で解決することはできません。代表的な方法は、データ自体は同期化せずに送り側で保持しておき、1ビットの制御信号だけを同期化して渡すことです。受け側が制御信号の変化を見る時点では、データは十分前から安定しているので、そのまま取り込めます。ただしデータは、受け側が取り込み終わるまで変えてはいけません。連続して大量に送るなら非同期FIFOを使います。