ZYNQ に関連する共通の概念

一般的な略語

ZYNQ : ザイリンクスが発表した新世代のオール プログラマブル システム オン チップ (APSoC) で、プロセッサのソフトウェア プログラマビリティと FPGA のハードウェア プログラマビリティを完全に統合します。

PS : (Processing System)、ZYNQ は ARM と FPGA の 2 つの部分に大別され、PS は ARM の SOC 部分であり、ボード全体の処理システムです。

PL : (Progarmmable Logic)、プログラマブル ロジックを意味し、ZYNQ 上の FPGA 部分です。

MIO : (Multiuse I/O)、多機能 I/O ピン。マイクロコントローラーを学習している場合は、ARM 部分である PS 部分に属するピンの多重化として理解できます。MIO 信号は PL 部分には見えないため、MIO での操作は純粋な PS 操作と見なすことができることに注意してください。

EMIO : (Extendable Multiuse I/O)、拡張可能な多機能 IO ピン。まだ PS 部分に属しますが、PL に接続され、PL ピンからチップの外部に接続されてデータの入出力を実現します。MIO が足りない場合、PS は EMIO を駆動することで PL 部のピンを制御できます。EMIO には 64 個のピンがあります。

APU : (Application Processor Unit)、アプリケーション プロセッサ ユニット。AMD では加速処理ユニット (Accelerated Processing Unit) を指すために使用されていましたが、ZYNQ では意味がまったく異なるため、区別に注意してください。APU には、デュアル ARM-CortexA9 コアに加え、高速バッファリング、DMA、タイマー、割り込み制御、浮動小数点、NEON コプロセッシングが含まれています。これは、51 シングルチップ マイクロコンピュータの MCU と 51 の MPU に似ていると理解できます。 Cortex-MシリーズのSTM32。

しかし、APU の名前については今でも言い伝えがあります。M がなければ、それはマイクロプロセッサの名前である Micro を取り除くつもりであることを意味します。これを Application に置き換えるのは簡単ではありません。それは、アプリケーションがその上で実行できることを意味します。 、このシステムは本格的な運用が必要であることを意味します。

TTC:(Triple Time Counter)、直訳するとトリプルタイムカウンターです。実際、このカウンターには 3 つの独立したチャンネルがあり、独立してカウントできます。APB を待機して、システムまたは周辺機器にタイミングまたはカウント サービスを提供します。

WDT : 2 つのウォッチドッグ タイマーがあり、それぞれ ARM-Cortex A9 を監視するために使用されます。ソフトウェアが暴走してタイマーをクリアできない場合、一定時間が経過するとウォッチドッグがリセットされます。一般的には役に立ちません STM32 を学習していた頃、この機能は非常に強力であると感じました プログラムが暴走するかどうかを常に監視できます 後で気づいたのですが、暴走する可能性は非常に低いです 電流の安定性ボードは非常に優れているため、今は見ていません。ウォッチドッグが機能していることは確認しましたが、これはリスク保護でもあります。

SWDT : システム レベルのウォッチドッグ タイマー。このウォッチドッグのクロックとリセット信号はチップの外部から送信されるため、クロック周波数自体に問題があるなど、システムに重大な障害が発生した場合でも、問題を無視して通過することができます。外部信号がカウントし、カウントがフルになるとリセットされます。

SCU : (スヌープ コントロール ユニット)。デュアル コア間でデータ キャッシュの一貫性を維持するために使用されます。2 つの ARM-Cortex A9、一方がストレージに書き込む場合、メイン メモリではなくキャッシュにのみ書き込まれます。 2 番目の A9 読み取り この操作には最初のダーティ データ セグメントが含まれるため、SCU は 2 番目の A9 キャッシュに最新のデータがあることを確認する必要があります。SCU の存在により、2 つのコアが「デュアル コア」に相互接続され、MPsoc になります。

ZYNQ の紹介

