Zynq UltraScale+って、そもそもナニ?

はじめに:「FPGA」と「CPU」、どっちがいいの?

電子機器の設計をしていると、こんな場面によく出くわします。

「処理が複雑すぎてFPGAだけでは組みにくい。でも、CPUだけじゃリアルタイム性が足りない」

FPGAは自由に回路を書き換えられる柔軟さが強みですが、ソフトウェアで複雑なアルゴリズムを動かすのは苦手です。一方、CPUはソフトウェアが書きやすく処理が柔軟ですが、マイクロ秒・ナノ秒の世界で確実にタイミングを守る、という仕事は不得意です。

「だったら、両方いっぺんに入れてしまえばいいじゃないか」 という発想から生まれたのが、AMD(旧Xilinx)の Zynq UltraScale+ です。

Zync UltraScale+の正体

Zynq UltraScale+ は、ひとことで言うと 「FPGAファブリック+マルチコアCPU+各種専用回路を1チップに集積した SoC(System-on-Chip)」 です。正式には MPSoC(Multi-Processor System-on-Chip) と呼ばれています。「マルチプロセッサ」の名が示すとおり、複数の種類のプロセッサを内蔵しているのが特徴で、チップの中身はざっくり 2つのブロック に分かれています。

ブロック略称役割
プロセッシング・システムPSCPU・GPU・周辺回路などのソフトウェア処理側
プログラマブル・ロジックPLFPGAファブリック。ハードウェア回路を自由に実装する側

この PS と PL が 高速な内部バス でつながれており、FPGAとCPUが「別チップ間の通信」ではなく チップ内部で直接やりとり できるのが、従来の「FPGAボード+CPUボード」構成との大きな違いです。

PSの中身をもう少し詳しく

PS(プロセッシング・システム)の内部には、さらに複数のプロセッサが同居しています。

  • アプリケーションプロセッサ(APU)
    ARM Cortex-A53 が最大4コア搭載されています。64ビット対応のコアで、LinuxやRTOSなどのOS上でリッチなアプリケーションを動かすことができます。「PCに近い」使い方をする部分、と思ってください。
  • リアルタイムプロセッサ(RPU)
    ARM Cortex-R5F が2コア搭載されています。Cortex-A53より処理能力は落ちますが、リアルタイム性(決められた時間内に確実に処理を終わらせる能力)が高いのが特徴です。モーター制御・安全監視・通信プロトコル処理など、「絶対に遅れてはいけない」仕事を担当します。
  • GPU
    ARM Mali-400 が内蔵されています。産業用HMI(タッチパネル表示器など)やカメラ画像のプレビューといった グラフィックス処理 に使えます。
  • PMC(プラットフォーム管理コントローラ)
    チップ全体の電源管理・セキュア起動・ウォッチドッグなどを管理する「縁の下の力持ち」的なプロセッサです。

PLの中身──UltraScale+ アーキテクチャとは

PL側は UltraScale+アーキテクチャ のFPGAファブリックです。Xilinx(現AMD)の世代名で言うと「第3世代のUltraScale」にあたり、以下のようなリソースが豊富に用意されています。

  • LUT(Look-Up Table):論理演算を実現する基本ブロック
  • DSPブロック:乗算・積和演算をハード実装した演算専用回路
  • BRAM(ブロックRAM):チップ内蔵のメモリ
  • GTトランシーバ:10Gbps~数十Gbpsの高速シリアル通信(PCIe、10GbE、DisplayPortなど)

FPGAに慣れた設計者なら、「いつものFPGA」として違和感なく使えます。

RF-SoCとMPSoC、どう違うの?

Zynq UltraScale+には、大きく分けて 2つのファミリー があります。

MPSoC(EG/CG/EV シリーズ)

上で説明した「PS+PL」の構成が基本です。産業機器・通信インフラ・医療機器・自動車など 幅広い用途 に向けた汎用ラインナップです。一部のEVシリーズには H.264/H.265ビデオコーデック や AIエンジン(初期世代) も内蔵されています。

