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つのブロック に分かれています。
| ブロック | 略称 | 役割 |
| プロセッシング・システム | PS | CPU・GPU・周辺回路などのソフトウェア処理側 |
| プログラマブル・ロジック | PL | FPGAファブリック。ハードウェア回路を自由に実装する側 |
この 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+ はまさに「時代のニーズに合わせて進化した万能型チップ」として、多くのエンジニアに選ばれています。

