AXIの概要
AXIプロトコルを学習する意味について説明します。
FPGAの設計にAXIは必ず必要なものではありません。FPGAは単純なIO接続で設計が可能です。例えば、GPIOを使用してFPGAに接続できますが、本当に単純なFPGA設計のみでしか利用できません。
より複雑なアプリケーションを実装したい場合は、高い帯域幅と柔軟性をサポートするバスプロトコルを使用する必要があります。このためにAXIバスが利用できます。
AXIバスは、様々なベンダーのIPブロックに実装されており、 明確に定義されたプロトコルです。そのため、独自で設計したブロックをこのプロトコルに準拠して作成することで、組み合わせて使用することができます。
FPGA内でプロセッサを使用する場合は、そのコアをFPGAロジックはAXIプロトコルで接続されている可能性が高いです。そのため、AXIプロトコルで設計したブロックはベンダー間での移植も可能となります。
FPGAベンダーから入手できるプロトコルチェッカを利用して、カスタムRTLがAXI4に準拠しているかどうかを確認することもできます。
AXI(Advanced eXtensible Interface)は、主にシステム・オン・チップ(SoC)設計で使用される高性能な通信インタフェースです。
AXIの仕様
AXI4には、以下の3つの種類があります。
- AXI4 Stream
- AXI4 Lite
- AXI4
これらの特徴と使い分けについて説明します。
AXI Stream
AXI4 Streamはその名の通り、ストリームデータ(連続したデータ)を扱います。高帯域幅での伝送を行いたい場合に利用します。アドレス指定がなく、データとデータに関する情報のみを送信することが特徴です。
例えば、A/DコンバータからのAD値や、ビデオデータ、音声データなど連続したデータの伝送を行う場合に適しています。
AXI4 Streamは3つあるプロトコルの中で最も単純で実装が簡単です。
アドレスが必要な場合は、AXI4 Lite, AXI4を使用する必要があります。
メモリプロセッサとレジスタ間のデータ転送で使用される、一般的なデータバスです。
AXI4 Lite
AXI4 との違いはLiteでは、トランザクションごとに単一のデータワード転送のみ許可されるのに対し、AXI4プロトコルではトランザクションごとにバースト転送が可能で、最大255ワードのバースト転送が許可されます。
単純なアドレス操作- データの読み書き
単一のデータ転送のみが必要な場合は、AXI Liteのほうがより単純で適しています。
AXI4
AXI4バスは、実際には5種類の独立したデータバスの集まりであり、高帯域のスループットを可能とします。双方向の単一のデータおよびバーストデータ転送が可能です。
実装の難しさ
AXI4 Stream -> AXI4 Lite -> AXI4
最も簡単なのはAXI4 Streamdえ、単一のマスタ・スレーブ構成で、マスターがデータを送信、スレーブがデータを受信するという、単純な実装が一番簡単です。
まとめ
本記事は、AXIバスの基礎として、それぞれのバスの基本的な特徴をまとめました。
コメント