Files
whc-nixos/modules/fpga.nix
T
WHC cac29b4c79 Add Gowin FPGA toolchain for desktop development.
Vendor Gowin EDU IDE, add openFPGALoader/Yosys/nextpnr/Apicula, and USB udev rules for Tang boards.
2026-09-19 18:34:38 +08:00

54 lines
1.9 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 高云(Gowin)FPGA 开发:开源工具链 + 教育版 IDE + 下载器权限
# IDE 包装源自 ryan4yin/nur-packages(本地 vendoring,因上游已注释掉该包)
{ pkgs, ... }:
let
gowin-eda-edu-ide = pkgs.callPackage ../pkgs/gowin-eda-edu-ide { };
in
{
# openFPGALoader / 串口下载器
users.groups.plugdev = { };
users.users.whc.extraGroups = [
"dialout"
"plugdev"
];
# FTDI / Sipeed Tang 等常见下载器(含 TAG+=uaccess,登录用户可直接访问)
services.udev.extraRules = ''
# openFPGALoader — FTDI 常见 VID/PID(Tang Nano / Primer 等)
ACTION!="add|change", GOTO="gowin_fpga_end"
SUBSYSTEM!="usb|tty|hidraw", GOTO="gowin_fpga_end"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0664", GROUP="plugdev", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="0664", GROUP="plugdev", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE="0664", GROUP="plugdev", TAG+="uaccess"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0664", GROUP="plugdev", TAG+="uaccess"
# Sipeed / CMSIS-DAP 类
ATTRS{idVendor}=="1d50", MODE="0664", GROUP="plugdev", TAG+="uaccess"
ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="0204", MODE="0664", GROUP="plugdev", TAG+="uaccess"
LABEL="gowin_fpga_end"
'';
environment.systemPackages = with pkgs; [
# 烧录(官方 Programmer 在 NixOS 上不稳定,优先用这个)
openfpgaloader
# 开源综合 / 布局布线(Apicula → nextpnr himbaechel/gowin)
yosys
nextpnr
python3Packages.apycula
# 仿真与波形
iverilog
verilator
gtkwave
# 高云教育版 IDE:gowin-env / gowin-ide → 启动 gw_ide
# 强制 X11,避免 Wayland 下 Qt 插件崩溃
(writeShellScriptBin "gowin-ide" ''
export QT_QPA_PLATFORM=xcb
exec ${gowin-eda-edu-ide}/bin/gowin-env "$@"
'')
gowin-eda-edu-ide
];
}