ZYNQ の重要な機能は、デュアルコア ARM Cortex-A9 プロセッサと従来のフィールド プログラマブル ゲート アレイ ( FPGA ) ロジック ユニットを組み合わせていることです。この新デバイスのプログラマブル ロジック部分はザイリンクス 28nm プロセスの 7 シリーズ FPGA をベースとしているため、7 シリーズ FPGA との一貫性を維持するために、このシリーズの製品名に「7000」が追加されています。また、将来の使用にも便利です。このシリーズの FPGA の開発、製品のネーミング。

以前は、SoC という用語は、特定用途向け集積回路 (ASIC) を指すのによく使用されていました。

プログラマブル システム オン チップ (SOPC、システム オン プロガマブル チップ) は、上記のアプリケーションに対してより柔軟なソリューションを提供します。つまり、プログラマブルで再構成可能なチップ上に実装された SoC です。このうちプログラマブルチップとはFPGAのことを指します。

SOPC と比較して、ZYNQ は柔軟な SoC にとってより理想的なプラットフォームを提供します。ザイリンクスはこれを「All-Programmable System-on-Chip (APSoC、All-ProgrammableSoC)」としています。プロセッサのソフトウェア プログラマビリティと FPGA のハードウェア プログラマビリティを完全に統合し、比類のないシステム パフォーマンス、柔軟性、拡張性を提供します。

ZYNQ では、ARM Cortex-A9 は Linux などのオペレーティング システムを実行できるアプリケーション レベルのプロセッサであり、プログラマブル ロジックは Xilinx7 シリーズの FPGA アーキテクチャに基づいています。ZYNQ アーキテクチャは業界標準の AXI インターフェイスを実装しており、チップの 2 つの部分間の高帯域幅、低遅延の接続を可能にします。これは、2 つの個別のデバイス間のインターフェイスのオーバーヘッドを発生させることなく、プロセッサーとロジックをそれぞれ最大限の利点を活用して使用できることを意味します。

ZYNQ PL の紹介

ZYNQ PL部分はXilinx 7シリーズFPGAと同等

簡略化された FPGA の基本構造は 6 つの部分で構成されます

  1. プログラマブルI/Oユニット

  2. 基本的なプログラマブル ロジック ユニット

    基本プログラマブル ロジック ユニットはプログラマブル ロジックの本体であり、その内部接続と構成を設計に応じて柔軟に変更して、さまざまなロジック機能を完成させることができます。FPGA は一般に SRAM テクノロジーに基づいており、その基本的なプログラマブル ロジック ユニットはほぼルックアップ テーブル(LUT、LookUpTable) とレジスタ(Register) で構成されます。Xilinx7 シリーズ FPGA の内部ルックアップ テーブルには6 つの入力があり、通常、ルックアップ テーブルは純粋な組み合わせ論理関数を完成させますFPGA の内部レジスタ構造は非常に柔軟であり、同期/非同期リセットまたはセット、クロック イネーブルを備えたフリップフロップとして、またはラッチとして構成できます。FPGA はレジスタに依存して同期シーケンシャル ロジック デザインを完了します

    基本的なプログラマブル ロジック ユニットのより古典的な構成は、レジスタとルックアップ テーブルですが、異なるメーカーのレジスタとルックアップ テーブル、およびレジスタとルックアップの組み合わせモードには一定の違いがあります。テーブルも違います。

    アルテラのプログラマブル ロジック ユニットは通常 LE (LogicElement) と呼ばれ、レジスタと LUT で構成されます。アルテラのほとんどの FPGA は、10 個の LE を有機的に組み合わせて、より大きな機能ユニットであるロジック アレイ モジュール (LAB、LogicArrayBlock) を形成します。LE に加えて、LAB には、LE 間のキャリー チェーン、LAB 制御信号、ローカル相互接続ライン リソース、LUT カスケード チェーン、レジスタ カスケード チェーン、その他の接続および制御リソースも含まれます。

    ザイリンクス 7 シリーズ FPGA のプログラマブル ロジック ユニットは CLB (Configurable Logic Block、構成可能な論理ブロック) と呼ばれ、各 CLB には 2 つのロジック スライス (Slice) が含まれています。各スライスは、4 つのルックアップ テーブル、8 つのフリップフロップ、およびその他のロジックで構成されます。

ここに画像の説明を挿入

CLB は論理ユニットの最小コンポーネントであり、PL 内に 2 次元アレイとして配置され、プログラマブル相互接続を通じて他の同様のリソースに接続されます。各 CLB には 2 つのロジック スライスが含まれており、スイッチ マトリックスに隣接しています。

ここに画像の説明を挿入

  1. 組み込みブロック RAM

    現在、ほとんどの FPGA にはブロック RAM (BlockRAM) が組み込まれており、FPGA にはプログラマブル RAM モジュールが組み込まれており、FPGA のアプリケーション範囲と柔軟性が大幅に拡張されています。

  2. ルーティングリソース

    配線リソースは FPGA 内のすべてのユニットを接続し、接続の長さとプロセスによって、接続上の信号の駆動能力と伝送速度が決まります。FPGA チップ内には豊富な配線リソースがあります。

  3. 基礎となる組み込み機能ユニット

    基盤となる組み込み機能ユニットの概念は比較的一般的であり、ここでは PLL (PhaseLockedLoop)、DLL (DelayLockedLoop)、DSP、CPU などの汎用性の高い組み込み機能モジュールを指します。

  4. 専用ハードコアを内蔵

    ここでいう組み込み専用ハードコアとは、これまでの基盤となる組み込みユニットとは異なり、主に汎用性が比較的弱いものを指しますが、すべてのFPGAデバイスにハードコアが含まれているわけではありません。

    ZYNQ の PL 側には、ハードコアであるデジタルとアナログのハイブリッド モジュールである XADC があります。XADC には、2 つのアナログ - デジタル コンバータ (ADC)、アナログ マルチプレクサ、オンチップ温度センサーおよびオンチップ電圧センサーなどが含まれています。このモジュールを使用してチップ温度と電源電圧を監視したり、外部アナログ電圧信号を測定したりすることもできます。

ZYNQ PL アーキテクチャ
ここに画像の説明を挿入

ZYNQ PS の紹介

ZYNQ は実際にはプロセッサ中心のシステムであり、PL はその周辺機器の 1 つにすぎません。Zynq-7000 シリーズのハイライトは、完全な ARM プロセッサ システムが含まれていることです。プロセッサ システムにはメモリ コントローラーと多数のペリフェラルが統合されているため、Cortex-A9 プロセッサはプログラマブル ロジック ユニットから完全に独立しています。そして実は、ZYNQではPLとPSの電源回路が独立しており、使用しない場合にはPSまたはPL部分の電源をオフにすることができます。

FPGA のプログラマブル ロジック リソースを使用して構築されたプロセッサは「ソフト コア」プロセッサと呼ばれ、その利点はプロセッサの数と実装の柔軟性にあります。

ZYNQ には、シリコン チップ上に最適化された専用のハードウェア回路である「ハードコア」プロセッサが統合されており、ハードコア プロセッサの利点は、比較的高いパフォーマンスが得られることです。さらに、ZYNQ のハードウェア プロセッサとソフト コア プロセッサは競合しないため、PL ロジック リソースを使用して、ARM ハード コア プロセッサと連携する Microblaze ソフト コア プロセッサを構築できます。

Zynq プロセッサ システムには、ARM プロセッサだけでなく、アプリケーション処理ユニット (アプリケーション プロセッシング ユニット、APU) を形成する一連の関連処理リソース、および拡張ペリフェラル インターフェイス、キャッシュ メモリ、メモリ インターフェイス、インターコネクトもあります。インターフェースやクロック生成回路など

ZYNQ プロセッサ システム (PS) の概略図を以下に示します。赤色で強調表示された領域は APU です。

ここに画像の説明を挿入

  1. APU

ここに画像の説明を挿入

APU は主に 2 つの ARM プロセッサ コアで構成されており、それぞれのコアは、NEONTM メディア処理エンジン (MediaProcessingEngine、MPE) と浮動小数点ユニット (FloatingPointUnit、FPU)、メモリ管理ユニット (MemoryManagementUnit 、MMU) といういくつかの計算ユニットに関連付けられています。 ); および 1 次キャッシュ メモリ (命令とデータの 2 つの部分に分割)。APU には 2 次キャッシュ メモリもあり、さらに 2 つの ARM プロセッサによって共有されるオンチップ メモリ (OnChipMemory、OCM) もあります。最後に、一貫性制御ユニット (SnoopControlUnit、SCU) が、ARM コアと 2 次キャッシュおよび OCM メモリとの間にブリッジ接続を形成します。SCU は PL との接続も部分的に担っており、このインターフェイスは図ではマークされていません。

  1. 外部インターフェース

