SOPC Builder のシステム・インタコネクト・ファブリック(Avalon® スイッチ・ファブリック)は、アルテラの内部接続テクノロジです。Avalon スイッチ・ファブリックはQuartus II ソフトウェアに搭載されており、以下の機能を提供します。
- SOPC Builder を使用した自動生成
- 同時処理マルチ・マスタ
- ビルトイン・アドレス・デコーディング
- ペリフェラル・インタフェースのネイティブまたはダイナミック・サイジング
- ぺリフェラル転送サポート
- レイテンシ付きリードおよびライト転送
- クロック・ドメイン・クロス回路
Avalon インタフェース仕様
Avalon インタフェースは以下のようなペリフェラル・インタフェースを提供します。
SOPC Builder を使用したスイッチ・ファブリック自動生成
SOPCBuilderを用いて、設計者はペリフェラルの追加、マスタ/スレーブの指定、メモリ・マップの定義などを行い、入力およびペリフェラルの要件に基づくシステム・インタコネクト・ファブリックを自動的に生成することができます。
SOPC Builder は、システム・インタコネクト・ファブリックに加えて、コンポーネントに依存するアドレスおよびレジスタ宣言の情報などを含むソフトウェア用のヘッダ・ファイルを生成します。ユーザがシステムを生成するたびに、SOPC Builder ではこれらのヘッダ・ファイルを更新して、ハードウェアとソフトウェア間のイメージの整合性を保証します。図1に、SOPC Builder でのシステム・インタコネクト・ファブリックの例を紹介します。
図1. SOPC Builder ユーザ・インタフェースにおけるシステム・インタコネクト・ファブリック
同時処理マルチ・マスタ
アプリケーション固有の帯域幅の要求に合わせてカスタマイズされたシステム・アーキテクチャを作成することができ、システム・データ・フローの最適化を可能にします。システム・インタコネクト・ファブリックは、スレーブ側のアービトレーション技術により、同時処理マルチ・マスタ動作を可能にして最高のシステム性能を達成します。複数のマスタが同時にスレーブへのアクセスを試みた場合、スレーブ側のアービタが該当するスレーブにアクセスするマスタを決定します。
システム・インタコネクト・ファブリックは、すべてのバス・マスタに対して同時転送をサポートし、マスタ間で共有されるペリフェラルやメモリ・インタフェースに対するアービトレーションを自動的に追加します。また、DMA (Direct Memory Access) ペリフェラルを任意のスレーブ・ペリフェラルと併用することでバス・マスタリング機能を実現することも可能です。
ビルトイン・アドレス・デコーディング
システム・インタコネクト・ファブリックには、すべてのペリフェラル(ユーザ定義ペリフェラルも含む)に対するチップ・セレクト信号が含まれているため、エンベデッド・システムのデザインの大幅な簡略化が可能です。個別の専用アドレス・パスおよびデータ・パスにより、オン・チップ・ユーザ・ロジックへのインタフェースがきわめて簡単になります。データおよびアドレス・バス・サイクルのデコードに対して、ユーザ定義ペリフェラルは必要ありません。
ペリフェラル・インタフェースに対するネイティブまたはダイナミック・サイジングの実行
ダイナミック・バス・サイジングにより、CPU の本来のバス・サイズと一致しない、バス幅の小さい低コストのメモリ・デバイス等を使用できます。たとえば、32 ビット・データ・パスで構成されたシステムに、容易に 8 ビット・フラッシュ・メモリ・デバイスを統合できます。このようなシステムでは、ダイナミック・バス・サイジング・ロジックが、必要に応じて自動的に複数のバス・サイクルを実行して、幅の狭いペリフェラルから幅の広いデータ値を取り出します。SOPC Builder がサイズ変更とアライメントの実行に必要な専用ロジックを自動的に追加します。
ペリフェラル転送サポート
システム・インタコネクト・ファブリックは、Avalon インタフェースでサポートされる各種の転送をサポートします。スイッチへの各ペリフェラル・ポートは、ペリフェラル要件に合う最適なロジックで生成されます。これには、ウェイト・ステート・ロジック、データ幅のマッチング、さらにウェイト信号の受け渡しも含まれます。
レイテンシ付きリードおよびライト転送
システム・インタコネクト・ファブリックはレイテンシ付きリード・ライト動作を実行できます。レイテンシ付き転送は、スレーブが最初の転送に複数のサイクルを必要であり、そのサイクル数が後続の転送に必要なサイクル数よりも少ない場合に、このスレーブに対してマスタが複数の連続したリードまたはライト要求を発行する場合に便利です。たとえば、命令フェッチ動作や SDRAM との DMA 転送に役立ちます。このようなケースでは、全アクセスレイテンシを減らすために、最初の転送が完了する前に CPU または DMA マスタが複数の要求をプリフェッチすることができます。
クロック・ドメイン・クロス回路
SOPC Builderにより生成されるシステム・インタコネクト・ファブリックは、異なるクロック上で動作するペリフェラル間転送をサポートする専用回路を自動で追加します。専用回路はペリフェラルが特定の周波数で動作している時(例えば, ビデオ回路やメモリ・コントローラなど)に、他のコンポーネントが別の周波数で動作する必要がある場合において非常に便利です。
ストリーミング転送
Avalon ストリーミング・インタフェースは、多重化ストリーム、パケット、そしてDSP データを含む単一方向のデータフロー、ソース・インタフェース間およびシンク・インタフェース向けに設計されています。Avalon ストリーミング・インタフェースには、以下が含まれています。
- 遅延が少なく、高いスループット・データ転送を提供
- 柔軟なパケット・インタリーブを含み複数のチャネルをサポート
- チャネル、エラー、パケット・デリニエーションの開始と終了のサイドバンド信号
- バースト・データをサポート
最大 128 ビットのデータ・パス
Avalon メモリ・マップ・インタフェースは1 - 32 ビットのアドレス範囲が可能です。メモリおよびペリフェラルは、マスタ・ポートのアドレス空間内のどこにでもマッピングできます。つまり、32 ビットのアドレス範囲を持つ CPU (または他のマスタ)のアドレス指定可能なメモリ範囲は最大 4G バイトであり、この範囲内のどこにでもペリフェラルをマッピングできます。最大のデータ・スループットを実現するために、コンポーネントのデータ・パスを最大128ビットまで引き上げることが可能です。Avalon スイッチ・ファブリックのダイナミック・バス・ザイジング機能を利用することで、異なるデータ・パス幅のペリフェラル間のデータ転送を自動的に行うことができます。
柔軟なコントロール信号のアサーション
Avalon メモリ・マップ・インタフェースは、chipselect、read、write 、およびその他のコントロール信号が一意的に High または Low にアサートされることを可能にするため、各ペリフェラルは設計者の好みまたはニーズに合わせて制御することができます。システム・インタコネクト・ファブリックはコンポーネント間のアサーション・ロジックを自動的に整合させます。これにより、新しいデザインにおいてペリフェラルを調整することなく迅速かつ簡単に再使用できます。
固定長および可変長転送
Avalon メモリ・マップ・インタフェースは、固定サイクル数でリードおよびライト・データ転送を実行するペリフェラルをサポートします。リード動作とライト動作のサイクル数が一致する必要はありません。Avalon メモリ・マップ・インタフェースは、wait 信号付きペリフェラルもサポートしています。このようなペリフェラルに対しては、wait 信号をアサートすれば、転送ごとにサイクル数を変更できます。
バースト転送
Avalon メモリ・マップ・インタフェースはマスタ/スレーブ間のバースト・データ転送用の信号を含んでいます。burstcount や beginbursttransfer 信号はバースト・スタイルの転送を開始するマスタ・ペリフェラルの容量を示します。バーストの際の転送可能な最大ワード数は、バースト・カウントの数値で示されます。また、インターリーブ、連続、ラッピングのバースト転送がサポートされています。SOPC Builderにより生成されるシステム・インタコネクト・ファブリックは、自動的にバースト転送可能なマスタからバースト転送を認識しないスレーブへの接続をサポートします。
