高速シリアル通信プロトコルSerialLite ――オープン・ソースでコンパクトなプロトコル

Sanjay Rajput, Karl Lu, Bryon Moyer

tag: 組み込み 半導体

技術解説 2004年5月19日

● バッファ

 Atlanticインターフェースの信号を生成するためには,バッファの設計についての詳細が必要です.バッファへの新しい画像データの書き込みと,リンクを流れるパケットの動きは同期しません.同一クロックで動作している場合,シングル・バッファでは,新しい画像が書き込まれている間,その画像をそのまま読み出すことになります.これを避けるため,メモリ・ブロックを二つに分けて使用します.一方の領域を書き込み用,もう一方の領域を読み出し用にします.いったん片方に書き込まれると,二つの領域を入れ替え,次の画像の読み出しと書き込みを行います.入れ替えのために1サイクルの遅れがでますが,両方のメモリが同時に読み出されることはありません.さらに読み出し中に新たなデータが書き込まれることもありません.もしデータの読み出しが進んでいる場合は,書き込みを遅らせなければなりません.このため,読み出しや書き込みが可能であることを示すReady信号が必要になります.このしくみを示すブロック図を図9に,ステート・マシンを図10に示します.

 この構成は,表示ボード側でも使うことができます.実際には,リフレッシュが完了するのを待つよりもむしろ強制リフレッシュを考慮したほうがよいでしょう.もしそのように設計変更した場合は,四つのリンクから二つのリンクに減らすことができるかもしれません.これはレーン・ボンディング可能なシリアル・プロトコルであるSerialLiteの長所の一つです.設計フェーズにおいて拡張性があり,リンクを追加したり減らしたりすることができます.以下は4レーンの場合について説明します.

f09_01.gif
図9 バッファのブロック図

f10_01.gif
図10 バッファ制御のステート・マシン

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日