PYFPGA-это класс Python для развития FPGA-независимой от поставщика . Он позволяет использовать единый файл проекта и программно выполнять синтез , реализацию , генерацию битстровых и/или переноса в поддерживаемые платы.
Рабочий процесс ориентирован на командную линию.
Он дружелюбен с системами управления версиями и непрерывной интеграцией (CI).
Позволяет воспроизводить и повторять.
Потребляет меньше системных ресурсов, чем рабочие процессы на основе графического интерфейса.
Создайте свой пользовательский инструмент FPGA, используя рабочий процесс, адаптированный к вашим потребностям!
Предупреждение: (2022-05-15) PYFPGA находится в процессе сильно переписываемой/упрощенной. Большинство изменений являются внутренними, но API (класс
Project
) изменится.
Минимальный пример того, как использовать PYFPGA:
Из FPGA Import Project# Укажите инструмент Backend и необязательный проект nameprj = project ('vivado', 'example')# Установите устройство/partprj.set_part ('xc7z010-1-clg400')# Добавить источники HDL в ProjectPRJ. add_files ('location1/*. v') prj.add_files ('location2/top.v')# необязательно добавить файлы ограничения в ProjectPrj.add_files ('location3/example.xdc')# Установить блок верхнего уровня. set_top ('top')# Сгенерировать бит -фрайм, использующий toolprj.generate ()
Теперь вы можете прочитать документы или найти больше примеров в примерах поддира.
API, реализованный Project class
предоставляет:
Конструктор, в котором должен быть указан инструмент, и можно указать дополнительное имя проекта
Методы установки целевой части устройства, чтобы добавить несколько файлов HDL, ограничения и TCL в проект (в случае VHDL можно указать необязательное имя пакета) и указать верхний уровень
Методы для указания другого выходного каталога или получения некоторых конфигураций проекта
Методы генерации бит -стрижки и передачи его на устройство (запуск выбранного инструмента EDA)
Возможность определения стратегии оптимизации (область, мощность или скорость) при создании бит
Метод добавления Verilog включенных файловых каталогов
Метод для указания значений Generics/Parameters
Методы добавления команд TCL в шести разных частях потока (обходной путь для еще не реализованных функций)
Дополнительные возможности для ведения журнала, которые включают отображение времени выполнения инструмента
PYFPGA - это пакет Python 3, который разработан на Debian GNU/Linux. Он должен работать на любой другой OS, совместимой с POSIX, а также, вероятно, также на другой ОС. Если вы достигнете любого успеха сбоя в непосиксных системах, сообщите нам об этом через трекер выпуска.
Весь поток развития (от чтения ЛПВП и источников ограничений до производства бита) может быть выполнен с помощью ISE (xilinx), Vivado (xilinx), Quarts Prime (Intel/Altera), Libero-Soc (микросемоми) и/или с открытым Источники.
GDHL ( --synth
) позволяет преобразовать источники VHDL в список сети VHDL 1993.
Yosys позволяет синтезировать Verilog и VHDL (с использованием ghdl-yosys-plugin
) и поддерживает несколько выходных форматов: JSON, Verilog, EDIF и т. Д.
NextPNR может использоваться для реализации сетевых листов JSON.
Кроме того, ISE и Vivado поддерживаются для реализации Verilog Net -листов.
Передача битстрим и программирующие устройства:
ISE (воздействие) может использоваться для программирования FPGA и/или воспоминаний (BPI и SPI) через JTAG.
Vivado, Quartus и IceProg (ICESTORM, для устройств ICE40) могут использоваться для программирования FPGA.
Программирование с помощью либеро-SOC и программирования устройств ECP5 (Prjtrellis, openocd) еще не поддерживается.
Примечания:
Инструменты с открытым исходным кодом поддерживаются с изображениями контейнеров с помощью корыта из проекта GHDL/Docker, поэтому Docker или Podman должен быть установлен. Тот же рабочий процесс может быть использован в службах CI.
ISE, Libero-Soc, Quartus Prime и Vivado, должны быть готовы к выполнению из терминала (установлен и хорошо настроены).
PYFPGA требует Python >=3.6
. На данный момент он доступен только в качестве репозитория GIT, размещенного на GitHub. Он может быть установлен с помощью PIP:
pip install 'git+https://github.com/PyFPGA/pyfpga#egg=pyfpga'
На GNU/Linux установка PIP -пакетов в системе требует
sudo
. В качестве альтернативы, используйте--local
для установки PYFPGA в вашем доме.
Вы можете получить копию репозитория либо через клон GIT, либо загрузите Tarball/Zipfile:
git clone https://github.com/PyFPGA/pyfpga.git cd pyfpga
Затем используйте PIP из корня репо:
pip install -e .
С
-e
(--editable
) ваше приложение установлено в пакетирование сайтов через своего рода символическую ссылку. Это позволяет вытащить изменения через GIT или менять ветвь, без необходимости переустановить упаковку.