Wishboneで使われる信号をまとめました。一次資料はここからダウンロードできます。
http://opencores.org/opencores,wishbone
現在の最新版は、 Revision B4 です。翻訳じゃないので、実際に使うときは規格書読んでください。
SYSCON Module が使う信号
SYSCON Module はシステム全体を制御するモジュールです。クロックとリセットを出力します。
信号名 |
説明 |
CLK_O |
SYSCONモジュールが出力するシステムクロック。MASTERとSLAVEの[CLK_I]に接続される。 |
RST_O |
SYSCONモジュールが出力するリセット信号。正論理で全ての WISHBONE インターフェイスをリセットする。MASTERとSLAVEの[RST_I]に接続される。 |
MASTER と SLAVE で共通の信号
信号名についている()は、バス信号の意味です。
信号 |
説明 |
|
CLK_I |
WISHBONE のシステムクロック。全ての WISHBONE 出力は[CLK_I]の立ち上がりでレジスタ出力される。全ての WISHBONE 入力は[CLK_I]が立ち上がる前には安定している。(入力信号は、[CLK_I]の立ち上がりでサンプリングできる) |
DAT_I() |
データ入力バス。データの幅はport sizeによって決定され、64bit幅([DAT_I(63..0)])が最大。[DAT_O()]と[SEL_O()]も参照の事 |
DAT_O() |
データ出力バス。データの幅はport sizeによって決定され、64bit幅([DAT_O(63..0)])が最大。[DAT_I()]と[SEL_O()]も参照の事 |
RST_I |
リセット入力。 WISHBONE インターフェイスを再起動し、内部のステートマシーンを初期化する。 |
TGD_I() |
データタグタイプ。MASTER / SLAVE インターフェイスで使用する。データ入力[DAT_I()]に対応した情報を含んでおり、[STB_I]信号がアサートされている時有効。タグビットは、タイミングが仕様によって定義済みなので、簡単に新しい信号を定義出来る。 |
TGD_O() |
データタグタイプ。TGD_I() の出力側 |
MASTER 用の信号
信号 |
説明 |
|
ACK_I |
アクノリッジ入力。アサートされた時、バスサイクルの正常終了を示す。[ERR_I] と [RTY_I]も参照の事。 |
ADR_O() |
アドレス出力。上位側の境界はコアのアドレス幅で決まり、下位側の境界はデータのport sizeで決まる。FIFOのようなインターフェイスの場合アドレスは出力されない。 |
CYC_O |
サイクルアウトプット。アサートされたとき、有効なバスサイクルが実行中であることを示す。例えば、複数のデータ転送を行うブロック転送時、最初のデータ転送の時に[CYC_O]をアサートし、最後のデータ先頭までアサートし続ける。 |
STALL_I |
パイプラインストール入力。[STALL_I]がアサートされている時、SLAVE側が転送を受け入れられないことを示す。この信号はパイプラインモードで使用する。 |
ERR_I |
エラー入力。異常なサイクルの終了を示す。エラーの原因とMASTERが生成するレスポンスは、IPコアの供給者が定義する。[ACK_I] と [RTY_I]も参照の事 |
LOCK_O |
ロック出力。アサートされた時、今のバスサイクルは割り込みできない(uninterruptible)事を示す。ロックはバスの完全な所有権を要求するためにアサートする。一度転送が始まると、今のMASTERが[LOCK_O]か[CYC_O]をネゲートするまで、MASTERとSLAVEを接続しているINTERCONモジュールは他のMASTERにバスを使用させない。 |
|
RTY_I |
リトライ入力。インターフェイスが、データを送受信する準備ができず、そのサイクルをリトライする必要があることを示す。いつ、どのようにリトライするかは、IPコアの供給者が定義する。[ERR_I]と[RTY_I]信号も参照の事。 |
SEL_O() |
セレクト出力。リードサイクル時に[DAT_I()]上の有効なデータの場所を示し、ライトサイクル時には有効な[DAT_O()]の場所を示す。配列の境界はgranularity of a portで決まる。Granularity of a portが8bitの時、バイトイネーブルになる。 詳細は仕様書の3章に記述。[DAT_I()] [DAT_O()] [STB_O]も参照の事。 |
STB_O |
ストローブ出力。有効なデータ転送サイクルを表す。この信号は、[SEL_O()]のようなインターフェイス上の他の信号を有効にするために使用される。SLAVEは、[STB_O] のアサートに対して[ACK_I]、[ERR_I]、 [RTY_I]のどれかをアサートしないといけない。 |
TGA_O() |
アドレスタグタイプ。アドレス線[ADR_O()]に対応した情報を含んでおり、[STB_O]がアサートされている時に有効になる。例えば、アドレスのサイズやメモリ管理の情報(protected vs. unprotected)をアドレスに追加することができる。 |
TGC_O() |
サイクルタグタイプ。バスサイクルに対応した情報を含み、[CYC_O]がアサートされているときに有効になる。例えば、データ転送、割り込みアクノリッジ、キャッシュコントロールサイクルは、サイクルタグで識別できる。また、WISHBONEのシングル、ブロック、RMWサイクル間の区別をするのにも使われる。 |
WE_O |
ライトイネーブル出力。現在のバスサイクルが、READサイクルかWRITEサイクルかを示す。ネゲートされた時はREADサイクル、アサートされた時はWRITEサイクルを表す。 |
SLAVE 用の信号
信号 |
説明 |
|
ACK_O |
アクノリッジ出力。アサートされたとき、バスサイクルが正常終了したことを示す。[ERR_O]、[RTY_O]も参照の事。 |
ADR_I() |
アドレス入力。上位側の境界はコアのアドレス幅で決まり、下位側の境界はデータのport sizeで決まる。FIFOのようなインターフェイスの場合アドレスは出力されない。 |
CYC_I |
サイクル入力。アサートされているとき、有効なバスサイクルが実行中であることを示す。[CYC_O]の入力側。 |
STALL_O |
パイプラインストール出力。SLAVEがデータ転送を受け入れられないことを示す。パイプラインモードで使用する。 |
ERR_O |
エラー出力。異常なサイクルの終了を示す。エラーのソースと、MASTERによるレスポンスは、IPコアの供給者が決める。[ACK_O]、[RTY_O]も参照の事。 |
LOCK_I |
ロック入力。アサートされたとき、今のバスサイクルは割り込みできない(uninterruptible)事を示す。[LOCK_I]信号のロックを受信するSLAVEは、[LOCK_I][CYC_I]がネゲートされるまで、一つのMASTERからのみアクセスされる。 |
RTY_O |
リトライ出力。インターフェイスが、データを送受信する準備ができず、そのサイクルをリトライする必要があることを示す。いつ、どのようにリトライするかは、IPコアの供給者が定義する。[ERR_I]と[RTY_I]信号も参照の事。 |
SEL_I() |
セレクト入力。[SEL_O()]の入力側 |
STB_I |
ストローブ入力。アサートされているとき、そのSLAVEが選択されている事を示す。SLAVEは、この[STB_I]がアサートされている時のみ他のWISHBONEの信号に反応するべきである。ただし、[RST_I]には常に反応した方がよい。SLAVEは[STB_I]がアサートされているときは、[ACK_O]、[ERR_O]、[RTY_O]のどれかをアサートする。 |
TGA_I() |
アドレスデータタグ。[TGA_O]の入力側 |
TGC_I() |
サイクルタグタイプ。[TGC_O()]の入力側 |
WE_I |
ライトイネーブル入力。ネゲートされているときREADサイクルを示し、アサートされているときはWRITEサイクルを示す。 |
Wihhboneに接続するためのミニマムな信号(Rule3.40)
2013/02/27追加
MASTERに必ず必要な信号線
- [ACK_I]
- [CLK_I]
- [CYC_O]
- [RST_I]
- [STB_O]
SLAVEに必ず必要な信号線
- [ACK_O]
- [CLK_I]
- [CYC_I]
- [STB_I]
- [RST_I]