🟪 FPGA回路生成AI¶
手持ちのFPGAは以下の3種類。回路設計は初学者レベルなので、AIにやってもらう。人間は部品調達と半田付けを担当する。
Tang Nano 9K(Gowin GW1NR-9)、秋月電子通商で購入、3,780円
iCESugar(ICE40UP5k)、AliExpressで購入、5,224円
Lattice ECP5 Colorlight i5、ebayで購入、73.81ドル
開発環境はWindows 11で構築する。Visual Studio Code上のClaude Codeで遠隔操作してもらう予定。
Gowin EDA: Tang Nano 9K用開発環境
Yosis: 論理合成、FPGAの基本要素に変換
nextpnr: 配置配線、チップ上の配置と配線
IceStorm / Project Trilles: 実際のビットストリームに変換するツール
🟩 1. Tang Nano 9K¶
Sipeed製のボードで、中国Gowin社のFPGAを載せています。
ロジック規模: 約8,640 LUT4、ブロックRAM 約468Kbit、乗算器20個、PLL 2個
特徴: 64Mbit の PSRAM をチップに内蔵しているので、外付けRAMなしで大きめのバッファを持てます
ボード: HDMIコネクタ、RGB LCDコネクタ、LED 6個、ボタン 2個、USB-C(書き込み・UARTはBL702が担当)、27MHzクロック
開発環境: Gowin EDA(教育版は無料)。オープンソースの Project Apicula + Yosys + nextpnr-gowin も使えます
向いている用途: HDMI出力の実験、PicoRV32などのソフトCPU、LCD表示。値段に対して機能が多く、入門用として定番です
🟩 2. iCESugar¶
MuseLab製です。iCE40はビットストリームが解析済みで、オープンソースFPGA開発の元祖にあたる石です。
ロジック規模: 5,280 LUT4、EBR 120Kbit、SPRAM 1Mbit(128KB)、DSP(16×16 MAC)8個、PLL 1個
特徴: 消費電力が非常に小さいです。I2C/SPIのハードIPとRGB LEDドライバを内蔵しています
ボード: 書き込み用のiCELink(STM32)を載せていて、PCからUSBメモリとして見えるので、.binファイルをドラッグ&ドロップするだけで書き込めます。PMODコネクタ、RGB LED、12MHzクロック
開発環境: Yosys + nextpnr-ice40 + IceStorm の完全オープンソース構成が主流です(Lattice Radiantも可)
向いている用途: オープンソースのツールチェーンを学ぶ入門用、小さなステートマシンやペリフェラルの実験。3枚の中では一番小規模です
🟩 3. Colorlight i5(Lattice EPC5)¶
LEDビジョンの受信カードを作っているColorlight社のFPGAモジュールです。ノートPCのメモリと同じSO-DIMM形状で、拡張ボード(キャリアボード)に差して使います。3枚の中では最上位です。
ロジック規模: LFE5U-25F(約24K LUT)、ブロックRAM 約1Mbit、乗算器(18×18)28個、PLL 2個。同じ形状のi9はLFE5U-45F(約44K LUT)です
モジュール: 8MB SDRAM(32bit幅)、4MB SPI Flash、ギガビットEthernet PHY×2、25MHzクロック
拡張ボード: USB-C(USB-JTAGとUARTを兼ねます)、HDMI出力、ピンヘッダ P1〜P6、JTAGピン、電源ボタン
開発環境: Yosys + nextpnr-ecp5 + Project Trellis の完全オープンソース構成。Lattice Diamondも使えます。書き込みは openFPGALoader が使えます
向いている用途: LiteX + VexRiscv で Linux を動かす(LiteXが colorlight_i5 として正式に対応しています)、SDRAMを使ったSoC、HDMI出力の実験
🟩 4. 開発環境¶
具体的なFPGA回路設計はClaudeに丸投げなので、開発環境の操作もVisual Studio Code上のClaude Codeにやってもらう。なので、本wikiの操作説明はClaudeに投げたプロンプトぐらいしかない場合がある。
🟨 4.1 Gowin EDA¶
Tang Nano 9K用統合環境。Yosis+nextpnr+packerで開発する方法もあるが、一部機能が開発中となっている。
🟨 4.2 yosis¶
Verilogを読み込み、FPGAの基本要素(LUT、フリップフロップ、BRAM、DSP)の組み合わせに変換します。チップの系統ごとに専用コマンドがあり、synth_ice40、synth_ecp5、synth_gowin のように使い分けます。3系統で共通に使うツールです。
🟨 4.3 nextpnr¶
合成結果をチップ上のどこに置き、どう配線するかを決めます。タイミング解析もここで行い、到達できる最大クロック周波数を表示してくれます。ピンの割り当ては制約ファイルで指定します(iCE40は .pcf、ECP5は .lpf、Gowinは .cst)。
🟨 4.4 packer¶
各社が公開していないビットストリームの形式を、リバースエンジニアリングで解析したプロジェクトです。nextpnrが使うチップの内部構造データと、配置配線の結果を実際のビットストリームに変換するツールを提供しています。