🟪 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が使うチップの内部構造データと、配置配線の結果を実際のビットストリームに変換するツールを提供しています。

🟩 Contents: