11. Avalon Memory-Mapped ブリッジ - Intel...11–2 Altera Corporation 2008 年5 月 Quartus II...

Preview:

Citation preview

Altera Corporation 11–12008年 5月

この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際には、最新の英語版で内容をご確認ください。

11. Avalon Memory-Mappedブリッジ

ブリッジについて

この章では Avalon® Memory-Mapped(Avalon-MM)ブリッジを紹介し、SOPC Builderシステム用にアルテラから提供される Avalon-MMブリッジ・コンポーネントについて説明します。

ブリッジは生成された SOPC Builder システムのトポロジーの制御に使用します。ブリッジはデータのエンドポイントではありませんが、他のコンポーネント間のデータ転送方法に影響を与えます。マスタとスレーブ間に Avalon-MM ブリッジを挿入することによってシステム・トポロジーを制御しますが、これは SOPC Builder で生成されるインタコネクトに影響します。インタコネクトを手動で制御すると、パフォーマンスの向上またはロジック使用率の低減、あるいはその両方の効果が得られます。

■ アルテラで提供するAvalon-MMブリッジについては、11–9ページの「Avalon-MMパイプライン・ブリッジ」の項で説明しています。

■ Avalon-MMクロック・クロッシング・ブリッジ・コンポーネントについては、11–12ページの「クロック・クロッシング・ブリッジ」の項で説明しています。

■ Avalon-MMクロック・ドメイン・クロッシング・コンポーネントについては、11–19ページの「クロック・ドメイン・クロッシング」の項で説明しています。

ブリッジを使用した SOPC Builder システムのトポロジーの最適化および制御について詳しくは、「エンベデッド・デザイン・ハンドブック」の「Avalon Memory-Mapped Design Optimizations」を参照してください。

ブリッジの構造

図 11–1に示すように、ブリッジには 1つの Avalon-MMスレーブと 1つの Avalon-MMマスタがあります。SOPC Builderシステムでは、1つまたは複数のマスタがブリッジに接続され、ブリッジは 1つまたは複数のスレーブに接続されます。図 11–1では、3つのマスタがすべて 3つのスレーブすべてに論理的に接続されていますが、物理的には各マスタはブリッジにしか接続されていません。

QII54020-8.0.0

11–2 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

図 11–1. SOPC Builderシステムの Avalon-MMブリッジの例

ブリッジのスレーブへの転送が開始されると、スレーブ上で開始されたのと同じ順序でマスタに伝播されます。

Avalon-MM インタフェースについて詳しくは、「Avalon InterfaceSpecifications」を参照してください。

Avalon-MM Bridge

M

S

M1

M

M2

M M

M3

S2

S

S1

S

S

M Avalon-MM Master

Avalon-MM Slave

S3

S

Arbiter & Write Data ControlSignal Multiplexing

ChipSelect & Read DataMultiplexing

Altera Corporation 11–32008年 5月

ブリッジの構造

ブリッジを使用する理由Avalon-MM ブリッジの使用を検討する例として、以下のような状況が挙げられます。

■ マスタ/スレーブ・ペア間にブリッジがないときには、SOPC Builderは最大並列処理に基づいてシステム・インタコネクト・ファブリックを生成します。これにより、各マスタが異なるスレーブにアクセスする限り、すべてのマスタがすべてのスレーブに対するトランザクションを同時にドライブできます。

■ 高度な並列性を必要としないシステムの場合、デフォルト動作では最適な性能が得られない場合があります。

■ システムとアプリケーションの知識があれば、ブリッジを挿入してシステム・トポロジーを制御することにより、システム・インタコネクト・ファブリックを最適化できます。

図 11–2 および図 11–3 に、ブリッジのない SOPC システムを示します。このシステムは、3個の CPU、1個の DDR SDRAMコントローラ、1個のメッセージ・バッファRAM、1個のメッセージ・バッファMutex、および 1個の外部 SRAMへのトライステート・ブリッジで構成されています。

図 11–2.ブリッジのないシステムの例—SOPC Builderビュー

図 11–3に、図 11–2のシステムのデフォルト・システム・インタコネクト・ファブリックを示します。

11–4 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

図 11–3.ブリッジのないシステムの例—システム・インタコネクト・ビュー

図 11–4と図 11–5に、ブリッジ挿入が生成されるロジックに及ぼす影響を示します。例えば、DDR SDRAMコントローラが 166 MHzで動作し、それにアクセスする CPUが 120 MHzで動作可能な場合、CPUと DDRSDRAM 間に Avalon-MM クロック・クロッシング・ブリッジを挿入すると、以下のような効果があります。

■ CPUインタフェースと DDRインタフェースを異なる周波数で動作させることができます。

■ 低速クロック・ドメインに、アービトレーション・ロジック用システム・インタコネクト・ファブリックおよび DDR SDRAM コントローラ用マルチプレクサを配置します。

CPU1 CPU2

S

M Avalon-MM Master Port

Avalon-MM Slave Port

CPU3

CP

U3

Add

r, D

ata,

Bur

stR

eq

CP

