-
Notifications
You must be signed in to change notification settings - Fork 79
Home
Pepijn de Vos edited this page Nov 17, 2024
·
4 revisions
This guide covers the main tools used in the open source FPGA development flow for Gowin FPGAs:
We have broad but not total coverage of supported primitives.
-
Yosys ‐ synth_gowin - Synthesis
- Converts your Verilog code into a netlist of basic logic elements
- Optimizes and maps designs to FPGA primitives
- Outputs JSON format for place & route
-
Nextpnr‐Himbaechel Gowin - Place & Route
- Places logic elements on the physical FPGA
- Routes connections between elements
- Ensures timing constraints are met
- Takes JSON from Yosys and outputs placed design
-
gowin_pack - Bitstream Generation
- Converts placed & routed design into binary bitstream
- Handles device-specific configurations
- Creates final
.fsfile for programming
-
openFPGALoader - Programming
- Programs the bitstream onto the physical FPGA
- Supports multiple programming interfaces
- Handles device detection and configuration
# 1. Synthesize Verilog to JSON netlist
yosys -p "read_verilog design.v; synth_gowin -json design.json"
# 2. Place and route the design
nextpnr-himbaechel --json design.json --write placed.json \
--device GW1NR-LV9QN88PC6/I5 \
--vopt cst=constraints.cst
# 3. Generate bitstream
gowin_pack -d GW1N-9C -o final.fs placed.json
# 4. Program the FPGA
openFPGALoader -b tangnano9k final.fsCheck the individual tool documentation for detailed options and advanced usage.
Parts of this documentation were written with the help of AI, scripts, and scripts written by AI, but a human always had the final say.