タイミング解析とCDC

深さ16語の非同期FIFOで、書き込みポインタと読み出しポインタをアドレスより1ビット多い5ビットにする理由として正しいものはどれか。

  1. A16語のアドレスを表すのに、5ビットが必要だから
  2. Bポインタが一致したとき、同じ周回なら空、1周の差なら満杯と区別できるようにするため
  3. C余分なビットをパリティとして使い、ポインタの誤りを検出するため
答えと解説を見る

正解:B. ポインタが一致したとき、同じ周回なら空、1周の差なら満杯と区別できるようにするため

16語のアドレスは4ビットで表せますが、4ビットのポインタだけでは、読み出しと書き込みのアドレスが一致したときに、全部読み終えた空の状態なのか、1周分書いて追いついた満杯の状態なのかを区別できません。5ビット目を周回を表すビットとして加えると、バイナリで比べた場合、5ビットすべてが一致すれば空、最上位ビットだけが違えば満杯と判定できます。グレイコードのポインタでは、満杯の判定の比べ方が少し変わります。パリティとして使うわけではありません。

この分野を解く 分野ページへ

タイミング解析とCDCの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

タイミング解析とCDCのほかの問題

  1. 5ビットのグレイコードのポインタを使う深さ16語の非同期FIFOで、書き込み側で満杯(full)を判定する条件として正しいものはどれか。
  2. 非同期FIFOでは相手のポインタを同期化して使うので、見えるポインタの値が2〜3サイクル古くなる。この遅れがfull/emptyの判定に与える影響として正しいものはどれか。
  3. 書き込み側 100 MHz、読み出し側 80 MHz の非同期FIFOで、書き込み側は100語のバーストを毎サイクル1語ずつ書き込み、読み出し側は毎サイクル1語ずつ読み出す。バーストの間には十分な休みがある。あふれないために必要な最小の深さはいくらか(同期化による遅れは無視する)。
  4. 書き込み側は 200 MHz で毎サイクル1語ずつ、120語のバーストを書き込む。読み出し側は 150 MHz のクロックで、3サイクルのうち2サイクルだけ1語ずつ読み出す。あふれないために必要な最小の深さはいくらか(同期化による遅れは無視する)。
  5. 書き込み側 250 MHz、読み出し側 200 MHz で、どちらも毎サイクル1語ずつ転送する。64語のバーストを受けるFIFOに計算上必要な最小の深さはいくらか(同期化による遅れは無視し、端数は切り上げる)。