Wishboneは、IPコア間の共通のI/Fとして開発された規格です。Opencoreにある気合いの入ったライブラリはWishboneをサポートしているので少しまとめて見ました。一次資料はここからダウンロードできます。
http://opencores.org/opencores,wishbone
現在の最新版は、Revision B4です。
Wishbone の機能
1.1 WISHBONE Features から、アーキテクチャに関わるところを抜き出しました。「モジュール化された」は、カスタマイズ可能の意味です。
- Read/Writeサイクル、ブロック転送サイクル、Read-Modify-Write サイクルをサポート
- ビッグエンディアン、リトルエンディアンをサポート
- 64bitまでのモジュール化されたデータ幅とオペランド
- モジュール化されたアドレス幅
- BIG ENDIAN と LITTLE ENDIAN の両方をサポート
- Point to Point, shared bus, crossbar switch, switched fabric interconnection の接続をサポート
- それぞれのIPコアが全速力でデータを転送するためのHandshaking
- 単一クロックのデータ転送
- normal cycle termination, retry termination and termination due to error をサポート
- SLAVEに対しては部分的なアドレスデコードをサポート。
- ユーザー定義のタグ。アドレスバス、データバス、バスサイクルに情報を割り当てるのに役に立ちます。特に、データ転送、パリティ、エラー訂正ビット、割り込みベクター、キャッシュコントロール命令などの、バスサイクルを識別する助けになります。
- MASTER / SLAVE アーキテクチャ
- マルチプロセッシング(マルチMASTER)が可能
- アービトレーションはユーザーが定義する
- 同期デザイン