cancel
Showing results for 
Search instead for 
Did you mean: 

AXI の基礎 1 - AXI の概要

Xilinx Employee
Xilinx Employee
2 0 510

本ブログは英語版のAXI-Basics Blogを翻訳したものです。

 

概要:

近年、ほぼすべてのザイリンクス IP AXI インターフェイスを使用するようになりました。Zynq®、Zynq MPMicroBlaze™ および新しい Versal™ プロセッサなど、すべてが AXI インターフェイスを使用しています。このため、ザイリンクス デバイスのほぼすべての新規デザインに AXI インターフェイスが組み込まれています。AXI の基礎を理解しておくと、ザイリンクス デバイスでデザインを設計およびデバッグするのに役立ちます。

このブログ記事では、ザイリンクス デバイスでの AXI3/AXI4 の基礎についていくつか説明します。まず、理論および用語から説明します。

 

AXI とは:

AXI は、Advanced eXtensible Interface の略で、AMBA (Advanced Microcontroller Bus Architecture) 規格の一部として ARM により定義されたインターフェイス プロトコルです。

AXI3/AXI4 の仕様は、ARM ウェブサイト (リンク) から自由に入手可能なので、興味がおありの場合はダウンロードしてください。

AXI1.png

AXI4 インターフェイス (AMBA 4.0) には、次の 3 つのタイプがあります。

  • AXI4 (フル AXI4): パフォーマンスに優れたメモリ マップド要件用です。
  • AXI4-Lite: 単純なスループットの少ないメモリ マップド通信用です (たとえば、制御およびステータス レジスタの通信など)
  • AXI4-Stream: 高速のストリーミング データ用です。
    • 注記: AXI4-Stream については、この記事では説明しません。この記事の「AXI」とは、AXI3AXI4、および AXI4-Lite のことを意味します。

注記: AXI3 インターフェイスはフル AXI インターフェイスに近いものです。

AXI の読み出しおよび書き込みチャネル

AXI プロトコルでは、5 つのチャネルが定義されます。

  • 2 つは読み出しトランザクションに使用されます。
    • 読み出しアドレス
    • 読み出しデータ
  • 3 つは書き込みトランザクションに使用されます。
    • 書き込みアドレス
    • 書き込みデータ
    • 書き込み応答

AXI2.png

 

チャネルは、VALID および READY 信号に関連付けられた AXI 信号の独立したコレクションです。

注記: AXI4/AXI3/AXI4-Lite インターフェイスは読み出し専用 (2 つの読み出しチャネルのみを含む) または書き込み専用 (3 つの書き込みチャネルのみを含む) にできます。

1 つの信号チャネルで送信されるデータを転送と呼びます。転送は、VALID および READY 信号の両方が High の場合に、クロックの立ち上がりエッジで発生します。たとえば、次の図の場合、転送は T3 で発生します。

AXI3.png

 

AXI 読み出しトランザクション

AXI 読み出しトランザクションは、2 つの読み出しチャネルで複数の転送を必要とします。

  • まず、アドレス読み出しチャネルがマスターからスレーブに送信されて、アドレスと一部の制御信号が設定されます。
  • このアドレスのデータが読み出しデータチャネルでスレーブからマスターに送信されます。

次の図に示すように、アドレスごとに複数のデータ転送が発生することもあります。このようなトランザクション タイプは、バーストと呼ばれます。

AXI4.jpg

 

AXI 書き込みトランザクション

AXI 書き込みトランザクションは、3 つの読み出しチャネルで複数の転送を必要とします。

  • まず、アドレス書き込みチャネルがマスターからスレーブに送信されて、アドレスと一部の制御信号が設定されます。
  • このアドレスのデータが書き込みデータチャネルでマスターからスレーブに送信されます。
  • 最後に、書き込み応答が書き込み応答チャネルでスレーブからマスターに送信され、転送が問題なかったかどうかが示されます。

 

AXI5.jpg

書き込み応答チャネルの応答値は、次のいずれかになります。

  • OKAY (0b00): 通常アクセスに問題なし。通常アクセスに問題がなかったことを示します。
  • EXOKAY (0b01): 排他的アクセスに問題なし。
  • SLVERR (0b10): スレーブ エラー。スレーブには問題なく到達しましたが、スレーブが送信元のマスターにエラー状況 (たとえば、データ読み出しが有効ではないなど) を戻していることを示します。
  • DECERR (0b11): デコード エラー。通常はインターコネクト コンポーネントにより生成され、トランザクション アドレスにスレーブがないことを示します。

注記: 読み出しトランザクションにも応答値はありますが、この応答は読み出し応答チャネルの一部として送信されます。

AXI4 インターフェイス要件

AXI4 インターフェイスの要件は、AXI4 仕様に記述されています。

中でも次の要件は、必ず覚えておく必要があります。

  • VALID (AxVALID/xVALID) 信号がアサートされる場合、スレーブが AxREADY/xREADY をアサートしてからクロック エッジが立ち上がるまでアサートされたままにしておく必要があります。

  • 情報を送信する AXI インターフェイスの VALID 信号は、その情報を受信する AXI インターフェイスの READY 信号に依存しないようにします。
    • ただし、READY 信号のステートは VALID 信号に依存できます。

  • 書き込み応答は、常に書き込みトランザクションの最後の書き込み転送の後に続く必要があります。

  • 読み出しデータは、常にそのデータの関連するアドレスの後に続く必要があります。

  • スレーブは、有効なデータが使用可能になったことを示す RVALID のがアサートされる前に、ARVALID ARREADY の両方がアサートされるまで待機する必要があります。

 

AXI の基礎シリーズ」の次の記事では、AXI Verification IP (AXI VIP) を使用して AXI4 インターフェイスをシミュレーションします。

Tags (1)