ベンダーハブ

オープンソースエコシステム

Yosys、nextpnr、openFPGALoaderの無償ツールチェーン。Lattice iCE40とECP5およびGowinを完全対応、その他を部分対応し、周辺のシミュレータとフレームワークも扱います。

本社分散(オーストリア・ウィーンのYosysHQとコミュニティ)
ウェブサイトyosyshq.net/
ツールチェーンYosys(合成)、nextpnr(配置配線)、openFPGALoader(プログラミング)、Verilator、Icarus、GHDL(シミュレーション)、cocotb、SymbiYosys(検証)、LiteX、Amaranth(フレームワーク)
ライセンスISC、MIT、GPLなどのライセンスの下で無償かつオープンソース。本稿執筆時点でYosysHQから商用サポートを提供
更新2026年11月13日

デバイスファミリ #

ファミリプロセスロジック位置づけ
Lattice iCE40 (Project IceStorm)
最初のターゲット、2015年に文書化
40 nm384-7,680 LUTsPLL、SPRAM、DSPを含むLP、HX、UltraPlusの完全対応
Lattice ECP5 (Project Trellis)
ULX3SとOrangeCrab上のLiteX SoCの主要ターゲット
40 nm12k-85k LUTsDDR I/OとSERDESを含む完全対応
Lattice Nexus (Project Oxide)
LIFCL-40が最もテスト済み、PCIeとSGMII SERDESのファジングは未完了、CertusPro-NXは本稿執筆時点で初期作業のみ
28 nm FD-SOI17k-100k LUTsファブリック機能の大半に対応するCrossLink-NX、Certus-NX、CertusPro-NX
Gowin GW1N, GW2A and GW5A (Project Apicula)
GW5A-25は対応、GW5AT-60とGW5AST-138は本稿執筆時点で基本的な設計のみ動作
55 nm / 22 nm1k-138k LUTsGW1NとGW2Aでファブリック全体、PLL、ブロックRAM、パッケージ内メモリに対応
AMD 7 series (Project X-Ray, openXC7)
本稿執筆時点でトランシーバーとPCIeは未対応、MMCMは使用可能、配置配線はVivadoより低速
28 nm6k-477k logic cellsArtix 7、Spartan 7、Zynq 7000、Kintex 7(325T、420T、480Tを含む)の部分対応
QuickLogic EOS S3 and PolarPro 3 (F4PGA)
唯一のベンダー公式オープンフロー
40 nm (EOS S3), PolarPro 3 see datasheetabout 1k-2.4k logic cellsYosysとVPRを使うベンダー公認のオープンフロー

概要

このページはオープンソースツールチェーンをあたかもベンダーであるかのように扱います。多くの人にとって、それが使うツールだからです。ベンダーのインストーラーを飛ばすかどうかを決めようとしている初心者、本番向けにこのフローを評価するエンジニア、そして何が動いて何が動かないかを知りたいすべての人のためのものです。このエコシステムは2013年にClaire WolfのVerilog合成ツールYosysで始まり、2015年にProject IceStormで成長しました。IceStormはiCE40のビットストリームをリバースエンジニアリングし、Verilogからプログラム済みチップまでの完全に無償のフローを可能にしました。nextpnrは2018年にアーキテクチャプラグインモデルを持つタイミング駆動の配置配線ツールとして登場し、ECP5、Gowin、Nexus、7シリーズ、QuickLogicデバイスを文書化するプロジェクトが続きました。ウィーンに拠点を置くYosysHQはYosys、nextpnr、SymbiYosysを保守し、商用サポートと形式検証ツールを販売しています。残りは個人、企業、大学のコミュニティによって保守されています。オープンソースツールチェーンのトピックも参照してください。

ツールチェーン

最も簡単なインストール方法はOSS CAD Suiteです。これはYosysHQによるLinux、macOS、Windows向けのナイトリービルドで、Yosys、全アーキテクチャ向けのnextpnr、openFPGALoader、Icarus Verilog、Verilator、GHDL、SymbiYosysと必要なソルバーを同梱しています。アーカイブを展開し、環境スクリプトをsourceすれば準備完了です。ほとんどのLinuxディストリビューションもこれらのツールをパッケージ化していますが、古いバージョンであることが多いです。すべて無償で、ライセンスファイル、登録、ノードロックはありません。

