メモリ(SRAM)操作のテクニック
SRAMにカメラからの画像を書き込みつつ、ディスプレイ表示用の画像を読みだす場合。
両方ともピクセルクロックは25MHzでSRAMの応答が10ns(W/R)
すると50MHzで1クロック以内に処理が可能だからメモリは50MHzで動作可能。
時系列でみると
50MHz - WRWRWRWR....
※W:書き込みデータ
※R:読み出しデータ
というタイミングでデータを読み書きしなければカメラ画像を書き込みつつディスプレイ画像を読みだすことができない。
しかし、WriteSignal(OE、WE)の変更が多くなりタイミングが複雑になる。
そこでFIFOを入れる。
Camera --> FIFO --> Memory
Disp. <-- FIFO <-- Memory
カメラからの入力データとディスプレイへの出力データは25MHzでFIFOからもれなく処理していく。
しかし、実際のメモリへのアクセスは1ラインで2分割し
|------R------|------W------| 1Line
とすれば、最大1/2ラインの遅れでWriteSignalの切り替え回数を大幅に減らすことができる。
切り替え回数が少なければハザードも起こりにくい。
ちなみにWriteSignalは50MHzをさらに逓倍した100MHzで生成すれば同期をとりつつ細かい時間遅延を再現できる。