RF-SoC(RFシリーズ)

MPSoCの構成に加え、RF(無線周波数)データコンバータ がチップ内部に直接搭載されています。これが最大の特徴です。

具体的には:

回路役割
RF-ADC(アナログ→デジタル変換)GHzオーダーのRF信号を直接サンプリング
RF-DAC(デジタル→アナログ変換)デジタルデータをそのままRF信号として出力
DDC/DUC(デジタルダウン/アップコンバータ)周波数変換・フィルタリング処理をハードで実装

従来のシステムでは「アンテナ → ミキサ → IF段 → ADC → FPGA」という長い信号処理チェーンが必要でしたが、RF-SoCを使うと アンテナからほぼ直接FPGAに信号を取り込める(「ダイレクトサンプリング」)ため、ボードサイズの大幅な縮小と低消費電力化が実現できます。

どんなところで使われているの?

  • 5G基地局・通信インフラ
    RF-SoCは 5G NR(New Radio) の基地局(特にO-RUやMassive MIMO)での採用が急増しています。多数のアンテナからの信号をリアルタイムで処理するために、RF-SoCの「信号取り込み→デジタル処理→送信」をワンチップでこなせる能力が不可欠です。
  • ソフトウェア定義無線(SDR)
    周波数や変調方式をソフトウェアで柔軟に変更できるSDR機器に最適です。研究開発・電波監視・軍事通信などに使われています。
  • レーダー・センシング
    自動車向けミリ波レーダーや気象レーダー、工業用距離センサーなど、高速なアナログ信号の取り込みとリアルタイム処理 が求められる分野で活躍します。
  • テスト&メジャメント機器
    オシロスコープ・スペクトラムアナライザ・信号発生器など、高精度な信号処理が必要な計測機器にも採用されています。
  • 産業用機器・ロボット
    MPSoCの豊富なCPUリソースとFPGAの組み合わせで、モーション制御・ビジョン処理・安全機能 をひとつのチップに統合できます。

開発環境は?

Zynq UltraScale+ の開発には、主に以下のツールを使います。

  • Vivado:PLのFPGA設計(論理合成・配置配線)ツール
  • Vitis:PS側のソフトウェア(C/C++)開発統合環境。FPGAとソフトウェアの協調設計もここで行う
  • PetaLinux:Zynq向けに最適化されたLinuxビルドツール
  • MATLAB/Simulink + HDL Coder:RF-SoCの信号処理アルゴリズムをモデルベースで開発してFPGA実装に変換

「ハードとソフトを同時に開発する」という性質上、ツールチェーンは少し複雑ですが、近年は Vitis HLS(高位合成) によってC言語でFPGA向け回路を生成できるため、ソフトウェアエンジニアが取り組みやすくなっています。

まとめ:Zynq UltraScale+ は「ひとつのボードに載せる設計チーム全員」

担当業務Zynq UltraScale+内の担当
OS・アプリ開発Cortex-A53 (APU)
リアルタイム制御Cortex-R5F (RPU)
ハードウエア設計PLのFPGAファブリック
RF・アナログ回路設計RF-ADC / RF-DAC (RF-SoCのみ)
グラフィクスMali-400のGPU
電源・セキュリティ管理PMC

Zynq UltraScale+ の本質は、「用途に合わせて最適な処理器を選んで使える、オールラウンドな1チップ」 です。FPGAの柔軟さとCPUの使いやすさ、そしてRF回路の信号処理能力を一体化させることで、「ボードに複数チップを並べていた時代」と比べて、小型化・低消費電力・開発効率の向上 を同時に実現できます。

5Gや自動運転、エッジAIといったキーワードが飛び交う現代の設計現場で、Zynq UltraScale+ はまさに「時代のニーズに合わせて進化した万能型チップ」として、多くのエンジニアに選ばれています。