YosysはVerilog-2005とSystemVerilogの実用的なサブセットを読み、GHDLプラグインを通じてVHDLも扱います。nextpnrはアーキテクチャごとに配置、配線、タイミング解析を行います。openFPGALoaderはFTDI、CMSIS-DAP、ST-Link、Sipeedのブリッジを通じてプログラムし、ほぼすべてのホビーボードをカバーします。VerilatorはRTLをC++にコンパイルして高速にシミュレーションし、IcarusとGHDLはVerilogとVHDLのイベント駆動シミュレータで、cocotbを使えばそのいずれに対してもPythonでテストベンチを書けます。SymbiYosysはオープンなSMTソルバーで形式的な証明を駆動します。LiteXはソフトRISC-Vコア、DDRコントローラ、Ethernetを備えた完全なSoCを生成し、Amaranthは独自のビルドシステムを持つPythonのハードウェア記述言語です。

難点: nextpnrのタイミング解析はクロック制約を扱いパスを報告しますが、フォルスパス、マルチサイクルパス、I/O遅延の対応は商用ツールより手薄です。ILAのようなロジックアナライザはありませんが、LiteXユーザーにはLiteScopeがその穴を埋めます。大規模設計での結果の品質はベンダーツールに劣り、その差はiCE40では小さく7シリーズでは大きいです。

最初に使うボード

  • iCEBreakerはこのツールチェーンのために設計され、ドキュメントもそれを前提としています。
  • UPduino v3は最も安価なiCE40 UltraPlusボードです。
  • ULX3SとOrangeCrabは完全なオープン対応とLiteX移植のあるECP5ボードです。
  • Tang Nano 9Kはあらゆるボードの中で最も安価で、Apiculaを通じて対応しています。
  • FomuはUSBポートの中に収まり完全なフローを実行できるので、良いデモ用の一品です。

移行メモ

VivadoやQuartusから移ってくる場合、最初の違いはプロジェクトファイルがないことです。設計はソースファイル一式、ピン制約ファイル、そしてMakefileまたは短いスクリプトです。synth_ice40またはsynth_ecp5コマンドを使うyosys、次に制約と目標周波数を指定したnextpnr-ice40またはnextpnr-ecp5、次にビットストリームパッカー、そしてopenFPGALoaderです。ビルドは再現可能で、手間なくバージョン管理に収まります。

制約はターゲットの形式を使います。iCE40は.pcf、ECP5は.lpf、Gowinは.cst、openXC7は.xdcです。タイミングは--freq引数またはピンファイル内のクロック制約です。プリミティブはベンダー自身の名前(SB_PLL40_CORE、EHXPLLL、rPLL、MMCME2_BASE)で、Yosysはそれらのシミュレーションモデルを持っています。ブロックRAM、分散RAM、DSPの推論は機能し、テンプレートはベンダーツールが受け付けるものと同じです。

IPカタログはありません。ソフトコア、メモリコントローラ、ペリフェラルはLiteX、VexRiscvやNEORV32、または自分のコードから持ってきます。デバッグはまずシミュレーションで行い、VerilatorはシミュレーションしたSoC上でソフトウェアを動かせるほど高速です。

注意点

デバイスのカバー範囲が難所です。フローはiCE40、ECP5、小型Gowinデバイスでは完全で、Nexusファブリックでは良好で、7シリーズでは部分的です。7シリーズでは学習には使えますが、トランシーバー、PCIe、ハードメモリコントローラを必要とする設計には使えません。Altera、Microchip、Efinixのデバイス、およびUltraScaleやVersalのデバイスは一切対応しておらず、それらのビットストリームのドキュメントは公開されていません。ベンダーツールも立ち止まっているわけではなく、AMDとAlteraのライセンス条項はビットストリームのリバースエンジニアリングを禁じているので、7シリーズの作業は企業が依存をためらうかもしれないグレーゾーンで行われています。最後に、ナイトリービルドは変化が速いので、1年後に再ビルドする必要があるものはリリースを固定してください。