双方向ハンドシェークを用いたデータ入出力


ソース中のハンドシェークの動作を説明する。

ここでの動作はFPGAから見たものとし、 ACKをOBFに同期させた状態で考える。 FPGAから操作できる信号はACK、STBである。 以下にタイミング図を示す。

○ データの入力

PCからデータが入力されるとWRがLになる。

しばらくするとWRが再びHになり、ここでOBFがLになる。
これにより入力データを有効と判断する。

これに同期してACKはLになる。

ACKがLになるとしばらくしてOBFはHになり これに同期してACKはHになる。 データはこのACKの立ち上がりで取り込まれる。

○ データの出力

STB信号をLにするとIBFがHになり、 データを出力したことを知らせる。

IBFがHになったらSTBをHに戻し、PCに読み込ませる状態にする。

PCが読み込みを行なうとRDがLになり、この間に読み込みを行なう。
しばらくしてRDがHになり、これによりIBFがLになりデータを読み込んだことを知らせる。

データの入力

データの出力