11. Avalon Memory-Mapped ブリッジ

11. Avalon Memory-Mapped
ブリッジ
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
QII54020-8.0.0
ブリッジ
について
この章では 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 つのス
レーブすべてに論理的に接続されていますが、物理的には各マスタはブ
リッジにしか接続されていません。
Altera Corporation
2008 年 5 月
11–1
Quartus II ハンドブック Volume 4
図 11–1. SOPC Builder システムの Avalon-MM ブリッジの例
M1
M2
M3
M
M
M
Arbiter & Write Data Control
Signal Multiplexing
S
Avalon-MM Bridge
M
ChipSelect & Read Data
Multiplexing
S
S
S
S1
S2
S3
M
Avalon-MM Master
S
Avalon-MM Slave
ブリッジのスレーブへの転送が開始されると、スレーブ上で開始された
のと同じ順序でマスタに伝播されます。
Avalon-MM イ ン タ フ ェ ー ス に つ い て 詳 し く は、「Avalon Interface
Specifications」を参照してください。
11–2
Altera Corporation
2008 年 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 のシステムのデフォルト・システム・インタコネク
ト・ファブリックを示します。
Altera Corporation
2008 年 5 月
11–3
Quartus II ハンドブック Volume 4
図 11–3. ブリッジのないシステムの例 — システム・インタコネクト・ビュー
CPU1
CPU2
CPU3
M
M
M
rddata_cpu1
rddata_cpu2
rddata_cpu3
CPU_Select_Mux4
CPU1 Addr, Data, BurstReq
CPU2 Addr, Data, BurstReq
CPU3 Addr, Data, BurstReq
CPU1 Addr, Data, BurstReq
CPU2 Addr, Data, BurstReq
CPU3 Addr, Data, BurstReq
rddata_cpu1
rddata_cpu2
rddata_cpu3
CPU_Select_Mux3
CPU_Select_Mux2
CPU1 Addr, Data, BurstReq
CPU2 Addr, Data, BurstReq
CPU3 Addr, Data, BurstReq
CPU1 Addr, Data, BurstReq
CPU3 Addr, Data, BurstReq
CPU2 Addr, Data, BurstReq
CPU_Select_Mux1
rddata_cpu1
rddata_cpu2
rddata_cpu3
rddata_cpu1
rddata_cpu2
rddata_cpu3
System
Interconnect
Fabric
S
S
S
S
DDR SDRAM
Controller
Message Buffer
RAM
Message Buffer
Mutex
Tristate Bridge
to External
SRAM
M
Avalon-MM Master Port
S
Avalon-MM Slave Port
図 11–4 と図 11–5 に、ブリッジ挿入が生成されるロジックに及ぼす影響
を示します。例えば、DDR SDRAM コントローラが 166 MHz で動作し、
それにアクセスする CPU が 120 MHz で動作可能な場合、CPU と DDR
SDRAM 間に Avalon-MM クロック・クロッシング・ブリッジを挿入す
ると、以下のような効果があります。
■
■
11–4
CPU インタフェースと DDR インタフェースを異なる周波数で動作
させることができます。
低速クロック・ドメインに、アービトレーション・ロジック用シス
テム・インタコネクト・ファブリックおよび DDR SDRAM コント
ローラ用マルチプレクサを配置します。
Altera Corporation
2008 年 5 月
ブリッジの構造
■
高速ドメインでのインタコネクト・ロジックの構造をシンプルにし、
システムが高い fMAX で動作できるようにします。
図 11–4 に示すシステムでは、メッセージ・バッファ RAM とメッセー
ジ・バッファ Mutex が迅速に CPU に応答しなければなりませんが、各
応答には少量のデータしか含まれません。CPU とメッセージ・バッファ
間に Avalon-MM パイプライン・ブリッジを配置すると、以下のような
効果が得られます。
■
■
メッセージ・バッファ RAM およびメッセージ・バッファ Mutex 用
の個別アービタ・ロジックをなくすと、ロジック使用率と伝播遅延
が低減され、fMAX が向上します。
システム・インタコネクト・ファブリックの全体的なサイズを縮小
し、構造をシンプルにします。
図 11–4. ブリッジを使用したシステムの例 —SOPC Builder ビュー
上記のように、アドレスの横にオレンジ色の三角が表示される
場合、そのアドレスがオフセット値で、アドレス・マップでの
アドレスの実際の値ではないことを示します。
Altera Corporation
2008 年 5 月
11–5
Quartus II ハンドブック Volume 4
またこのシステムでは、各 CPU に対する JTAG デバッグ・モジュールが
Avalon パイプライン・ブリッジの後方に配置され、命令とデータ・マス
タ間、および JTAG デバッグ・モジュール間の通信を高速化しています。
図 11–5 に、図 11–4 のシステムに対して SOPC Builder で生成されるシ
ステム・インタコネクト・ファブリックを示します。図 11–5 は図 11–3
と同じシステムですが、システム・トポロジーの制御にブリッジが使用
されています。
図 11–5. ブリッジを使用したシステムの例
CPU1
CPU2
CPU3
M
M
M
S
S
Avalon-MM
Clock Crossing
Bridge
Avalon-MM
Pipeline
Bridge
M
M
CPU3 Addr, Data, BurstReq
CPU2 Addr, Data, BurstReq
CPU1 Addr, Data, BurstReq
rddata_cpu3
rddata_cpu2
rddata_cpu1
CPU3 Addr, Data, BurstReq
CPU2 Addr, Data, BurstReq
CPU1 Addr, Data, BurstReq
CPU3 Addr, Data, BurstReq
CPU2 Addr, Data, BurstReq
CPU1 Addr, Data, BurstReq
System
Interconnect
Fabric
S4
Tristate Bridge
to External
SRAM
System Interconnect Fabric
S1
DDR
SDRAM
Cntl
11–6
S2
Message
Buffer
RAM
M
Avalon-MM Master Port
S
Avalon-MM Slave Port
S3
Message
Buffer
Mutex
S4
JTAG
Debug
CPU1
S5
S6
JTAG
Debug
CPU2
JTAG
Debug
CPU3
Altera Corporation
2008 年 5 月
ブリッジの構造
Avalon-MM ブリッジを使用したシステムのアドレス・
マッピング
Avalon-MM ブリッジでは、以下に定義されるアドレス・スパンおよび
アドレス範囲が使用されます。
■
■
Avalon-MM ブリッジのアドレス・スパンは、スレーブの範囲すべて
を包括する最小の 2 のべき乗サイズになります。
Avalon-MM ブリッジのアドレス範囲は、ベース・アドレスからベー
ス・アドレス +(スパン− 1)までの数値範囲となります。
(1)
range = [base_address .. (base_address + (span - 1)];
SOPC Builder は、Avalon-MM ブリッジを含むシステムのアドレス・マッ
プを構築する場合、複数のルールに従います。
1.
各 Avalon-MM スレーブのアドレス・スパンは、最も近い 2 のべき
乗に切り上げられます。
2.
ブリッジに接続される各 Avalon-MM スレーブは、ブリッジのベー
ス・アドレスを基準とするアドレスを持ちます。このアドレスはス
パンの倍数でなければなりません。(図 11–6 参照)。
図 11–6. Avalon-MM のマスタおよびスレーブのアドレス
Avalon-MM Master1 sees Slave1 at Addr = 0x1100
Avalon-MM Master1 sees Slave2 at Addr = 0x1400
Master1
M
M
Addr = 0x1000
S
Avalon-MM
Bridge
Addr = 0x100
Slave1
S
Slave2
M
Avalon-MM Master Port
Addr = 0x400
S
S
Avalon-MM Slave Port
3.
Altera Corporation
2008 年 5 月
図 11–6 に示す例では、スレーブ 1 のアドレス・スパンが 0×100、ス
レーブ 2 のアドレス・スパンが 0×200 の場合、Avalon-MM ブリッ
ジのアドレス・スパンは図 11–7 のようになります。
11–7
Quartus II ハンドブック Volume 4
図 11–7. Avalon-MM ブリッジのアドレス・スパン
Addr = 0x7FF
Addr = 0x5FF
Avalon-MM Bridge
span = 0x800
= 0x1000 .. (0x1000 + 0x7FF)
= 0x1000 .. 0x17FF
Slave 2:
span = 0x200
range = 0x400 - 0x5FF
Addr = 0x400
Addr = 0x1FF
Addr = 0x100
Slave 1:
span = 0x100
range = 0x100 - 0x1FF
Addr = 0x000
アドレス・マップを視覚化するためのツール
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 Subsystem
Development Walkthrough」の章を参照してください。
11–8
Altera Corporation
2008 年 5 月
Avalon-MM パイプライン・ブリッジ
Avalon-MM
パイプライン・
ブリッジ
この項では、Avalon-MM パイプライン・ブリッジ・コンポーネントの
ハードウェア構造と機能について説明します。
コンポーネントの概要
Avalon-MM パイプライン・ブリッジは、マスタとスレーブ間のパスに
レジスタを挿入します。SOPC Builder システムでは、システム・インタ
コネクト・ファブリックに重大なレジスタ間遅延が発生した場合、パイ
プライン・ブリッジによりこの遅延が低減され、システムの fMAX が向
上します。
ブリッジにより、インタコネクトに重大なタイミング・パスを形成する
可能性がある異なる信号グループを、個別にパイプライン化できます。
■
■
■
address、write data、および control 信号などのマスタ / スレーブ間
信号
Read data などのスレーブ / マスタ間信号
マスタへの waitrequest 信号
また、Avalon-MM パイプライン・ブリッジを使用すると、パ
イプライン・ステージを追加しないでトポロジーを制御するこ
ともできます。パイプライン・ステージを追加しないブリッジ
をインスタンス化するには、パラメータ・ページでどの Pipeline
Options も選択しません。図 11–5 に示すシステムの場合、パイ
プライン・レジスタ・ステージを追加しないパイプライン・ブ
リッジはオプションです。これは CPU がメッセージ・バッファ
Mutex およびメッセージ・バッファ RAM から最小限の遅延し
か必要としないためです。
レイテンシのないパイプライン・ブリッジは、パイプライン化
された読み出しをサポートするスレーブでは使用できません。
スレーブにリード・レイテンシがない場合は、このスレーブを
パイプライン・ステージなしでブリッジに接続することはでき
ません。これはパイプライン・ブリッジのスレーブ・ポートに
readdatavalid 信号があるためです。パイプライン化された
リード・コンポーネントでは、リード・レイテンシをゼロにす
ることはできません。
Avalon-MM パイプライン・ブリッジ・コンポーネントは、SOPC Builder
システムに容易に統合されます。
Altera Corporation
2008 年 5 月
11–9
Quartus II ハンドブック Volume 4
機能の説明
図 11–8 に、Avalon-MM パイプライン・ブリッジ・コンポーネントのブ
ロック図を示します。
図 11–8. Avalon-MM パイプライン・ブリッジのブロック図
Avalon-MM Pipeline Bridge
Master-to-Slave
Pipeline
D
Master-to-Slave
Signals
D
ENA
Master
I/F
Slave
I/F
Connects to an
Avalon-MM
Slave
Interface
Master-to-Slave
Signals
Q
Q
waitrequest
Pipeline
Wait Request
Logic
waitrequest
Slave-to-Master
Signals
Connects to an
Avalon-MM
Master
Interface
waitrequest
Q
D
Slave-to-Master
Signals
Slave-to-Master
Pipeline
コンポーネントのハードウェア機能については、以下の項で説明してい
ます。
インタフェース
ブリッジのインタフェースは、Avalon-MM スレーブと Avalon-MM マ
スタから構成されます。ポートのデータ幅はコンフィギュレーション可
能であり、システム・インタコネクト・ファブリックにおける SOPC
Builder のダイナミック・バス・サイジング・ロジックの生成方法に影
響を 与え る場合 があ りま す。両方 のポー トと も可変 レイ テン シで、
Avalon-MM パイプライン転送をサポートします。両方のポートともオ
プションで、コンフィギュレーション可能なバースト長をサポートしま
す。
パイプライン・ステージとレイテンシへの影響
ブリッジはオプションの 3 つのレジスタ・ステージにより、以下の信号
グループをパイプライン化します。
11–10
Altera Corporation
2008 年 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 パ
イプライン・ブリッジを挿入すると、中間パイプライン・ステージがな
い場合に必要となるマルチプレクサの複雑さを制限できます。
Altera Corporation
2008 年 5 月
11–11
Quartus II ハンドブック Volume 4
図 11–9. 1 つの Avalon-MM スレーブにアクセスする 7 つの Avalon-MM マスタ
CPU1
CPU2
CPU3
DMA Read
DMA Write
External
Processor
External
Processor
M
M
M
M
M
M
M
S
S
Avalon-MM
Pipeline
Bridge
Avalon-MM
Pipeline
Bridge
M
M
M
Avalon-MM Master Port
S
Avalon-MM Slave Port
S
DDR2 Memory
Controller
クロック・
クロッシング・
ブリッジ
この項では、Avalon-MM クロック・クロッシング・ブリッジ・コンポー
ネントのハードウェア構造と機能について説明します。
コンポーネントの概要
Avalon-MM クロック・クロッシング・ブリッジにより、Avalon-MM マ
スタと異なるクロック・ドメインで動作するスレーブを接続できます。
ブリッジがない場合、SOPC Builder はシステム・インタコネクト・ファ
ブリックに汎用クロック・ドメイン・クロッシング(CDC)ロジックを
自動的に取り込みますが、高スループット・アプリケーションには最適
な性能は得られません。クロック・クロッシング・ブリッジにはバッファ
リング・メカニズムが実装されているため、複数のリードおよびライト
転送をパイプライン化できます。最初の読み出しまたは書き込みに対す
る初期ペナルティの発生後は、保留中の読み出しおよび書き込みに対す
る追加のレイテンシ・ペナルティが発生することなくスループットが向
上しますが、主にオンチップ・メモリの性能が低下します。クロック・
クロッシング・ブリッジは、マスタ / スレーブ信号とスレーブ / マスタ
信号に対するパラメータ化可能な FIFO を備えており、クロック・ドメ
イン間でのバースト転送を可能にします。
11–12
Altera Corporation
2008 年 5 月
クロック・クロッシング・ブリッジ
Avalon-MM クロック・クロッシング・ブリッジ・コンポーネントは、
SOPC Builder に対応しており、SOPC Builder で生成されたどのシステ
ムにも容易に統合できます。
クロック・クロッシング手法の選択
コンポーネントのクロック周波数を決定する場合、クロック・ドメイン
間のデータ転送により生じるレイテンシへの影響も考慮する必要があり
ます。クロック・クロッシング・ブリッジを使用しても、SOPC Builder
で自動的に生成されるクロック・ドメイン・アダプタを使用する場合も、
追加レイテンシが発生します。各ソリューションのリソース使用率とス
ループット性能も考慮してください。
クロック・ドメイン・アダプタを使用して、個別クロック入力でドライ
ブされるマスタ・ポートとスレーブ・ポートに接続する場合、各転送に
は一定のレイテンシ・ペナルティを伴います。各転送はブロッキング状
態になります。すなわち、ある転送が実行中のときにはこの転送が終了
するまで別の転送を開始することはできません。この理由により、間に
クロック・クロッシング・ブリッジを使用しないで、SDRAM メモリな
どのパイプライン化された高速コンポーネントを別のクロック・ドメイ
ン上のマスタに接続してはなりません。クロック・クロッシング・ブリッ
ジは複数の転送をキューイングできるため、レイテンシが増加する場合
でも、スループットは低下しません。
すべてのマスタ / スレーブ・ペアに対してクロック・ドメイン・アダプ
タが生成されるため、異なるクロック・ドメインで動作する複数のマス
タ / スレーブ・ペアがデザインに含まれる場合は、クロック・クロッシ
ング・ブリッジを使用する必要があります。あるいは、デザインで大量
のオンチップ・メモリ・リソースを使用している場合、クロック・クロッ
シング・ブリッジはメモリ・リソースを必要とするため、クロック・ド
メイン・アダプタが必要になることもあります。
機能の説明
図 11–10 に、Avalon-MM クロック・クロッシング・ブリッジ・コンポー
ネントのブロック図を示します。コンポーネントのハードウェア機能に
ついては、以下の項で説明しています。
Altera Corporation
2008 年 5 月
11–13
Quartus II ハンドブック Volume 4
図 11–10. Avalon-MM クロック・クロッシング・ブリッジのブロック図
Avalon-MM Clock-Crossing Bridge
Master-to-Slave
Signals
in
Master-to-Slave
FIFO
Slave
I/F
Connects to
Avalon-MM
Master
Interface
Slave-to-Master
Signals
Master-to-Slave
Signals
out
Master
I/F
out
Slave-to-Master
FIFO
in
Wait
Request
Logic
waitrequest
slave_clk
Slave-to-Master
Signals
Connects to
Avalon-MM
Slave
Interface
waitrequest
master_clk
インタフェース
ブリッジ・インタフェースは、Avalon-MM スレーブと Avalon-MM マ
スタから構成されます。ポートのデータ幅はコンフィギュレーション可
能であり、ブリッジ・ハードウェアのサイズとシステム・インタコネク
ト・ファブリックにおける SOPC Builder のダイナミック・バス・サイ
ジング・ロジックの生成方法に影響を与える場合があります。両方のポー
トとも可変レイテンシで、Avalon-MM パイプライン転送をサポートし
ます。両方のポートともオプションで、コンフィギュレーション可能な
バースト長をサポートします。理想的には、1 つのポートの設定を他の
ポートに合わせて、データ幅やバースト機能を統一します。
クロック・ドメイン・アダプタと FIFO
ブリッジの 2 個の FIFO は、クロック・ドメイン間でアドレス、データ、
およびコントロール信号を転送します。1 個の FIFO がマスタからスレー
ブの方向に移動するデータおよびコントロール信号をキャプチャする
と、他の FIFO はスレーブからマスタ方向のデータをキャプチャします。
11–14
Altera Corporation
2008 年 5 月
クロック・クロッシング・ブリッジ
FIFO の周囲の CDC ロジックは、データ・ドメイン境界をまたがるデー
タの受け渡しの詳細を調整し、FIFO のオーバーフローまたはアンダーフ
ローを回避します。
マスタ / スレーブ間の FIFO を通過する信号には、以下があります。
■
■
■
■
■
■
writedata
address
read
write
byteenable
burstcount、バーストが有効な場合
スレーブ / マスタ間の FIFO を通過する信号には、以下があります。
■
■
■
readdata
readdatavalid
endofpacket
各 FIFO の深度を設定できます。他の信号もマスタ / スレーブ方向に移
動しているため、マスタ / スレーブ FIFO の深度を変更すると、ブリッ
ジのメモリ使用率に大きく影響します。
ブリッジ間のリード転送の場合、データがスレーブから返されるときに
両方向の FIFO でレイテンシが生じます。各転送でレイテンシ・ペナル
ティが発生するのを避けるために、マスタは FIFO にキューイングされ
る複数の読み出しを発行できます。ブリッジのスレーブは、有効なデー
タをドライブするときは readdatavalid をアサートし、他の読み出し
を受け付ける準備が整っていない場合は waitrequest をアサートしま
す。
ライト転送の場合、マスタ / スレーブ FIFO により、マスタ / ブリッジ
転送から対応するブリッジ / スレーブ転送までの間に遅延が生じます。
Avalon-MM のライト転送はスレーブからの確認を要求しないため、マ
スタ / ブリッジ間の複数のライト転送は、ブリッジが対応するブリッジ /
スレーブ転送を開始するまでに完了する可能性があります。
Altera Corporation
2008 年 5 月
11–15
Quartus II ハンドブック Volume 4
バースト・サポート
ブリッジは、オプションで最大バースト長をコンフィギュレーション可
能なバーストをサポートします。バースト・サポートを設定した場合、
ブリッジはマスタ / スレーブ・ペア間で最大バースト長までバーストを
伝播させます。バーストをサポートしないときは、最大バースト長が 1
の場合と同じ動作になります。この場合、システム・インタコネクト・
ファブリックはマスタ / ブリッジ間のバーストを個々の転送シーケンス
に自動的に分解します。
バーストをサポートするようにブリッジを設定した場合、すべてのバー
スト・リード・データをオーバーフローさせないでキャプチャできるだ
け深く、スレーブ / マスタ FIFO の深度を設定する必要があります。ブ
リッジに接続されたマスタは、リード・バースト・リクエストによりマ
スタ / スレーブ FIFO を充填可能なため、スレーブ / マスタ FIFO の最
小深度は、次式で示されます。
例 11-1. スレーブ / マスタ FIFO の最小深度
= (( マスタ / スレーブ FIFO 深度 ) * ( 最大バースト長 )) + 最大スレーブ・レイテンシ / 保留中の読
み出し
Avalon-MM クロック・クロッシング・ブリッジを使用した
システムの例
図 11–11 では、Avalon-MM クロック・クロッシング・ブリッジを使用
して、スレーブ・コンポーネントを 2 つのグループに分割しています。
低性能のスレーブ・コンポーネントは、単一ブリッジの後方に配置され、
低速クロックで動作します。高性能のスレーブ・コンポーネントは、2 番
目のブリッジの後方に配置され、高速クロックで動作します。システム
にクロック・クロッシング・ブリッジを挿入すると、インタコネクト・
ファブリックが最適化され、最小の伝播遅延が要求されるパスの最適化
作業に Quartus II フィッタを割り当てることができます。
11–16
Altera Corporation
2008 年 5 月
クロック・クロッシング・ブリッジ
図 11–11. 1 つの Avalon-MM マスタと 2 つの Avalon-MM スレーブのグループ
CPU
M
S
S
Avalon-MM
Clock-Crossing
Bridge
Avalon-MM
Clock-Crossing
Bridge
M
M
S
S
S
S
S
S
Avalon
Tristate
Bridge
JTAG Debug
Module
UART
System ID
Seven Segment
PIO
LCD
Display
M
S
Flash
Memory
S
DDR
SDRAM
S
Avalon
Tristate
Bridge
M
M
Avalon-MM Master Port
S
Avalon-MM Slave Port
Altera Corporation
2008 年 5 月
S
External
SRAM
11–17
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 をブリッジに接続される最も
幅の広いマスタと同じ幅に設定します。
■
■
11–18
Allow bursts— バーストをサポートするブリッジのマスタとスレー
ブ用のロジックを含めます。このオプションを使用すると、スレー
ブ / マスタ FIFO の最小深度を制限できます。
Maximum burst size—Allow bursts をオンにしている場合、ブリッ
ジでサポートされる最大バースト長を決定します。
Altera Corporation
2008 年 5 月
クロック・ドメイン・クロッシング
クロック・
ドメイン・
クロッシング
SOPC Builder は、異なるクロック・ドメインで動作するコンポーネント
用インタフェースの詳細を非表示にする CDC ロジックを生成します。シ
ス テ ム・イ ン タ コ ネ ク ト・フ ァ ブ リ ッ ク は、ポ ー ト ご と に 個 別 に
Avalon-MM プロトコルを維持するため、マスタは別のドメインのスレー
ブへのインタフェースのためにクロック・アダプタを内蔵する必要はあ
りません。システム・インタコネクト・ファブリックのロジックは、ク
ロック・ドメインの境界を越えて自動的に転送を伝播させます。
システム・インタコネクト・ファブリックのクロック・ドメイン・アダ
プタは、システムのデザイン作業が簡素化される、以下のような効果を
もたらします。
■
■
■
■
■
システム・ロジックとは異なるクロック周波数でコンポーネント・
インタフェースを動作させることができます。
CDC ハードウェアを手動で設計する必要性をなくします。
各 Avalon-MM ポートは 1 つのクロック・ドメインでのみ動作するた
め、コンポーネントのデザインが簡素化されます。
マスタはスレーブのクロック・ドメインと通信しないで、どのスレー
ブにもアクセスできます。
パフォーマンス最適化作業を、高速クロック速度が必要なコンポー
ネントにのみ集中できます。
クロック・ドメイン・アダプタの説明
クロック・ドメイン・アダプタは、各クロック・ドメインに 1 つずつ存
在する 2 つの有限ステート・マシン(FSM)で構成されており、簡単な
ハンド・シェーク・プロトコルを使用して、転送コントロール信号(read
request、write request、および master wait-request 信号)を
クロック境界を越えて伝播させます。図 11–12 に、1 つのマスタと 1 つ
のスレーブ間のクロック・ドメイン・アダプタのブロック図を示します。
Altera Corporation
2008 年 5 月
11–19
Quartus II ハンドブック Volume 4
図 11–12. クロック・ドメイン・アダプタのブロック図
Receiver Clock Domain
Sender Clock Domain
CDC Logic
control
waitrequest
Receiver
Handshake
FSM
Receiver
Port
transfer
request
Synchronizer
Synchronizer
acknowledge
control
Sender
Handshake
FSM
waitrequest
Sender
Port
address
readdata
readdata
writedata & byte enable
図 11–12 のシンクロナイザ・ブロックは、複数フリップ・フロップのス
テージを使用して、ハンドシェーク FSM に入るコントロール信号での
メタステーブル事象の伝播を防止します。
CDC ロジックはいかなるクロック比でも機能します。アルテラでは、シ
ミュレーションおよびハードウェアの両方において、さまざまなシステ
ム・アーキテクチャ上で包括的に CDC ロジックをテストして、正しい
ロジック機能を保証しています。
CDC ロジックでの転送に対する一般的なイベント・シーケンスを以下に
説明します。
1.
マスタはアドレス、データ、およびコントロール信号をアサートし
ます。
2.
マスタ・ハンドシェーク FSM は、コントロール信号をキャプチャ
するとすぐにマスタを待機させます。
FSM はコントロール信号のみ使用し、アドレスとデータは使用
しません。例えば、マスタはスレーブ側が安全にキャプチャす
るまで、アドレス信号を一定状態に保持するだけです。
11–20
Altera Corporation
2008 年 5 月
クロック・ドメイン・クロッシング
3.
マスタ・ハンドシェーク FSM は、スレーブ・ハンドシェーク FSM
への転送要求を開始します。
4.
転送要求はスレーブのクロック・ドメインに同期します。
5.
スレーブ・ハンドシェーク FSM は要求を処理し、スレーブで要求
される転送を実行します。
6.
スレーブ転送が完了すると、スレーブ・ハンドシェーク FSM はマ
スタ・ハンドシェーク FSM に確認を返します。
7.
確認はマスタのクロック・ドメインに同期して返されます。
8.
マスタ・ハンドシェーク FSM は、マスタを待機状態から解放して
トランザクションを終了します。
転送はスレーブ側とマスタ側で通常どおり進行し、クロッシング・クロッ
ク・ドメインを処理するための特別なプロトコルは使用されません。ス
レーブ側からは、異なるクロック・ドメインでマスタが開始した転送と
まったく同じように見えます。マスタ側からみると、クロック・ドメイ
ン間の転送は余分なクロック・サイクルを必要とするにすぎません。他
の転送遅延のケースと同様に(例えば、スレーブ側でのアービトレーショ
ン遅延または待機状態)、システム・インタコネクト・ファブリックは転
送が終了するまで、マスタを待機させるだけです。その結果、パイプラ
イン・マスタ・ポートでは、異なるクロック・ドメインへの転送を実行
する際に、パイプライン操作による効果は得られません。
クロック・ドメイン・アダプタの位置
クロック・クロッシングのスループットを向上させるために、
以下で説明するクロック・クロッシング・ブリッジを使用でき
ますが、メモリ・リソースが消費されます。
SOPC Builder は、システムの内容とコンポーネント間の接続に基づい
て、CDC ロジックを挿入する箇所を自動的に判断します。SOPC Builder
は、すべてのコンポーネントで最大転送レートが維持されるように CDC
ロジックを配置します。SOPC Builder は、各マスタ / スレーブ・ペア
での CDC ロジックの必要性を個々に評価し、必要な場合は CDC ロジッ
クを生成します。
Altera Corporation
2008 年 5 月
11–21
Quartus II ハンドブック Volume 4
転送クロッシング・クロック・ドメインの期間
CDC ロジックは、クロック・ドメイン境界でのマスタ転送の期間を延長
します。ワースト・ケースでは、転送ごとに 5 マスタ・クロック・サイ
クルおよび 5 スレーブ・クロック・サイクルだけ延長されます。この遅
延の内容を以下に説明します。
■
■
■
4 つの追加マスタ・クロック・サイクルは、マスタ側のクロック・シ
ンクロナイザによるものです。
4 つの追加スレーブ・クロック・サイクルは、スレーブ側のクロッ
ク・シンクロナイザによるものです。
各方向での 1 追加クロック・サイクルは、コントロール信号がクロッ
ク・ドメインを横断するときの潜在的メタステーブル事象によるも
のです。
高性能クロックを要求するシステムは、自動的に挿入される
CDC ロジックではなく、Avalon-MM クロック・クロッシン
グ・ブリッジを使用する必要があります。クロック・クロッシ
ング・ブリッジにはバッファリング・メカニズムが実装されて
いるため、複数の読み出しおよび書き込みをパイプライン化で
きます。最初の読み出しまたは書き込みに対する初期ペナルティ
の発生後は、保留中の読み出しおよび書き込みに対する追加の
レイテンシ・ペナルティが発生することはなく、スループット
が最大4倍向上しますが、
ロジック・リソースが必要になります。
詳細については、「Quartus II ハンドブック Volume 4」の 「ストリーミ
ング・インタフェース用システム・インタコネクト・ファブリック」の
章と、
「エンベデッド・デザイン・ハンドブック」の「Avalon MemoryMapped Design Optimizations」を参照してください。
SOPC Builder での複数のクロック・ドメインの実装
システムが使用するクロック・ドメインは SOPC Builder の System
Contents タ ブで 指 定し ま す。シス テ ムへ の 入力 ク ロッ ク は、Clock
Settings テーブルを使用して定義します。クロック・ソースは、SOPC
Builder システムの外部入力信号または SOPC Builder システム内の PLL
によってドライブできます。クロック・ドメインはクロックの名前に基
づいて差別化されます。同じ周波数で複数の非同期クロックを作成でき
ます。
図 11–13 に示すように、システム・クロックを定義した後で、アクティ
ブ・コンポーネントのテーブルを使用して、どのクロックがどのコンポー
ネントをドライブするかを指定します。
11–22
Altera Corporation
2008 年 5 月
デバイス・サポート
図 11–13. コンポーネントへのクロックの割り当て
また、フィルタ設定を変更してクロック接続を表示することができます。
この場合、クロック接続は他の接続タイプと同様に管理できます。
デバイス・
サポート
ブリッジ・コンポーネントをサポートするアルテラ・デバイスを表 11–1
に示します。
表 11–1. サポートされるデバイス・ファミリ
デバイス・
ファミリ
Arria™ GX
フル・サポート
フル・サポート
Stratix® III
フル・サポート
フル・サポート
Stratix II GX
フル・サポート
フル・サポート
Stratix II
フル・サポート
フル・サポート
Stratix®
フル・サポート
フル・サポート
Cyclone™ III
フル・サポート
フル・サポート
Cyclone II
フル・サポート
フル・サポート
Cyclone
フル・サポート
フル・サポート
HardCopy®
Altera Corporation
2008 年 5 月
Avalon-MM クロック・
Avalon-MM パイプライン・
クロッシング・ブリッジ
ブリッジのサポート
のサポート
II
フル・サポート
フル・サポート
MAX®
フル・サポート
サポートなし
MAX II
フル・サポート
サポートなし
11–23
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」の章
11–24
Altera Corporation
2008 年 5 月
改訂履歴
表 11–2 に、本資料の改訂履歴を示します。
改訂履歴
表 11–2. 改訂履歴
日付および
ドキュメント・
バージョン
変更内容
概要
10 章を 11 章に変更。
マスタとブリッジ間の正しい接続を示すよう
に、図 11–4 を修正。パイプライン・ブリッジ
の後方の各 CPU の JTAG デバッグ・モジュー
ルを表示。
「Avalon Memory-Mapped and Streaming Interface
Specifications」への参照を削除し、新しい「Avalon
Interface Specifications」に変更。
クロック・クロッシング・ブリッジの項を 2 章
からこの章に移動。
図 10-4 の後に注を追加。
—
2007 年 10 月 v7.2.0
クロック・クロッシング・ブリッジの説明をこの
章から 2 章に移動。
—
2007 年 5 月 v7.1.0
初版
2008 年 5 月 v8.0
●
●
●
●
●
Altera Corporation
2008 年 5 月
Avalon-MM パイプライン・ブ
リッジと、Avalon-MM クロッ
ク・クロッシング・ブリッジ
は、Quartus II ソフトウェア
v7.1 リリースで導入された新
しいコンポーネントです。
11–25
Quartus II ハンドブック Volume 4
11–26
Altera Corporation
2008 年 5 月