referto: mnl_avalon_spec.pdf
Avalonシステムでは,全ての信号はアクティブ-Highとなっている.postfixが"-n"と表記している信号は,アクティブ-Lowとして参照が可能な信号である.
Signal Type | Width | Dir | Description |
read,read_n | 1 | In | 読み出し要求.アサートされていればreaddataを要求されている. |
write,write_n | 1 | In | 書き込み要求.writedataが有効. |
address | 1-32 | In | 当該I/Fのデータ幅を1としてアドレッシングされる.\'1'であっても,16bit幅なら2byte目,32bit幅なら4byte目相当となる |
readdata | 8*2**N(N=0-7) | Out | slaveからmasterへ出力するデータ信号. |
writedata | 8*2**N(N=0-7) | In | masterからslaveへ出力されるデータ信号. |
byteenable,byteenable_n | 2**N(N=0-7) | In | バイトレーンを指定する.\データ幅が複数バイトのときに,アサートされているビットに対応したバイト値が有効であることを示す. |
begintransfer | 1 | In | waitrequest信号にかかわらず,書く転送の最初のサイクルにアサートされる. |
Signal Type | Width | Dir | Description |
waitrequest,waitrequest_n | 1 | Out | read/write要求に応答できないときに,slaveによってアサートされる.アサートされたとき,slaveへの制御信号(begintransferとbeginbursttransferを除く)は値を維持する.\Avalon-MM slaveは,アイドルサイクルの間,waitrequestをアサートすべきです.\Avalon-MM master mayは,waitrequestがアサートされたときにトランザクションを初期化すべきです.\Avalon-MM slaveのデザインは,この可能性を考慮に入れなければなりません. |
サンプルのチャートをみると,masterからのreadrequest/writerequestがアサートされたときに脊髄反射する必要があるみたい.コンポーネント自身がデータの準備ができていない場合に,デアサートしておいたほうが無難かもしれん.masterが常にwaitrequestを受けていても問題が無いかはわからんけど.
# 参照していないだろうし大丈夫かなぁ
Signal Type | Width | Dir | Description |
readdatavalid,readdatavalid_n | 1 | Out | パイプライン読み出し転送の可変長レイテンシに使われます.readdata信号が,前の読み出し要求に対する応答の有効なデータを含んでいることを示すために,slaveによってアサートされます.\readdatavalidを有するslaveは,要求を受けたそれぞれの読み出しサイクルのために,読み出しの受領とreaddatavalidのアサートの間に,この信号を1サイクル以上のレイテンシだけアサートする必要があります. |
Signal Type | Width | Dir | Description |
burstcount | 1-32 | In | burstの1サイクル目の間,burstcountはバースト転送回数を示します.burstcountのポート幅がNの場合,サイズ2**(N-1)の最大バースト数がエンコードできます.\burstcount信号は全体の転送に一定のままで残っています.(Figureでは1stサイクルだけなんだが) |
beginbursttransfer | 1 | In | burst転送の開始のとき,burstの1サイクル目のためにアサートされます.\この信号はwaitrequestの値に関係なく,1サイクル後にデアサートされます. |
Signal Type | Width | Dir | Description |
readyfordata | 1 | Out | ペリフェラルがwrite転送準備を整えたことを示します. |
dataavailable | 1 | Out | ペリフェラルがread転送準備を整えたことを示します. |
Signal Type | Width | Dir | Description |
resetrequest,resetrequest_n | 1 | Out | ペリフェラルにAvalon-MMシステム全体をリセットすることを許可します.システムリセット信号を生成するために,全てのリセット信号が互いにORされます. |
Name | Def.Value | 有効範囲 | 説明 |
readLatency | 0 | 0-63 | 読み出しレイテンシが固定の場合に使用されるレイテンシの値.\readdatavalid信号が含まれる場合は未使用となる. |
writeWaitTime | 0 | 0-1000 | slaveがwriteを許容するまでのサイクル数を示す.タイミングは,slaveがwaitrequestをwriteWaitTimeサイクルだけアサートしたようになる. |
waitrequest信号が含まれる場合は未使用となる.|
readWaitTime | 1 | 0-1000 | slaveがread応答するまでのサイクル数を示す.タイミングは,slaveがwaitrequestをreadWaitTimeサイクルだけアサートしたようになる. |
maximumPendingRead Transactions | 1 | 1-64 | slaveによってqueueに入れることができる最大のread要求数. |
burstOnBurstBoundariesOnly | false | true/false | もしtrueにするならば,このインタフェースで提供されるburst転送が,burstサイズの倍数となるアドレスから始まることが保障される.\(使い手が保障するのか?よくわからん) |
linewrapBursts | false | true/false | tureの場合,slaveがインクリメンタルバーストに変えて,line wrapping burstを実装していることを示します.\wrapping burstについて,アドレスがburst境界に達したときに,下位のビットだけが,アドレシングに使用される必要があるように,以前のburst境界にラップバックします.\Ex.) burst境界が32byteで32bit幅のインタフェースがアドレス0x0Cにアクセスするwrapping burstは,次の順にアクセスを行う.(burst sizeより大きいビットは変化しないことに注意)\0xC, 0x10, 0x14, 0x18, 0x1C, 0x00, 0x04, 0x08 |
maxBurstSize | 1 | 64 | slaveが許容する最大burstサイズ |
bridgesToMaster | null | 同じコンポーネントのAvalon-MM master | slaveとmasterから構成され,特定のbyteまたはbytesを要求するslaveへのアクセスで,masterは同じbyteまたはbytesを要求するような特徴を持つAvalon-MMブリッヂ. |
associatedClock | - | - | このslave I/Fが同期化するクロックインタフェース名. |
英語力の弱い人が適当に訳して抜粋,補強しています.
あやしいな,と思ったらご指摘いただけますと幸いです.
なお,オリジナルの英文を参照されることを強く推奨いたします.