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

от автора

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

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Если Вы профессионал или опытный любитель FPGA, используете ли какие-либо свободные инструменты?

28.57% Да2
42.86% Нет3
28.57% Не знаю2

Проголосовали 7 пользователей. Воздержались 2 пользователя.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Если Вы профессионал или опытный любитель FPGA, какие HDL из перечисленных Вы используете?

100% Verilog5
40% SystemVerilog2
60% VHDL3
0% Chisel0
0% SpinalHDL0
0% Clash0
0% Veryl0
0% SystemC0
0% Другой (напишу в комментариях)0

Проголосовали 5 пользователей. Воздержались 3 пользователя.

ссылка на оригинал статьи https://habr.com/ru/articles/910888/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *