ハンドシェイクとは
はんどしぇいく
送り側の要求(req)と受け側の応答(ack)をやり取りして、データを確実に受け渡す方式。クロックドメインの間ではreqとackだけを同期化し、その間データを止めておくので安全だが、1回の転送に数サイクル以上かかる。
「ハンドシェイク」は、3分野の7問の練習問題に出てきます(タイミング解析とCDC, インターフェース・バス規格, 論理回路など)。
この用語の分野: タイミング解析とCDC
はんどしぇいく
送り側の要求(req)と受け側の応答(ack)をやり取りして、データを確実に受け渡す方式。クロックドメインの間ではreqとackだけを同期化し、その間データを止めておくので安全だが、1回の転送に数サイクル以上かかる。
「ハンドシェイク」は、3分野の7問の練習問題に出てきます(タイミング解析とCDC, インターフェース・バス規格, 論理回路など)。
この用語の分野: タイミング解析とCDC
正解:C. データを確定させてreqを1にする → 受け側がデータを取り込みackを1にする → reqを0にする → ackを0にする
4相ハンドシェイクでは、reqとackがそれぞれ1回ずつ上がって下がり、合計4回の変化で1回の受け渡しが終わります。送り側はデータを確定させてからreqを上げ、受け側は同期化したreqを見てデータを取り込み、ackを上げます。送り側は同期化したackを見てreqを下げ、受け側はreqが下がったのを見てackを下げます。reqとackは1ビットなので2段同期化回路で安全に渡せます。データを変えながらreqを上げると、受け側が変化中の値を取り込むおそれがあります。
4相ハンドシェイクでは、reqとackがそれぞれ1回ずつ上がって下がり、合計4回の変化で1回の受け渡しが終わります。
reqとackを使う4相ハンドシェイクで、データを1つ渡すときの信号の順序として正しいものはどれか。4相ハンドシェイクでは、reqが受け側に伝わるまでに同期化の2サイクル、ackが送り側に戻るまでに2サイクルかかり、それぞれが0に戻る分も同じだけかかるので、1回の転送に両方のドメインで合わせて8サイクル以上かかります。
ハンドシェイクによるクロックドメイン間のデータ転送の欠点として正しいものはどれか。多ビットのデータはFIFOやハンドシェイクで受け渡します。
非同期の信号をフリップフロップで受けたときに、セットアップ時間やホールド時間を満たせず、出力が一時的に0とも1とも定ま…カウンタの値ならグレイコードに変換して1ビットだけが変わるようにし、任意のデータならハンドシェイクや非同期FIFOを使います。
4ビットのデータの各ビットに、それぞれ2段の同期化回路を付けて別のクロックドメインに渡した。データが 0111 から …速いドメインから遅いドメインへパルスを渡すときは、パルスを受け側の周期より十分長く引き伸ばすか、トグル同期やハンドシェイクを使います。
500 MHz のクロックドメインで1サイクル(2 ns)だけ1になるパルスを、100 MHz のドメインに2段同期化…Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。
同期化回路 クロックドメイン 非同期FIFO メタステーブル トグル同期 AXI フリップフロップ セットアップ時間 ホールド時間 MTBF(平均故障間隔)