Подборка свободных инструментов для программирования FPGA, включающая в себя средства поддержки языков HDL, синтезаторы, симуляторы и некоторые другие.

Yosys
Yosys -- проект по созданию свободного набора инструментов для программирования FPGA. В состав этих инструментов входят: yosys, nextpnr, icestorm, apicula, trellis. Подробнее ниже в соответствующих разделах обзора.
OSS CAD Suite -- сборка свободно-распространяемых инструментов для разработки программ для FPGA. Собирается в рамках проекта Yosys. Доступны сборки для GNU/Linux, MacOS X и Windows. Включает в себя в частности: GHDL, Icarus Verilog, nextpnr, openFPGALoader, OpenOCD, Verilator, Yosys и множество других программ.
GHDL
GHDL -- проект по разработке свободных инструментов для VHDL. Подробнее ниже в соответствующих разделах обзора.
Verilog и SystemVerilog
Yosys -- синтезатор для Verilog.
Icarus Verilog -- компилятор для Verilog.
Verilator -- компилятор, симулятор и линтер для Verilog и SystemVerilog.
Verible -- свободный набор инструментов для SystemVerilog от организации CHIPS Alliance. Включает в себя: линтер, форматер и сервер LSP.
SVLS -- сервер LSP для языка SystemVerilog.
SVLint -- линтер для языка SystemVerilog.
Veridian -- сервер LSP для языка SystemVerilog.
VHDL
GHDL -- компилятор, анализатор, симулятор и синтезатор для VHDL.
NVC -- компилятор и симулятор для VHDL. Использует LLVM для компиляции в машинный код.
VHDL Language Server -- сервер LSP для VHDL.
GHDL Yosys Plugin -- дополнение к Yosys для поддержки VHDL с использованием GHDL.
Другие языки HDL
Chisel -- HDL для описания цифровых схем уровня RTL. Chisel является DSL на базе языка программирования Scala.
SpinalHDL -- HDL, являющийся DSL на базе языка Scala. Позиционируется как альтернатива для VHDL, Verilog и SystemVerilog.
Clash -- язык HDL, имеющий синтаксис и семантику языка Haskell. Компилируется в VHDL, Verilog, SystemVerilog.
Veryl -- HDL, написанный на Rust и заимствующий из него синтаксис и некоторые возможности. Позиционируется как альтернатива SystemVerilog.
SystemC -- средства разработки на языке C++ для FPGA.
Intel Compiler for SystemC -- компилятор компании Intel языка SystemC в SystemVerilog.
Place & Route
nextpnr
nextpnr -- универсальная утилита, обеспечивающая этап Place & Route. Поддерживаются следующие чипы: Lattice iCE40, ECP5, Nexus; Gowin; Altera Cyclone V и некоторые другие. Является частью проекта Yosys.
Программаторы
openFPGALoader -- универсальная утилита для записи прошивок в FPGA различных производителей, включая Anlogic, Cologne Chip, Efinix, Gowin, Intel (Altera), Lattice, Xilinx.
Проекты поддержки чипов
IceStorm -- реверс-инжениринг, документация и примеры для чипов Lattice iCE40. Является частью проекта Yosys.
Apicula -- проект, добавляющий к Yosys поддержку чипов компании Gowin семейств LittleBe и Arora.
Trellis -- проект, добавляющий к Yosys поддержку чипов Lattice ECP5.
Oxide -- проект по добавлению в Yosys поддержки для чипов Lattice Nexus.
Mistral -- проект по добавлению к Yosys поддержки чипов Cyclone V.
Управление проектами
PYNQ -- полный цикл разработки для чипов Xilinx на языке Python с использованием сервера Jupyter.
F4PGA -- управление проектами с использованием только свободного ПО. Разрабатывается CHIPS Alliance.
PyFPGA -- управление проектами разработки под FPGA, используя язык Python.
Разное
GTKWave -- просмотрщик сигналов, записанных во время симуляции программ на Verilog и VHDL.
netlistsvg -- программа построения диаграммы связей между электронными компонентами на основе файла netlist, сгенерированного Yosys.
Сводная таблица свободных инструментов
Для удобства и оценки масштаба составил сводную таблицу, упорядочив по количеству звёзд на GitHub на момент написания статьи.
| # | Звёздность | Название | GitHub | Язык разработки | Лицензия | 
|---|---|---|---|---|---|
| 1 | 4269 | Scala | Apache 2.0 | ||
| 2 | 3813 | C++ | ISC | ||
| 3 | 3042 | C++ | GNU GPL v2 | ||
| 4 | 2888 | C++ | GNU LGPL v3 | ||
| 5 | 2556 | Ada | GNU GPL v2 | ||
| 6 | 2132 | Python | BSD 3-Clause | ||
| 7 | 1786 | SpinalHDL | Scala | GNU LGPL v3 | |
| 8 | 1537 | C++ | Apache 2.0 | ||
| 9 | 1498 | Haskell | BSD 2-Clause | ||
| 10 | 1439 | nextpnr | C++ | ISC | |
| 11 | 1327 | C++ | Apache 2.0 | ||
| 12 | 1058 | Python | ISC | ||
| 13 | 1051 | OSS CAD Suite | -- | ISC | |
| 14 | 778 | C | GNU GPL v2 | ||
| 15 | 696 | netlistsvg | JavaScript | MIT | |
| 16 | 693 | C | GNU GPL v3 | ||
| 17 | 627 | Rust | Apache 2.0 | ||
| 18 | 552 | Apicula | Python | MIT | |
| 19 | 550 | C++ | Apache 2.0 | ||
| 20 | 507 | SVLS | Rust | MIT | |
| 21 | 411 | Trellis | Python | Разные | |
| 22 | 398 | VHDL Language Server | Rust | MPL 2.0 | |
| 23 | 387 | Python | Apache 2.0 | ||
| 24 | 345 | SVLint | Rust | MIT | |
| 25 | 334 | GHDL Yosys Plugin | C++ | GNU GPL v3 | |
| 26 | 272 | Intel Compiler for SystemC | C++ | Apache 2.0 | |
| 27 | 170 | Veridian | Rust | MIT | |
| 28 | 142 | Oxide | Python | ISC | |
| 29 | 133 | Python | GNU GPL v3 | ||
| 30 | 122 | Mistral | C++ | BSD 3-Clause | 
Как мы видим, свободно-распространяемых инструментов набралось немало, а здесь перечислены не все. Эти инструменты покрывают возможно не все, но самые основные потребности разработчиков под FPGA. При этом они нетребовательны к ресурсам, работают в различных операционных системах и постоянно развиваются. И главное: они не привязаны к производителям чипов и могут использоваться с различными из них, хотя и не со всеми.
Примеры к части из этих инструментов в моей предыдущей статье Программирование FPGA Gowin с использованием свободных инструментов.
А какие свободные инструменты для FPGA используете вы? Пишите в комментариях!
(c) Симоненко Евгений, 2025
 
           
 
KeisN13
Vivado, Tcl, No xHDL
Вот я презу делал по теме этой заметки, мож пригодится кому https://t.me/fpgasystems_events/2733
easimonenko Автор
Спасибо за дополнение!