ここに画像の説明を挿入

Zynq PS は、PS と PL の間、およびPS と外部コンポーネントの間の両方に多数のインターフェイスを実装します。PS と外部インターフェイス間の通信は、主に多重化入出力 (MultiplexedInput/Output、MIO) を通じて実現されます。これは、柔軟に構成できる 54 個のピンを提供し、外部デバイスとピン間のマッピングをオンデマンドで定義できることを示しています。 。54 ピンを超える拡張が必要な​​場合は、**MIO を拡張する (ExtendedMIO、EMIO)** ことで実現できます。EMIO は PS と外部接続の間の直接パスではなく、PL の I/O リソースを共有することで実現できます。達成するために。

  1. メモリインターフェース

    Zynq-7000APSoC のメモリ インターフェイス ユニットは、ダイナミック メモリ コントローラーといくつかのスタティック メモリ インターフェイス ブロックで構成されます。ダイナミック メモリ コントローラーは、DDR3、DDR3L、DDR2、または LPDDR2 に使用できます。スタティック メモリ コントローラーは、NAND フラッシュ インターフェイス、Quad-SPI フラッシュ インターフェイス、パラレル データ バス、およびパラレル NOR フラッシュ インターフェイスをサポートします。

  2. オンチップメモリ

    オンチップ メモリには、256kB の RAM (OCM) と 128kB の ROM (BootROM) が含まれます。OCM は 2 つの 64 ビット AXI スレーブ インターフェイス ポートをサポートします。1 つのポートは APUSCU を介した CPU/ACP アクセス専用で、もう 1 つのポートは PS および PL 内の他のすべてのバス マスターによって共有されます。BootROM は ZYNQ チップ上の不揮発性メモリで、ZYNQ でサポートされるコンフィギュレーション デバイスのドライバーが含まれています。BootROM はユーザーには見えず、起動プロセス専用に予約されています。

  3. AXIインターフェイス

    ZYNQ は、高性能 ARMCotex-A シリーズ プロセッサと高性能 FPGA を単一チップに緊密に組み合わせており、サイズと消費電力の削減、設計リスクの軽減、設計の柔軟性の向上など、設計に多くの利点をもたらします。異なるプロセス特性を持つプロセッサーと FPGA を 1 つのチップ上に統合した後、オンチップ プロセッサーと FPGA 間の相互接続パスが ZYNQ チップ設計の最優先事項になります。CotexA9 と FPGA 間のデータ通信がボトルネックになると、プロセッサと FPGA の組み合わせによるパフォーマンスの利点を活かすことができなくなります。

    ザイリンクスは、AXI プロトコルを使用して Spartan-6 および Virtex-6 シリーズの IP コアを接続します。7 シリーズおよび ZYNQ-7000 AP SoC デバイスでは、ザイリンクスは IP コアで AXI プロトコルを引き続き使用します。AXI の正式な英語名は Advanced eXtensible Interface で、ARM が提案する AMBA (Advanced Microcontroller Bus Architecture) プロトコルの一部であり、高度な拡張可能なインターフェイスです。

    AXI プロトコルは、次の特性を備えた高性能、高帯域幅、低遅延のオンチップ バスです。

    1. バスのアドレス/制御チャネルとデータチャネルは分離されています
    2. アライメントされていないデータ転送のサポート
    3. バースト送信をサポートします。バースト送信中に必要なのは最初のアドレスのみです。
    4. 個別の読み取り/書き込みデータ チャネルがある。
    5. 重要な転送アクセスとアウトオブオーダーアクセスをサポートします。
    6. タイミングクロージャが容易になります。

おすすめ

転載: blog.csdn.net/inv1796915552/article/details/129347940