Как стать автором
Обновить

Свободные инструменты для программирования FPGA

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.6K

Подборка свободных инструментов для программирования 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

Chisel

chipsalliance/chisel

Scala

Apache 2.0

2

3813

Yosys

YosysHQ/yosys

C++

ISC

3

3042

Icarus Verilog

steveicarus/iverilog

C++

GNU GPL v2

4

2888

Verilator

verilator/verilator

C++

GNU LGPL v3

5

2556

GHDL

ghdl/ghdl

Ada

GNU GPL v2

6

2132

PYNQ

Xilinx/PYNQ

Python

BSD 3-Clause

7

1786

SpinalHDL

SpinalHDL/SpinalHDL

Scala

GNU LGPL v3

8

1537

Verible

chipsalliance/verible

C++

Apache 2.0

9

1498

Clash

clash-lang/clash-compiler

Haskell

BSD 2-Clause

10

1439

nextpnr

YosysHQ/nextpnr

C++

ISC

11

1327

openFPGALoader

trabucayre/openFPGALoader

C++

Apache 2.0

12

1058

IceStorm

YosysHQ/icestorm/

Python

ISC

13

1051

OSS CAD Suite

YosysHQ/oss-cad-suite-build

--

ISC

14

778

GTKWave

gtkwave/gtkwave

C

GNU GPL v2

15

696

netlistsvg

nturley/netlistsvg

JavaScript

MIT

16

693

NVC

nickg/nvc

C

GNU GPL v3

17

627

Veryl

veryl-lang/veryl

Rust

Apache 2.0

18

552

Apicula

YosysHQ/apicula

Python

MIT

19

550

SystemC

accellera-official/systemc

C++

Apache 2.0

20

507

SVLS

dalance/svls

Rust

MIT

21

411

Trellis

YosysHQ/prjtrellis

Python

Разные

22

398

VHDL Language Server

VHDL-LS/rust_hdl

Rust

MPL 2.0

23

387

F4PGA

chipsalliance/f4pga

Python

Apache 2.0

24

345

SVLint

dalance/svlint

Rust

MIT

25

334

GHDL Yosys Plugin

ghdl/ghdl-yosys-plugin

C++

GNU GPL v3

26

272

Intel Compiler for SystemC

intel/systemc-compiler

C++

Apache 2.0

27

170

Veridian

vivekmalneedi/veridian

Rust

MIT

28

142

Oxide

gatecat/prjoxide

Python

ISC

29

133

PyFPGA

PyFPGA/pyfpga

Python

GNU GPL v3

30

122

Mistral

Ravenslofty/mistral

C++

BSD 3-Clause

Как мы видим, свободно-распространяемых инструментов набралось немало, а здесь перечислены не все. Эти инструменты покрывают возможно не все, но самые основные потребности разработчиков под FPGA. При этом они нетребовательны к ресурсам, работают в различных операционных системах и постоянно развиваются. И главное: они не привязаны к производителям чипов и могут использоваться с различными из них, хотя и не со всеми.

Примеры к части из этих инструментов в моей предыдущей статье Программирование FPGA Gowin с использованием свободных инструментов.

А какие свободные инструменты для FPGA используете вы? Пишите в комментариях!

(c) Симоненко Евгений, 2025

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Если Вы профессионал или опытный любитель FPGA, используете ли какие-либо свободные инструменты?
38.89% Да7
50% Нет9
11.11% Не знаю2
Проголосовали 18 пользователей. Воздержались 8 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Если Вы профессионал или опытный любитель FPGA, какие HDL из перечисленных Вы используете?
78.95% Verilog15
52.63% SystemVerilog10
42.11% VHDL8
5.26% Chisel1
5.26% SpinalHDL1
0% Clash0
0% Veryl0
0% SystemC0
5.26% Другой (напишу в комментариях)1
Проголосовали 19 пользователей. Воздержались 11 пользователей.
Теги:
Хабы:
+14
Комментарии2

Публикации

Ближайшие события