U3

Add

r, D

ata,

Bur

stR

eq

CP

U3

Add

r, D

ata,

Bur

stR

eq

CP

U3

Add

r, D

ata,

Bur

stR

eq

CP

U2

Add

r, D

ata,

Bur

stR

eq

CP

U2

Add

r, D

ata,

Bur

stR

eq

CP

U2

Add

r, D

ata,

Bur

stR

eq

CP

U2

Add

r, D

ata,

Bur

stR

eq

CP

U1

Add

r, D

ata,

Bur

stR

eq

CP

U1

Add

r, D

ata,

Bur

stR

eq

CP

U1

Add

r, D

ata,

Bur

stR

eq

CP

U1

Add

r, D

ata,

Bur

stR

eq

rdda

ta_c

pu1

rdda

ta_c

pu2

rdda

ta_c

pu3

rdda

ta_c

pu1

rdda

ta_c

pu2

rdda

ta_c

pu3

rdda

ta_c

pu1

rdda

ta_c

pu2

rdda

ta_c

pu3

rdda

ta_c

pu1

rdda

ta_c

pu2

rdda

ta_c

pu3

SystemInterconnectFabric

CP

U_S

elec

t_M

ux1

CP

U_S

elec

t_M

ux2

CP

U_S

elec

t_M

ux3

CP

U_S

elec

t_M

ux4

M M M

Message BufferRAM

DDR SDRAMController

Message BufferMutex

Tristate Bridgeto External

SRAM

SSSS

Altera Corporation 11–52008年 5月

ブリッジの構造

■ 高速ドメインでのインタコネクト・ロジックの構造をシンプルにし、システムが高い fMAXで動作できるようにします。

図 11–4 に示すシステムでは、メッセージ・バッファ RAM とメッセージ・バッファMutexが迅速に CPUに応答しなければなりませんが、各応答には少量のデータしか含まれません。CPUとメッセージ・バッファ間に Avalon-MM パイプライン・ブリッジを配置すると、以下のような効果が得られます。

■ メッセージ・バッファ RAMおよびメッセージ・バッファMutex用の個別アービタ・ロジックをなくすと、ロジック使用率と伝播遅延が低減され、fMAXが向上します。

■ システム・インタコネクト・ファブリックの全体的なサイズを縮小し、構造をシンプルにします。

図 11–4.ブリッジを使用したシステムの例—SOPC Builderビュー

上記のように、アドレスの横にオレンジ色の三角が表示される場合、そのアドレスがオフセット値で、アドレス・マップでのアドレスの実際の値ではないことを示します。

11–6 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

またこのシステムでは、各 CPUに対する JTAGデバッグ・モジュールがAvalonパイプライン・ブリッジの後方に配置され、命令とデータ・マスタ間、および JTAGデバッグ・モジュール間の通信を高速化しています。

図 11–5 に、図 11–4 のシステムに対して SOPC Builder で生成されるシステム・インタコネクト・ファブリックを示します。図 11–5 は図 11–3と同じシステムですが、システム・トポロジーの制御にブリッジが使用されています。

図 11–5.ブリッジを使用したシステムの例

S

M Avalon-MM Master Port

Avalon-MM Slave Port

Tristate Bridgeto External

SRAM

S4

CPU3

MM

CPU1

M

DDR SDRAM

Cntl

S1

Avalon-MMPipelineBridge

S

Avalon-MM Clock Crossing

Bridge

Message BufferRAM

S2

Message BufferMutex

S3

System Interconnect Fabric

CPU2

CP

U3

Add

r, D

ata,

Bur

stR

eq

CP

U2

Add

r, D

ata,

Bur

stR

eq

CP

U1

Add

r, D

ata,

Bur

stR

eq

rdda

ta_c

pu1

rdda

ta_c

pu2

rdda

ta_c

pu3

CP

U3

Add

r, D

ata,

Bur

stR

eq

CP

U2

Add

r, D

ata,

Bur

stR

eq

CP

U1

Add

r, D

ata,

Bur

stR

eq

CP

U3

Add

r, D

ata,

Bur

stR

eq

CP

U2

Add

r, D

ata,

Bur

stR

eq

CP

U1

Add

r, D

ata,

Bur

stR

eq

M M

S

JTAG Debug CPU1

S4

JTAG Debug CPU2

S5

JTAG Debug CPU3

S6

SystemInterconnectFabric

Altera Corporation 11–72008年 5月

ブリッジの構造

Avalon-MMブリッジを使用したシステムのアドレス・マッピングAvalon-MM ブリッジでは、以下に定義されるアドレス・スパンおよびアドレス範囲が使用されます。

■ Avalon-MMブリッジのアドレス・スパンは、スレーブの範囲すべてを包括する最小の 2のべき乗サイズになります。

■ Avalon-MMブリッジのアドレス範囲は、ベース・アドレスからベース・アドレス +(スパン- 1)までの数値範囲となります。

(1)

SOPC Builderは、Avalon-MMブリッジを含むシステムのアドレス・マップを構築する場合、複数のルールに従います。

