ZYNQ 体系结构#
Zynq の全体アーキテクチャは、PS(プロセッサシステム)と PL(プログラマブルロジック)の 2 つの部分で構成されています。これら 2 つの部分の電源回路は相互に独立しているため、PS と PL は個別に使用でき、使用されていない部分は電源を切ることで消費電力を低減できます。しかし、Zynq の最も価値のあるモードは、2 つの構成要素が組み合わさって使用されることです。
PS(プロセッサシステム)#
プロセッサシステムの基盤として、すべてのチップにはデュアルコアの ARM Cortex-A9 チップが含まれています。これはハードプロセッサであり、チップ上に特化して最適化されたシリコン素子です。
「ハード」プロセッサに加えて、MicroBlaze のような「ソフト」プロセッサという別の選択肢もあります。これは PL 側のユニットで構成されており、PL 側の IP と同等です。対照的に、「ハード」プロセッサは比較的高い性能を得ることができ、「ソフト」プロセッサの数と正確な実装は柔軟です。
特筆すべきは、Zynq の PL 側に 1 つ以上の MicroBlaze ソフトプロセッサを割り当て、ハードコアと協調して動作させることができる点です。例えば、ソフトコアが特定の低レベル機能とシステム間の調整を担当し、要求が高くないタスクをハードコアから切り離すことで、全体の性能を向上させることができます。
Zynq の PS 側には ARM プロセッサだけでなく、一連の関連する処理リソースが含まれており、アプリケーションプロセッシングユニット(Application Processing Unit、APU)を構成しています。さらに、拡張周辺機器インターフェース、キャッシュメモリ、メモリアクセスインターフェース、相互接続インターフェース、クロック発生回路もあります。
PL(プログラマブルロジック)#
Zynq のロジック部分は、Artix7 および Kintex7 の FPGA コンポーネントに基づいています。
ロジック部分#
- 構成可能ロジックブロック(CLB)—— CLB はロジックユニットの小規模で一般的なグループで、PL 内に 2 次元アレイとして配置され、プログラム可能な相互接続によって他の類似のリソースに接続されます。各 CLB 内には 2 つのロジックスライスが含まれ、スイッチマトリックスに隣接しています。
- スライス(Slice)—— CLB 内のサブユニットで、組み合わせおよび時系列ロジック回路を実現するためのリソースがあります。
-
ルックアップテーブル(Lookup Table、LUT)—— 柔軟なリソースで、次のことを実現できます。
- 最大 6 つの入力の論理関数
- 小さな読み取り専用メモリ(ROM)
- 小さなランダムアクセスメモリ(RAM)
- シフトレジスタ
LUT は必要に応じて組み合わせて、より大きな論理関数、メモリ、またはシフトレジスタを形成できます。
-
フリップフロップ(Flip-flop、FF)—— 1 ビットのレジスタを実現するための時系列回路で、リセット機能を備えています。その用途の 1 つは、ラッチを実現することです。
-
スイッチマトリックス(Switch Matrix)—— 各 CLB の隣にスイッチマトリックスがあり、CLB 内のユニットを接続したり、CLB を PL 内の他のリソースに接続したりするための柔軟な配線機能を実現します。
-
キャリー論理(Carry Logic)—— 算術回路は隣接するスライス間で信号を伝達する必要があり、これをキャリー論理によって実現します。
-
入出力ブロック(IOB)—— IOB は PL ロジックリソース間の接続を実現し、外部回路に接続するための物理デバイス「パッド」を提供します。各 IOB は 1 ビットの入力または出力信号を処理でき、IOB は通常チップの周辺に位置しています。
特殊リソース:DSP48E1 と BRAM#
これら 2 つのリソースは列に沿ってロジックアレイに統合され、ロジック部分に埋め込まれており、互いに近接しています。これは、密な計算とメモリ内のデータストレージがしばしば密接に関連する演算であるためです。
BRAM#
Zynq-7000 の BRAM は、他の Xilinx 7 シリーズ FPGA の BRAM と同じで、RAM、ROM、FIFO を実現でき、エラーチェック符号もサポートしています。
各 BRAM には最大 36KB の情報を保存でき、36KB の RAM または 2 つの独立した 18KB の RAM として構成できます。また、より小さなユニットを含むように「再構成」することもでき、または組み合わせてより大容量の RAM を構成することもできます。
BRAM を使用することで、チップ内部の最適化された専用ストレージユニット内に、非常に小さな物理スペースで大量のデータを保存できます。もう 1 つの方法は分散 RAM(Distributed RAM)で、DRAM はロジック部分の LUT を使用して構築されます。BRAM と同等のサイズのメモリを構成するには、多くの LUT が必要であり、実現結果は急増するロジックと配線遅延によるタイミング性能の制限の影響を受けます。一方、DRAM を使用して小さなメモリを実現することには利点があり、リソースの利用率が高く、レイアウトがより柔軟です。BRAM は通常、チップがサポートする最高のクロック周波数で動作します。
DSP48E1#
ロジック部分の LUT は任意の長さの算術演算を実現するために使用できますが、長いワード長の算術回路はロジックスライス内で大きなスペースを占有するため、そのレイアウトと配線はクロック周波数が最適でないことがあります。したがって、LUT を使用して短いワード長の演算を行うのが最良です。
DSP48E1 は、長いワード長の信号の高速算術演算を実現するために特別に設計されたロジックスライスで、専用のシリコンリソースであり、ロジックユニット内部には加算器 / 減算器、乗算器、後加算器 / 減算器が含まれています。
後加算器はロジックユニットとしても使用でき、その場合は論理演算を行い、すべての基本的なブール演算をサポートします。
より大きなワード長の演算が必要な場合は、複数の DSP を組み合わせて拡張することができます。
汎用入出力#
Zynq の汎用入出力機能は、SelectIO リソースと呼ばれ、50 個の IOB のグループで構成されており、各 IOB には外部世界と接続するためのパッドがあります。
I/O グループは高性能(High Performance、HP)または高範囲(High Range、HR)に分かれています。HP インターフェースの電圧は最大 1.8V で、通常はメモリや他のチップとの高速インターフェースとして使用されます。HR インターフェースは 3.3V の電圧を許可し、さまざまな IO 標準の接続に適しています。両方のインターフェースは、単端信号と差動信号をサポートしています。
各 IOB には IOSERDES リソースも含まれており、並列およびシリアルのプログラム可能な変換を行うことができ、データビット幅は 2~8 ビットです。
通信インターフェース#
Zynq 内部には、ロジック部分に埋め込まれた GTX トランシーバーと高速通信インターフェースブロックがあります。
その他のプログラマブルロジック拡張インターフェース#
- ADC—— XADC、独立した 12 ビット ADC が 2 つあり、各サンプリングレートは 1Msps です。
- クロック —— PL は PS から 4 つの独立したクロック入力を受け取り、さらに PS とは無関係なクロックを生成および配布できます。
- JTAG デバッグインターフェース
PS と PL の間のインターフェース#
前述のように、Zynq の性能は、2 つの構成要素 PS と PL の特性だけでなく、両者を協調させて完全で統合されたシステムを形成する能力にも依存しています。この中で重要な役割を果たすのは、2 つの部分間に橋を形成するための高度にカスタマイズされた AXI 相互接続とインターフェースのセットです。また、PS と PL の間には他のタイプの接続、特に EMIO もあります。
AXI#
高度に拡張可能なインターフェース(Advanced eXtensible Interface)。現在のバージョンは第 4 世代 AXI4 です。
AXI4#
ストレージマッピング接続に使用され、最高の性能をサポートし、最大 256 個のデータワードの転送を通じてアドレスを指定します。
AXI4-Lite#
簡略化された接続で、各転送で 1 つのデータのみをサポートします。AXI4Lite もストレージマッピングで、各転送で 1 つのアドレスと単一のデータを扱います。
AXI4-Stream#
高速ストリーミングデータ用で、無制限のサイズのデータのバルク転送をサポートします。アドレスメカニズムはなく、ソースと目的の間の直接データストリームに適しています。
EMIO インターフェース#
EMIO は 2 つのドメイン間の転送に関与し、一組の単純なワイヤ接続によって実現されます。
EBAZ4205 マイニングボード資料まとめ#
拡張版#
ebaz4205 拡張ボード - 立創オープンハードウェアプラットフォーム (oshwhub.com)
開発ボード補完#
ゼロから始める ZYNQ 学習(EBAZ4205 マイニングボードに基づく)(1)-CSDN ブログ
回路図関連#
マイニングボード回路図
Elrori/EBAZ4205: EBAZ4205 BOARD (github.com)
PCB