FPGA Series
FPGA シリーズ:Zynq 組み込みシステム設計実践全集
アーキテクチャ解析から3大プロジェクト実践まで、Zynq-7000 ソフトウェア・ハードウェア協調設計の全工程をカバー。29本の実践記事、5段階で積み上げ、オープンソース FPGA ツールチェーン拡張シリーズ付き。
このシリーズの目標はただ一つ:Pynq-Z2(XC7Z020)上で、ゼロから Linux を動かし、PL でハードウェアアクセラレーションを行い、ネットワーク・デバイス連携できるリアルな Zynq システムを構築すること。そして各ステップの「なぜそうするのか」と「どんな落とし穴があったか」を明確に解説する。ツールチェーンは Vivado / Vitis / PetaLinux 2023.2 で統一。
ナレッジマップと推奨読書順序
PS → PL → Linux → Projectまず Zynq 本編で PS/PL、AXI、Linux、ドライバ、プロジェクト実践の流れを作り、オープンソース FPGA ツールチェーンは独立した拡張として読むのがおすすめです。
Track A · ハードウェア基礎
Zynq-7000 のアーキテクチャ解析から、Vivado フロー、PS 設定、AXI プロトコル、カスタム IP、完全なハードウェアプラットフォーム設計まで。7本で「チップデータシート」から「動く .xsa ファイル」への全工程を繋ぐ。
Track B · Linux システム層
PetaLinux 構築の落とし穴、FSBL から U-Boot の起動チェーン、キャラクタデバイスドライバ骨格、UIO・/dev/mem・カーネルドライバ 3 つの PL アクセス方法。4本で Linux を本当に動かし PL を制御する。
Track C · ドライバ開発層
AXI DMA エンジンドライバ(実測 803 MB/s)、VDMA + HDMI 1080p ビデオパイプライン、AXI-Stream 高速 ADC。3本でデータを本当に高速に流す。
Track D · 高度機能層
Vitis HLS、PYNQ、lwIP ネットワーク、OpenAMP デュアルコア、セキュアブート、Vitis AI デプロイ、システム信頼性、混合クリティカリティ。9本で Zynq の高度な能力をカバー。
C でハードウェア IP を書く正しい方法
Jupyter から Python で PL を制御
lwIP + ギガビット Ethernet で使える HTTP サーバ
Linux + ベアメタル同時実行(デュアルコア AMP)
FSBL 暗号化 + RSA 署名 + eFuse プログラミング
学習済みモデルを PL アクセラレータで推論
ウォッチドッグ・ECC メモリ保護・障害回復
TrustZone 分離 + FreeRTOS + Linux 共存
Track E · エンジニアリング実践
協調シミュレーション(QEMU)、Git + CI/CD、Capstone 音声 FFT、3 大プロジェクト(データ収集・マシンビジョン・産業ゲートウェイ)、そして 29 章の知識体系総括で締めくくる。
Track F · オープンソース FPGA ツールチェーン
独立拡張シリーズ:iCEstick / ECP5 / Gowin 国産 FPGA、NextPnR タイミング、SymbiYosys 形式検証、LiteX SoC、cocotb シミュレーション、オープンソース HLS、MicroLED コントローラ、CI/CD。10本で Vivado を離れてオープンソース路線へ。
iCEstick 全オープンソースツールチェーン
NextPnR 制約・クリティカルパス・違反修正
SymbiYosys + SMT で RTL の正しさを証明
VexRiscv CPU + DDR3 + Ethernet フル構成
Python でテストベンチ、Verilog testbench 卒業
HDMI + SD カード + ESP32 連携
Tang Nano 9K オープンソース全フロー
Bambu vs Vitis HLS:無料で C→RTL
MicroLED ドライバコントローラ:要件から FPGA 実装まで
GitHub Actions 自動合成 + シミュレーション + タイミングレポート
推奨読書順序
初めてこのシリーズを読む場合は、Track A → B → C → D → E の順で進むことをお勧めします。各トラックは前のトラックを基盤としています。Linux ドライバに慣れている場合は、Track C または D の興味のある記事から直接始められます。Track F は独立したオープンソースツールチェーン拡張で、Zynq ボードに依存せず、いつでも始められます。