1. 各 Avalon-MMスレーブのアドレス・スパンは、最も近い 2のべき乗に切り上げられます。

2. ブリッジに接続される各 Avalon-MM スレーブは、ブリッジのベース・アドレスを基準とするアドレスを持ちます。このアドレスはスパンの倍数でなければなりません。(図 11–6参照)。

図 11–6. Avalon-MMのマスタおよびスレーブのアドレス

3. 図 11–6に示す例では、スレーブ 1のアドレス・スパンが 0×100、スレーブ 2 のアドレス・スパンが 0×200 の場合、Avalon-MM ブリッジのアドレス・スパンは図 11–7のようになります。

range = [base_address .. (base_address + (span - 1)];

Avalon-MMBridgeSMaster1 M

Slave2S

Slave1S

S

M Avalon-MM Master Port

Avalon-MM Slave Port

Addr = 0x1000

Addr = 0x100

Addr = 0x400

Avalon-MM Master1 sees Slave1 at Addr = 0x1100Avalon-MM Master1 sees Slave2 at Addr = 0x1400

M

11–8 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

図 11–7. Avalon-MMブリッジのアドレス・スパン

アドレス・マップを視覚化するためのツール

System Contentsタブの Base Addressカラムには、Avalon-MMスレーブが接続される Avalon-MM ブリッジのベース・アドレスを基準とする同スレーブのベース・アドレス・オフセットが表示されます。システム内の各マスタの絶対アドレス・マップは、System Contents タブのAddress Mapをクリックすると確認できます。

Avalon-MMブリッジと Avalon-MMトライステート・ブリッジの違い

Avalon-MMブリッジは、トポロジーの制御およびオンチップ・コンポーネントのクロック・ドメインの分離に使用します。トライステート・ブリッジは、オフチップ・コンポーネントへの接続とピンの共有に使用し、デバイスの全体のピン数を減らします。また、双方向入力データの単方向入力データ信号および出力データ信号への変換にも使用します。トライステート・ブリッジはトランスペアレントです。すなわち、接続するコンポーネントのアドレスには影響しません。

Avalon-MMトライステート・ブリッジについて詳しくは、「Quartus IIハンドブック Volume 4」の「SOPC Builder Memory SubsystemDevelopment Walkthrough」の章を参照してください。

Addr = 0x400

Addr = 0x100

Addr = 0x1FF

Addr = 0x5FF

Addr = 0x7FF

Addr = 0x000

Slave 2: span = 0x200 range = 0x400 - 0x5FF

Slave 1: span = 0x100 range = 0x100 - 0x1FF

Avalon-MM Bridgespan = 0x800 = 0x1000 .. (0x1000 + 0x7FF) = 0x1000 .. 0x17FF

Altera Corporation 11–92008年 5月

Avalon-MMパイプライン・ブリッジ

Avalon-MMパイプライン・ブリッジ

この項では、Avalon-MM パイプライン・ブリッジ・コンポーネントのハードウェア構造と機能について説明します。

コンポーネントの概要Avalon-MM パイプライン・ブリッジは、マスタとスレーブ間のパスにレジスタを挿入します。SOPC Builderシステムでは、システム・インタコネクト・ファブリックに重大なレジスタ間遅延が発生した場合、パイプライン・ブリッジによりこの遅延が低減され、システムの fMAX が向上します。

ブリッジにより、インタコネクトに重大なタイミング・パスを形成する可能性がある異なる信号グループを、個別にパイプライン化できます。

■ address、write data、および control信号などのマスタ /スレーブ間信号

■ Read dataなどのスレーブ /マスタ間信号■ マスタへの waitrequest信号

また、Avalon-MM パイプライン・ブリッジを使用すると、パイプライン・ステージを追加しないでトポロジーを制御することもできます。パイプライン・ステージを追加しないブリッジをインスタンス化するには、パラメータ・ページでどのPipelineOptionsも選択しません。図 11–5に示すシステムの場合、パイプライン・レジスタ・ステージを追加しないパイプライン・ブリッジはオプションです。これは CPUがメッセージ・バッファMutexおよびメッセージ・バッファ RAMから最小限の遅延しか必要としないためです。

レイテンシのないパイプライン・ブリッジは、パイプライン化された読み出しをサポートするスレーブでは使用できません。スレーブにリード・レイテンシがない場合は、このスレーブをパイプライン・ステージなしでブリッジに接続することはできません。これはパイプライン・ブリッジのスレーブ・ポートにreaddatavalid信号があるためです。パイプライン化されたリード・コンポーネントでは、リード・レイテンシをゼロにすることはできません。

Avalon-MMパイプライン・ブリッジ・コンポーネントは、SOPC Builderシステムに容易に統合されます。

11–10 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

機能の説明図 11–8に、Avalon-MMパイプライン・ブリッジ・コンポーネントのブロック図を示します。

図 11–8. Avalon-MMパイプライン・ブリッジのブロック図

コンポーネントのハードウェア機能については、以下の項で説明しています。

インタフェース

ブリッジのインタフェースは、Avalon-MM スレーブと Avalon-MM マスタから構成されます。ポートのデータ幅はコンフィギュレーション可能であり、システム・インタコネクト・ファブリックにおける SOPCBuilder のダイナミック・バス・サイジング・ロジックの生成方法に影響を与える場合があります。両方のポートとも可変レイテンシで、Avalon-MM パイプライン転送をサポートします。両方のポートともオプションで、コンフィギュレーション可能なバースト長をサポートします。

パイプライン・ステージとレイテンシへの影響

ブリッジはオプションの 3つのレジスタ・ステージにより、以下の信号グループをパイプライン化します。

MasterI/F

Wait Request Logic

D Q

Q D

Avalon-MM Pipeline Bridge

Master-to-SlaveSignals

waitrequest

Slave-to-MasterSignals

D QMaster-to-Slave

Signals

waitrequest

Slave-to-MasterSignals

Slave-to-MasterPipeline

ENA

Master-to-SlavePipeline

waitrequestPipeline

Connects to anAvalon-MM

MasterInterface

Connects to anAvalon-MM

SlaveInterface

SlaveI/F

Altera Corporation 11–112008年 5月

Avalon-MMパイプライン・ブリッジ

■ 以下を含むマスタ /スレーブ信号 :● address● writedata● write● read● byteenable● chipselect● burstcount (オプション)

■ 以下を含むスレーブ /マスタ信号 :● readdata● readdatavalid

■ マスタへの waitrequest信号

レジスタ・ステージを含める場合、以下のようにブリッジを介した転送のタイミングとレイテンシに影響します。

■ 各方向でレイテンシが 1サイクル増加します。■ ブリッジのマスタ側でのライト転送は、ブリッジのスレーブ側でのライト転送からは切り離されます。これは Avalon-MM ライト転送はスレーブからの確認信号を必要としないためです。

■ waitrequestレジスタ・ステージを含めると、waitrequest信号がアサートされたときに、マスタ / スレーブ間信号のレイテンシが1サイクル追加されます。

バースト・サポート

ブリッジは、最大バースト長をコンフィギュレーション可能なバーストをサポートできます。バースト・サポートを設定した場合、ブリッジはマスタ /スレーブ・ペア間で最大バースト長までバーストを伝播させます。バーストをサポートしないときは、最大バースト長が 1の場合と同じ動作になります。この場合、システム・インタコネクト・ファブリックはマスタ /ブリッジ間のバーストを個々の転送シーケンスに自動的に分解します。

Avalon-MMパイプライン・ブリッジを使用したシステムの例

図 11–9 に、7 つの Avalon-MM マスタが 1 つの DDR2 メモリ・コントローラにアクセスしているシステムを示します。2 つの Avalon-MM パイプライン・ブリッジを挿入すると、中間パイプライン・ステージがない場合に必要となるマルチプレクサの複雑さを制限できます。

11–12 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

図 11–9. 1つの Avalon-MMスレーブにアクセスする 7つの Avalon-MMマスタ

クロック・クロッシング・ブリッジ

この項では、Avalon-MMクロック・クロッシング・ブリッジ・コンポーネントのハードウェア構造と機能について説明します。

コンポーネントの概要Avalon-MMクロック・クロッシング・ブリッジにより、Avalon-MMマスタと異なるクロック・ドメインで動作するスレーブを接続できます。ブリッジがない場合、SOPC Builderはシステム・インタコネクト・ファブリックに汎用クロック・ドメイン・クロッシング(CDC)ロジックを自動的に取り込みますが、高スループット・アプリケーションには最適な性能は得られません。クロック・クロッシング・ブリッジにはバッファリング・メカニズムが実装されているため、複数のリードおよびライト転送をパイプライン化できます。最初の読み出しまたは書き込みに対する初期ペナルティの発生後は、保留中の読み出しおよび書き込みに対する追加のレイテンシ・ペナルティが発生することなくスループットが向上しますが、主にオンチップ・メモリの性能が低下します。クロック・クロッシング・ブリッジは、マスタ /スレーブ信号とスレーブ /マスタ信号に対するパラメータ化可能な FIFO を備えており、クロック・ドメイン間でのバースト転送を可能にします。

S

M Avalon-MM Master Port

Avalon-MM Slave Port

DMA Read

Avalon-MMPipelineBridge

S

M

S

DDR2 MemoryController

M

DMA Write

M

CPU3

M

ExternalProcessor

M

CPU2

M

CPU1

M M

Avalon-MMPipelineBridge

S

M

ExternalProcessor

Altera Corporation 11–132008年 5月

クロック・クロッシング・ブリッジ

Avalon-MM クロック・クロッシング・ブリッジ・コンポーネントは、SOPC Builderに対応しており、SOPC Builderで生成されたどのシステムにも容易に統合できます。

クロック・クロッシング手法の選択コンポーネントのクロック周波数を決定する場合、クロック・ドメイン間のデータ転送により生じるレイテンシへの影響も考慮する必要があります。クロック・クロッシング・ブリッジを使用しても、SOPC Builderで自動的に生成されるクロック・ドメイン・アダプタを使用する場合も、追加レイテンシが発生します。各ソリューションのリソース使用率とスループット性能も考慮してください。

クロック・ドメイン・アダプタを使用して、個別クロック入力でドライブされるマスタ・ポートとスレーブ・ポートに接続する場合、各転送には一定のレイテンシ・ペナルティを伴います。各転送はブロッキング状態になります。すなわち、ある転送が実行中のときにはこの転送が終了するまで別の転送を開始することはできません。この理由により、間にクロック・クロッシング・ブリッジを使用しないで、SDRAM メモリなどのパイプライン化された高速コンポーネントを別のクロック・ドメイン上のマスタに接続してはなりません。クロック・クロッシング・ブリッジは複数の転送をキューイングできるため、レイテンシが増加する場合でも、スループットは低下しません。

すべてのマスタ /スレーブ・ペアに対してクロック・ドメイン・アダプタが生成されるため、異なるクロック・ドメインで動作する複数のマスタ /スレーブ・ペアがデザインに含まれる場合は、クロック・クロッシング・ブリッジを使用する必要があります。あるいは、デザインで大量のオンチップ・メモリ・リソースを使用している場合、クロック・クロッシング・ブリッジはメモリ・リソースを必要とするため、クロック・ドメイン・アダプタが必要になることもあります。

機能の説明図 11–10に、Avalon-MMクロック・クロッシング・ブリッジ・コンポーネントのブロック図を示します。コンポーネントのハードウェア機能については、以下の項で説明しています。

11–14 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

図 11–10. Avalon-MMクロック・クロッシング・ブリッジのブロック図

インタフェース

ブリッジ・インタフェースは、Avalon-MM スレーブと Avalon-MM マスタから構成されます。ポートのデータ幅はコンフィギュレーション可能であり、ブリッジ・ハードウェアのサイズとシステム・インタコネクト・ファブリックにおける SOPC Builder のダイナミック・バス・サイジング・ロジックの生成方法に影響を与える場合があります。両方のポートとも可変レイテンシで、Avalon-MM パイプライン転送をサポートします。両方のポートともオプションで、コンフィギュレーション可能なバースト長をサポートします。理想的には、1 つのポートの設定を他のポートに合わせて、データ幅やバースト機能を統一します。

クロック・ドメイン・アダプタと FIFO

ブリッジの 2個の FIFOは、クロック・ドメイン間でアドレス、データ、およびコントロール信号を転送します。1個の FIFOがマスタからスレーブの方向に移動するデータおよびコントロール信号をキャプチャすると、他の FIFOはスレーブからマスタ方向のデータをキャプチャします。

Avalon-MM Clock-Crossing Bridge

Master-to-SlaveSignals

waitrequest

Slave-to-MasterSignals

Master-to-SlaveSignals

waitrequest

Slave-to-MasterSignals

master_clkslave_clk

Connects to Avalon-MM

SlaveInterface

Connects to Avalon-MM

MasterInterface

WaitRequest

Logic

Master-to-SlaveFIFO

outin

Slave-to-MasterFIFO

out in

SlaveI/F

MasterI/F

Altera Corporation 11–152008年 5月

クロック・クロッシング・ブリッジ

FIFOの周囲の CDCロジックは、データ・ドメイン境界をまたがるデータの受け渡しの詳細を調整し、FIFOのオーバーフローまたはアンダーフローを回避します。

マスタ /スレーブ間の FIFOを通過する信号には、以下があります。

■ writedata■ address■ read■ write■ byteenable■ burstcount、バーストが有効な場合

スレーブ /マスタ間の FIFOを通過する信号には、以下があります。

■ readdata■ readdatavalid■ endofpacket

各 FIFOの深度を設定できます。他の信号もマスタ /スレーブ方向に移動しているため、マスタ /スレーブ FIFOの深度を変更すると、ブリッジのメモリ使用率に大きく影響します。

ブリッジ間のリード転送の場合、データがスレーブから返されるときに両方向の FIFO でレイテンシが生じます。各転送でレイテンシ・ペナルティが発生するのを避けるために、マスタは FIFO にキューイングされる複数の読み出しを発行できます。ブリッジのスレーブは、有効なデータをドライブするときは readdatavalidをアサートし、他の読み出しを受け付ける準備が整っていない場合は waitrequestをアサートします。

ライト転送の場合、マスタ /スレーブ FIFOにより、マスタ /ブリッジ転送から対応するブリッジ / スレーブ転送までの間に遅延が生じます。Avalon-MM のライト転送はスレーブからの確認を要求しないため、マスタ /ブリッジ間の複数のライト転送は、ブリッジが対応するブリッジ /スレーブ転送を開始するまでに完了する可能性があります。

11–16 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

バースト・サポート

ブリッジは、オプションで最大バースト長をコンフィギュレーション可能なバーストをサポートします。バースト・サポートを設定した場合、ブリッジはマスタ /スレーブ・ペア間で最大バースト長までバーストを伝播させます。バーストをサポートしないときは、最大バースト長が 1の場合と同じ動作になります。この場合、システム・インタコネクト・ファブリックはマスタ /ブリッジ間のバーストを個々の転送シーケンスに自動的に分解します。

バーストをサポートするようにブリッジを設定した場合、すべてのバースト・リード・データをオーバーフローさせないでキャプチャできるだけ深く、スレーブ /マスタ FIFOの深度を設定する必要があります。ブリッジに接続されたマスタは、リード・バースト・リクエストによりマスタ /スレーブ FIFOを充填可能なため、スレーブ /マスタ FIFOの最小深度は、次式で示されます。

例 11-1.スレーブ /マスタ FIFOの最小深度

= ((マスタ /スレーブ FIFO深度 ) * (最大バースト長 )) + 最大スレーブ・レイテンシ /保留中の読み出し

Avalon-MMクロック・クロッシング・ブリッジを使用したシステムの例

図 11–11 では、Avalon-MM クロック・クロッシング・ブリッジを使用して、スレーブ・コンポーネントを 2 つのグループに分割しています。低性能のスレーブ・コンポーネントは、単一ブリッジの後方に配置され、低速クロックで動作します。高性能のスレーブ・コンポーネントは、2番目のブリッジの後方に配置され、高速クロックで動作します。システムにクロック・クロッシング・ブリッジを挿入すると、インタコネクト・ファブリックが最適化され、最小の伝播遅延が要求されるパスの最適化作業に Quartus IIフィッタを割り当てることができます。

Altera Corporation 11–172008年 5月

クロック・クロッシング・ブリッジ

図 11–11. 1つの Avalon-MMマスタと 2つの Avalon-MMスレーブのグループ

S

M Avalon-MM Master Port

Avalon-MM Slave Port

Avalon-MM Clock-Crossing

Bridge

S

M

Avalon-MM Clock-Crossing

Bridge

S

M

S

DDRSDRAM

S

FlashMemory

S

ExternalSRAM

JTAG DebugModule

S

UART

S S

System ID

S

Seven SegmentPIO

S

LCDDisplay

CPU

M

Avalon-MM Clock-Crossing

Bridge

S

M

Avalon TristateBridge

S

M

Avalon TristateBridge

S

M

11–18 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

SOPC Builderでの Avalon-MMクロック・クロッシング・ブリッジのインスタンス化この項では、Megawizardインタフェースの Parameter Settingsページで使用できるオプションについて説明します。

■ Master-to-slave FIFO—このオプションを使用すると、マスタ /スレーブ FIFOのサイズと構造を指定できます。● FIFO depth—FIFOの深度を決定します。● Construct FIFO from registers—このオプションをオンにすると、FIFOはレジスタをエンベデッド・メモリ・ブロックの代わりにストレージとして使用します。結果として、ブリッジ・ハードウェアのサイズがかなり大きくなり、fMAXが低下します。

■ Slave-to-master FIFO—このオプションを使用すると、スレーブ/マスタ FIFOのサイズと構造を指定できます。● FIFO depth—FIFOの深度を決定します。● Construct FIFO from registers—このオプションをオンにすると、FIFOはレジスタをエンベデッド・メモリ・ブロックの代わりにストレージとして使用します。結果として、ブリッジ・ハードウェアのサイズがかなり大きくなります。

■ Data width— ブリッジ上のマスタとスレーブのデータ幅を決定します。両方の FIFOのサイズに影響します。

最も広い帯域幅の場合、Data widthをブリッジに接続される最も幅の広いマスタと同じ幅に設定します。

■ Allow bursts—バーストをサポートするブリッジのマスタとスレーブ用のロジックを含めます。このオプションを使用すると、スレーブ /マスタ FIFOの最小深度を制限できます。

■ Maximum burst size—Allow burstsをオンにしている場合、ブリッジでサポートされる最大バースト長を決定します。

Altera Corporation 11–192008年 5月

クロック・ドメイン・クロッシング

クロック・ドメイン・クロッシング

SOPC Builderは、異なるクロック・ドメインで動作するコンポーネント用インタフェースの詳細を非表示にするCDCロジックを生成します。システム・インタコネクト・ファブリックは、ポートごとに個別にAvalon-MMプロトコルを維持するため、マスタは別のドメインのスレーブへのインタフェースのためにクロック・アダプタを内蔵する必要はありません。システム・インタコネクト・ファブリックのロジックは、クロック・ドメインの境界を越えて自動的に転送を伝播させます。

システム・インタコネクト・ファブリックのクロック・ドメイン・アダプタは、システムのデザイン作業が簡素化される、以下のような効果をもたらします。

■ システム・ロジックとは異なるクロック周波数でコンポーネント・インタフェースを動作させることができます。

■ CDCハードウェアを手動で設計する必要性をなくします。■ 各Avalon-MMポートは 1つのクロック・ドメインでのみ動作するため、コンポーネントのデザインが簡素化されます。

■ マスタはスレーブのクロック・ドメインと通信しないで、どのスレーブにもアクセスできます。

■ パフォーマンス最適化作業を、高速クロック速度が必要なコンポーネントにのみ集中できます。

クロック・ドメイン・アダプタの説明クロック・ドメイン・アダプタは、各クロック・ドメインに 1つずつ存在する 2つの有限ステート・マシン(FSM)で構成されており、簡単なハンド・シェーク・プロトコルを使用して、転送コントロール信号(readrequest、write request、および master wait-request信号)をクロック境界を越えて伝播させます。図 11–12 に、1 つのマスタと 1 つのスレーブ間のクロック・ドメイン・アダプタのブロック図を示します。

11–20 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

図 11–12.クロック・ドメイン・アダプタのブロック図

図 11–12のシンクロナイザ・ブロックは、複数フリップ・フロップのステージを使用して、ハンドシェーク FSM に入るコントロール信号でのメタステーブル事象の伝播を防止します。

CDCロジックはいかなるクロック比でも機能します。アルテラでは、シミュレーションおよびハードウェアの両方において、さまざまなシステム・アーキテクチャ上で包括的に CDC ロジックをテストして、正しいロジック機能を保証しています。

CDCロジックでの転送に対する一般的なイベント・シーケンスを以下に説明します。

1. マスタはアドレス、データ、およびコントロール信号をアサートします。

2. マスタ・ハンドシェーク FSM は、コントロール信号をキャプチャするとすぐにマスタを待機させます。

FSMはコントロール信号のみ使用し、アドレスとデータは使用しません。例えば、マスタはスレーブ側が安全にキャプチャするまで、アドレス信号を一定状態に保持するだけです。

waitrequest

control

ReceiverHandshake

FSM

transferrequest

acknowledge

readdata

control

SenderHandshake

FSM

waitrequest

Synchro-nizer

ReceiverPort

SenderPort

Receiver Clock Domain Sender Clock Domain

Synchro-nizer

readdata

CDC Logic

writedata & byte enable

address

Altera Corporation 11–212008年 5月

クロック・ドメイン・クロッシング

3. マスタ・ハンドシェーク FSM は、スレーブ・ハンドシェーク FSMへの転送要求を開始します。

4. 転送要求はスレーブのクロック・ドメインに同期します。

5. スレーブ・ハンドシェーク FSM は要求を処理し、スレーブで要求される転送を実行します。

6. スレーブ転送が完了すると、スレーブ・ハンドシェーク FSM はマスタ・ハンドシェーク FSMに確認を返します。

7. 確認はマスタのクロック・ドメインに同期して返されます。

8. マスタ・ハンドシェーク FSM は、マスタを待機状態から解放してトランザクションを終了します。

転送はスレーブ側とマスタ側で通常どおり進行し、クロッシング・クロック・ドメインを処理するための特別なプロトコルは使用されません。スレーブ側からは、異なるクロック・ドメインでマスタが開始した転送とまったく同じように見えます。マスタ側からみると、クロック・ドメイン間の転送は余分なクロック・サイクルを必要とするにすぎません。他の転送遅延のケースと同様に(例えば、スレーブ側でのアービトレーション遅延または待機状態)、システム・インタコネクト・ファブリックは転送が終了するまで、マスタを待機させるだけです。その結果、パイプライン・マスタ・ポートでは、異なるクロック・ドメインへの転送を実行する際に、パイプライン操作による効果は得られません。

クロック・ドメイン・アダプタの位置

クロック・クロッシングのスループットを向上させるために、以下で説明するクロック・クロッシング・ブリッジを使用できますが、メモリ・リソースが消費されます。

SOPC Builder は、システムの内容とコンポーネント間の接続に基づいて、CDCロジックを挿入する箇所を自動的に判断します。SOPC Builderは、すべてのコンポーネントで最大転送レートが維持されるように CDCロジックを配置します。SOPC Builder は、各マスタ / スレーブ・ペアでの CDCロジックの必要性を個々に評価し、必要な場合は CDCロジックを生成します。

11–22 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

転送クロッシング・クロック・ドメインの期間CDCロジックは、クロック・ドメイン境界でのマスタ転送の期間を延長します。ワースト・ケースでは、転送ごとに 5マスタ・クロック・サイクルおよび 5スレーブ・クロック・サイクルだけ延長されます。この遅延の内容を以下に説明します。

■ 4つの追加マスタ・クロック・サイクルは、マスタ側のクロック・シンクロナイザによるものです。

■ 4 つの追加スレーブ・クロック・サイクルは、スレーブ側のクロック・シンクロナイザによるものです。

■ 各方向での 1追加クロック・サイクルは、コントロール信号がクロック・ドメインを横断するときの潜在的メタステーブル事象によるものです。

高性能クロックを要求するシステムは、自動的に挿入されるCDC ロジックではなく、Avalon-MM クロック・クロッシング・ブリッジを使用する必要があります。クロック・クロッシング・ブリッジにはバッファリング・メカニズムが実装されているため、複数の読み出しおよび書き込みをパイプライン化できます。最初の読み出しまたは書き込みに対する初期ペナルティの発生後は、保留中の読み出しおよび書き込みに対する追加のレイテンシ・ペナルティが発生することはなく、スループットが最大4倍向上しますが、ロジック・リソースが必要になります。

詳細については、「Quartus IIハンドブック Volume 4」の 「ストリーミング・インタフェース用システム・インタコネクト・ファブリック」の章と、「エンベデッド・デザイン・ハンドブック」の「Avalon Memory-Mapped Design Optimizations」を参照してください。

SOPC Builderでの複数のクロック・ドメインの実装システムが使用するクロック・ドメインは SOPC Builder の SystemContentsタブで指定します。システムへの入力クロックは、ClockSettings テーブルを使用して定義します。クロック・ソースは、SOPCBuilderシステムの外部入力信号または SOPC Builderシステム内の PLLによってドライブできます。クロック・ドメインはクロックの名前に基づいて差別化されます。同じ周波数で複数の非同期クロックを作成できます。

図 11–13に示すように、システム・クロックを定義した後で、アクティブ・コンポーネントのテーブルを使用して、どのクロックがどのコンポーネントをドライブするかを指定します。

Altera Corporation 11–232008年 5月

デバイス・サポート

図 11–13.コンポーネントへのクロックの割り当て

また、フィルタ設定を変更してクロック接続を表示することができます。この場合、クロック接続は他の接続タイプと同様に管理できます。

デバイス・サポート

ブリッジ・コンポーネントをサポートするアルテラ・デバイスを表 11–1に示します。

表 11–1.サポートされるデバイス・ファミリ

デバイス・ファミリ

Avalon-MMパイプライン・ブリッジのサポート

Avalon-MMクロック・クロッシング・ブリッジ

のサポートArria™ GX フル・サポート フル・サポート

Stratix® III フル・サポート フル・サポート

Stratix II GX フル・サポート フル・サポート

Stratix II フル・サポート フル・サポート

Stratix® フル・サポート フル・サポート

Cyclone™ III フル・サポート フル・サポート

Cyclone II フル・サポート フル・サポート

Cyclone フル・サポート フル・サポート

HardCopy® II フル・サポート フル・サポート

MAX® フル・サポート サポートなし

MAX II フル・サポート サポートなし

11–24 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

インストールおよびライセンス

ブリッジ・コンポーネントは、Quartus® IIソフトウェア・インストールの一部であるアルテラ MegaCore® IP Libraryに含まれています。MegaCore IP Libraryのインストール後、SOPC Builderはブリッジ・コンポーネントを認識して、システム内にインスタンス化できます。

ブリッジ・コンポーネントは、アルテラ・デバイスをターゲットとするどのデザインでも、ライセンスなしで無償で使用できます。

ハードウェア・シミュレーションの考慮点

ブリッジ・コンポーネントは、コンポーネントのスタンドアロン・インスタンスをシミュレーションするためのシミュレーション・テストベンチとしては機能しません。ただし、標準の SOPC Builderシミュレーション・フローを使用して、SOPC Builderシステム内部のコンポーネント・デザイン・ファイルをシミュレーションすることはできます。

ソフトウェア・プログラミング・モデル

ブリッジ・コンポーネントには、ユーザーが表示可能なコントロール・レジスタもステータス・レジスタもありません。したがって、実行時にブリッジの機能をソフトウェアから制御またはコンフィギュレーションすることはできません。ブリッジは割り込みを生成できません。

参考資料 この章では以下のドキュメントを参照しています。

■ 「Avalon Interface Specifications」■ 「エンベデッド・デザイン・ハンドブック」の「Avalon Memory-

Mapped Design Optimizations」■ 「Quartus II ハンドブック Volume 4」の「SOPC Builder Memory

Subsystem Development Walkthrough」の章■ 「Quartus IIハンドブック Volume 4」の「System Interconnect Fabric

for Streaming Interfaces」の章

Altera Corporation 11–252008年 5月

改訂履歴

改訂履歴 表 11–2に、本資料の改訂履歴を示します。

表 11–2.改訂履歴

日付およびドキュメント・バージョン

変更内容 概要

2008年 5月 v8.0 ● 10章を 11章に変更。● マスタとブリッジ間の正しい接続を示すように、図 11–4 を修正。パイプライン・ブリッジの後方の各 CPU の JTAG デバッグ・モジュールを表示。

● 「Avalon Memory-Mapped and Streaming InterfaceSpecifications」への参照を削除し、新しい「AvalonInterface Specifications」に変更。

● クロック・クロッシング・ブリッジの項を 2章からこの章に移動。

● 図 10-4の後に注を追加。

2007年 10月 v7.2.0 クロック・クロッシング・ブリッジの説明をこの章から 2章に移動。

2007年 5月 v7.1.0 初版 Avalon-MMパイプライン・ブリッジと、Avalon-MMクロック・クロッシング・ブリッジは、Quartus II ソフトウェアv7.1リリースで導入された新しいコンポーネントです。

11–26 Altera Corporation2008年 5月

Quartus IIハンドブック Volume 4

Recommended