インテルのみ表示可能 — GUID: nik1412467948258
Ixiasoft
3.2. Avalon® Memory Mappedインターフェイス信号の役割
この仕様では、すべての信号が Avalon® メモリー・マップド・インターフェイスに存在することを必要としていません。かならず必要な信号は1つもありません。 Avalon® メモリー・マップド・インターフェイスには、読み出し専用インターフェイスの場合はreaddata、書き込み専用インターフェイスの場合はwritedataおよびwriteが少なくとも必要です。
次の表に、 Avalon® メモリー・マップド・インターフェイスの信号の役割を記載しています。
信号の役割 | 幅 | 方向 | 必須 | 説明 |
---|---|---|---|---|
基本的な信号 | ||||
address | 1から64 | マスター → スレーブ | いいえ | マスター: デフォルトで、address信号はバイトアドレスを表します。アドレスの値は、データ幅に合わせる必要があります。データワード内の特定のバイトに書き込みを行う場合、マスターでbyteenable信号を使用する必要があります。ワードのアドレス指定に関しては、addressUnitsインターフェイスのプロパティーを参照してください。 スレーブ: デフォルトで、インターコネクトは、バイトアドレスをスレーブのアドレススペースのワードアドレスに変換します。スレーブの観点において、各スレーブアクセスはデータのワードに対するものです。 例えば、address = 0ではスレーブの最初のワードが選択されます。address = 1では、スレーブの2番目のワードが選択されます。バイトのアドレス指定に関しては、addressUnitsインターフェイスのプロパティーを参照してください。 |
byteenable byteenable_n |
2、4、8、16、32、64、128 | マスター → スレーブ | いいえ | 幅が8ビットを超えるインターフェイスでの転送時に1つ以上の特定のバイトレーンを有効にします。byteenableの各ビットは、writedataおよびreaddataのバイトに対応します。byteenableのマスタービット <n> は、バイト <n> が書き込まれているかを示します。書き込み時に、byteenableは書き込まれているバイトを指定します。他のバイトはスレーブで無視されます。読み出し時に、byteenableはマスターが読み出しているバイトを示します。副作用がなく単にreaddataを返すスレーブでは、読み出し時にbyteenableを無視することができます。インターフェイスにbyteenable信号がない場合、転送は、すべてのbyteenableがアサートされているように進行します。 複数のbyteenable信号がアサートされている場合、アサートされているレーンはすべて隣接しています。 |
debugaccess | 1 | マスター → スレーブ | いいえ | アサートされると、 Nios® IIプロセッサーはROMとしてコンフィグレーションされているオンチップメモリーに書き込むことができます。 |
read read_n |
1 | マスター → スレーブ | いいえ | アサートされている場合は、read転送を示しています。提供されている場合は、readdataが必要です。 |
readdata | 8、16、32、64、128、256、512、1024 | スレーブ → マスター | いいえ | read転送に応答してスレーブからマスターに駆動されるreaddataです。読み出しをサポートするインターフェイスに必要です。 |
response [1:0] | 2 | スレーブ → マスター | いいえ | response信号は、応答ステータスを伝達するオプションの信号です。
注: 信号は共有されているため、インターフェイスでは書き込み応答と読み出し応答を同じクロックサイクルで発行または受け入れることができません。
読み出し応答の場合
書き込み応答の場合
|
write write_n |
1 | マスター → スレーブ | いいえ | アサートされている際は、write転送を示します。提供されている場合は、writedataが必要です。 |
writedata | 8、16、32、64、128、256、512、1024 | マスター → スレーブ | いいえ | 書き込み転送のデータです。幅は、readdataの幅と同じにする必要があります (両方が存在する場合)。書き込みをサポートするインターフェイスに必要です。 |
待機状態の信号 | ||||
lock | 1 | マスター → スレーブ | いいえ | lockにより、マスターが調停に勝つと、そのマスターがスレーブへのアクセスを複数のトランザクションにわたって維持することが保証されます。Lockのアサートは、ロックされるトランザクション・シーケンスの最初のreadまたはwriteと一致します。lockは、ロックされているトランザクション・シーケンスの最後のトランザクションでデアサートされます。lockのアサートは、調停に勝つことを保証するものではありません。ロックをアサートしているマスターに権利が付与されると、そのマスターは、lockがデアサートされるまでその権利を保有します。 lockを保有するマスターをバーストマスターにすることはできません。ロックを保有するマスターの調停優先度の値は無視されます。 lockは、リードモディファイライト (RMW) 操作に特に便利です。標準的なリードモディファイライト操作には、次の手順が含まれます。
lockを使用することで、マスターAの読み出しと書き込みの間にマスターBが書き込みを行うことを防ぎます。 |
waitrequest waitrequest_n |
1 | スレーブ → マスター | いいえ | スレーブは、readまたはwrite要求に応答することができない場合にwaitrequestをアサートします。これにより、インターコネクトで転送を続行する準備ができるまで、マスターを強制的に待機させます。転送が開始される際はかならず、マスターで転送を開始し、waitrequestがデアサートされるまで待機します。マスターでは、アイドル状態の際に、waitrequestのアサート状態を想定してはいけません。waitrequestは、システムのプロパティーに応じてHighの場合とLowの場合があります。 waitrequestがアサートされている際に、スレーブへのマスター制御信号は一定に保たれている必要があります (beginbursttransferを除く)。beginbursttransfer信号を表すタイミング図に関しては、読み出しバーストを参照してください。 Avalon® のメモリー・マッピングされたスレーブでは、アイドルサイクル時にwaitrequestをアサートすることが可能です。 Avalon® のメモリー・マッピングされたマスターでは、waitrequestがアサートされている際にトランザクションを開始し、その信号がデアサートされるまで待機することが可能です。システムのロックアップを回避するため、スレーブデバイスではリセット時にwaitrequestをアサートする必要があります。 |
パイプライン信号 | ||||
readdatavalid readdatavalid_n |
1 | スレーブ → マスター | いいえ | 可変レイテンシーのパイプライン化されたread転送に使用されます。アサートされている際は、readdata信号に有効なデータが含まれていることを示します。バーストカウント値が <n> の読み出しバーストでは、readdatavalid信号が <n> 回アサートされる必要があります (各readdataアイテムに1回)。readの受け入れとreaddatavalidのアサート間には、少なくとも1サイクルのレイテンシーがあります。readdatavalid信号を表すタイミング図に関しては、可変レイテンシーでのパイプライン読み出し転送を参照してください。 スレーブでは、 スレーブが新しいコマンドをwaitrequestでストールしているかいないかにかかわらず、readdatavalidをアサートしてマスターにデータを転送することができます。 マスターがパイプライン読み出しをサポートしている場合に必要です。読み出し機能を備えるバーストマスターには、readdatavalid信号を含める必要があります。 |
writeresponsevalid | 1 | スレーブ → マスター | いいえ | オプションの信号です。提供されている場合、インターフェイスは書き込みコマンドに対する書き込み応答を発行します。 アサートされている場合は、応答信号の値は有効な書き込み応答です。 Writeresponsevalidは、書き込みコマンドが受け入れられてから1クロックサイクル以上が経過してからにのみアサートされます。コマンドの受け入れからwriteresponsevalidのアサートまでには、少なくとも1クロックサイクルの遅延があります。書き込みコマンドは、バーストの最後のビートがスレーブに発行され、waitrequestがLowの場合に受け入れられたとみなされます。writeresponsevalidは、バーストの最後のビートが発行された後1クロックサイクル以上が経過してからアサートすることができます。 |
バースト信号 | ||||
burstcount | 1から11 | マスター → スレーブ | いいえ | バーストマスターで使用され、各バースト内の転送数を示すものです。burstcountパラメーターの最大値は、2の累乗にする必要があります。幅が <n> のバーストカウント・インターフェイスでは、最大2(<n>-1) のサイズのバーストをエンコードすることができます。例えば、4ビットのburstcount信号では、最大8のバーストカウントをサポートすることができます。最小のburstcountは1です。constantBurstBehaviorプロパティーは、burstcount信号のタイミングを制御します。読み出し機能を備えるバーストマスターには、readdatavalid信号を含める必要があります。 バイトアドレスを使用するバーストマスターとスレーブの場合、アドレスの幅には次の制約が適用されます。 <address_w> >= <burstcount_w> + log2(<symbols_per_word_of_interface>) ワードアドレスを使用するバーストマスターとスレーブの場合は、上の式からlog2 項が省略されます。 |
beginbursttransfer | 1 | インターコネクト → スレーブ | いいえ | バーストの最初のサイクルでアサートされ、バースト転送が開始されることを示します。この信号は、waitrequestの値にかかわらず、1サイクル後にデアサートされます。beginbursttransferを表すタイミング図に関しては、読み出しバースト内の図を参照してください。 beginbursttransferはオプションです。スレーブでは、データ転送をカウントすることにより、常に内部で次の書き込みバースト・トランザクションの開始を計算することができます。
警告: この信号は使用しないでください。この信号は、レガシー・メモリー・コントローラーをサポートするために存在します。
|