補足 - ハンドシェイクによるステージ間の転送

[] [] []


シングルバッファをはさんだパイプラインの例と動作は同じであるが、ステージ間をハンドシェイクで転送することを考える。すなわち、転送元からリクエスト信号(req)、転送先からアクノリッジ信号(ack)を出して、双方がそろった時だけ転送するようにする。

k番目のステージの動作は次のようになる。

(1) 初期状態では後段も自ステージも受付可能(acki=1, acko=1)

(2) 前段からリクエスト(reqi=1)が来たらデータを入力レジスタにロード(load = reqi & acko)して受付不可(acko=0)にする。

  もしackoに対してセットとクリアが同時に来たらセット優先にする。そうしないと入力データをロード(load=1)できないので。

(3) nLATクロック後に完了(done=1)したら、後段へリクエスト(reqo=1)を出す。

(4) 後段から受付可能が来たら(acki=1)、リクエストをクリアして(reqo=0)、前段に対して受付可能(acko=1)にする。

  もしreqoに対してセットとクリアが同時に来たらセット優先にする。そうしないと後段がロード(load=1)できないので。


[] [] []