AMBA APB
AMBA APBはARMのバスプロトコルの一つです。
APB protoclの詳細は以下からもダウンロードできます。
Documentation – Arm Developer
信号
表の青色の信号は必須、緑色の信号はオプション(なくてもいい)です。
| Signal | source | Width | Description |
| PCLK | clock | 1 | クロック |
| PRESETn | reset | 1 | リセット |
| PADDR | Requester | ADDR_WIDTH | アドレス |
| PPROT | Requester | 3 | Protection Typeの設定 デフォルト値は3’b000 |
| PSELx | Requester | 1 | Completerとアクセスを開始時に1を出力 |
| PENABLE | Requester | 1 | PSELx=1後、2サイクル目に1を出力 |
| PWRITE | Requester | 1 | PSELxと同じタイミングで1 or 0を出力 |
| PWDATA | Requester | DATA_WIDTH | ライトデータ。データフェーズでPREADY=1まで出力 |
| PSTRB | Requester | DATA_WIDTH/8 | データの有効ビットを指定 |
| PREADY | Completer | 1 | データ転送の準備が完了していれば1を出力 |
| PRDATA | Completer | DATA_WIDTH | リードデータ |
| PSLVERR | Completer | 1 | エラーであることを提示 |
| PWAKEUP | Requester | 1 | 通信不要時は0(sleep) |
| PAUSER | Requester | USER_REQ_WIDTH | ユーザー指定で利用する信号 |
| PWUSER | Requester | USER_DATA_WIDTH | ユーザー指定で利用する信号 |
| PRUSER | Completer | USER_DATA_WIDTH | ユーザー指定で利用する信号 |
| PBUSER | Completer | USER_RESP_WIDTH | ユーザー指定で利用する信号 |

WRITE
write動作時の波形は以下のようになります。
Requester(マスター側)はPADDR、PWRITE、PSELを1stサイクルで設定し、2ndサイクルでPENABLEを1に設定します。
Completer(スレーブ側)は、T2でPSEL=1を受け、PREADY=1を返します。
RequesterはT3でReady=1を受け、データ転送完了できたので、PSEL=0にし終了します。

T3でPSEL=1を認識しても受信側で準備が完了していない場合はPREADY=0となります。
PWRITE、PSEL、PWDATAを保持し続け、PREADY=1を受け、完了します。

READ
readもwrite同様、Requester(マスター側)はPADDR、PWRITE、PSELを1stサイクルで設定し、2ndサイクルでPENABLEを1に設定します。
Completer(スレーブ側)は、T2でPSEL=1を受け、PREADY=1とPREADを返します。
RequesterはT3でReady=1とPRDATAを受け取り、データ転送完了できたので、PSEL=0にし終了します。

wait時間がある場合はwrite同様READY=1を待って終了します。

IHI0024D_amba_apb_protocol_spec.pdfを参照

コメント