Skip to main content

gf-fusesoc

FuseSoC build system integration for GateFlow. Generates .core files and drives synthesis/simulation through Edalize backends (Vivado, Quartus, open-source tools). Use when the user needs to create a FuseSoC core file, build with Edalize, or integrate RTL into a FuseSoC project.

소스 정보

저장소
codejunkie99/Gateflow-Plugin
최근 소스 활동
2026년 4월 15일 07:56
감지된 SKILL.md 언어
영어
스타
117
포크
16

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
gf-fusesoc
description
FuseSoC build system integration for GateFlow. Generates .core files and drives synthesis/simulation through Edalize backends (Vivado, Quartus, open-source tools). Use when the user needs to create a FuseSoC core file, build with Edalize, or integrate RTL into a FuseSoC project.
user-invocable
true
triggers
["create a FuseSoC core file","build with Edalize","FuseSoC integration","generate .core file","Vivado build via FuseSoC","Quartus synthesis with FuseSoC","set up FuseSoC project","fusesoc build"]
allowed-tools: - Bash - Read # GF-FuseSoC -- Build System Integration Generate FuseSoC .core files and drive builds through Edalize backends. ## .core File Template ```yaml CAPI=2: name: ::my_project:1.0.0 filesets: rtl: files: [rtl/top.sv, rtl/fifo.sv] file_type: systemVerilogSource tb: files: [tb/tb_top.sv] file_type: systemVerilogSource constraints: files: - constraints/arty_a7.xdc: {file_type: xdc} targets: sim: filesets: [rtl, tb] toplevel: tb_top default_tool: verilator synth: filesets: [rtl, constraints] toplevel: top default_tool: vivado tools: vivado: part: xc7a35ticsg324-1L ``` ## Complete .core Schema ```yaml CAPI=2 name: vendor:library:name:version # VLNV identifier (required) description: "Brief description" filesets: rtl: file_type: systemVerilogSource files: - rtl/top.sv - rtl/core.sv depend: - ">=vendor:lib:dep:1.0" tb: files: [tb/tb_top.sv] file_type: systemVerilogSource constraints_ice40: files: [constraints/ice40.pcf] file_type: PCF constraints_ecp5: files: [constraints/ecp5.lpf] file_type: LPF targets: default: filesets: [rtl] toplevel: top sim: default_tool: verilator filesets: [rtl, tb] toplevel: tb_top tools: verilator: mode: cc verilator_options: [--trace, --coverage] icarus: iverilog_options: [-g2012] synth_ice40: default_tool: icestorm filesets: [rtl, constraints_ice40] toplevel: top tools: icestorm: pnr: next nextpnr_options: [--hx8k, --package, ct256, --freq, "48"] synth_ecp5: default_tool: trellis filesets: [rtl, constraints_ecp5] toplevel: top tools: trellis: nextpnr_options: [--25k, --package, CABGA256] synth_vivado: default_tool: vivado filesets: [rtl] toplevel: top tools: vivado: part: xc7a35tcpg236-1 lint: default_tool: verilator filesets: [rtl] toplevel: top tools: verilator: mode: lint-only parameters: WIDTH: datatype: int paramtype: vlogparam default: 8 description: "Data width" ``` ## File Types | Type | Extensions | |---|---| | `verilogSource` | .v, .vh | | `systemVerilogSource` | .sv, .svh | | `vhdlSource` | .vhd, .vhdl | | `xdc` | Vivado constraints | | `PCF` | iCE40 constraints | | `LPF` | ECP5 constraints | | `CST` | Gowin constraints | ## Edalize Backends | Backend | Tool | Use Case | |---------|------|----------| | verilator | Verilator | Simulation + lint | | icarus | Icarus Verilog | Simulation | | vivado | Xilinx Vivado | Synth + P&R | | quartus | Intel Quartus | Synth + P&R | | yosys | Yosys | Open-source synth | ## Dependency Management ```yaml depend: - vendor:lib:uart:1.0 # Exact - ">=vendor:lib:spi:2.0" # Minimum - "^vendor:lib:i2c:1.2" # Semver compatible - "~vendor:lib:fifo:1.2.3" # Patch only ``` | Operator | Meaning | |---|---| | `=` (default) | Exact match | | `>=` | At least | | `^` | Semver compatible (>=X.Y.Z, <X+1.0.0) | | `~` | Patch only (>=X.Y.Z, <X.Y+1.0) | ## Running FuseSoC ```bash fusesoc run --target=sim vendor:lib:design # Simulate fusesoc run --target=sim --tool=icarus vendor:lib:design # Specific simulator fusesoc run --target=synth_ice40 vendor:lib:design # Synthesize fusesoc run --target=lint vendor:lib:design # Lint only fusesoc core list # List cores fusesoc library add name https://github.com/org/repo # Add library ``` ## Tool Backend Options ### icestorm - `pnr`: `next` (nextpnr) or `arachne` - `nextpnr_options`: CLI args for nextpnr-ice40 - `yosys_synth_options`: Extra synth_ice40 options ### trellis (ECP5) - `nextpnr_options`: CLI args for nextpnr-ecp5 - `yosys_synth_options`: Extra synth_ecp5 options ### verilator - `mode`: `binary`, `cc`, `lint-only` - `verilator_options`: Extra CLI args ### vivado - `part`: FPGA part number - `synth`: `vivado` or `yosys` ## Auto-Generation Scans project, reads `.gateflow/project.yaml`, generates .core file. ## GATEFLOW-RESULT Integration ``` ---GATEFLOW-RESULT--- STATUS: PASS | FAIL | ERROR FILES: [generated .core file] DETAILS: [summary] ---END-GATEFLOW-RESULT--- ```
GitHub에서 보기