NEXTPNR-GOWIN(1)

πŸ“¦
version 0.7 Β· 3 versions
, in ubuntu questing

πŸ’– NEXTPNR-GOWIN πŸ’–

okay bestie, sit down, hydrate, because we're talking about nextpnr-gowin β€” that's the Next Generation Place and Route tool, manual page NEXTPNR-GOWIN(1) from the General Commands section. Version 0.7-1build1, if you were wondering. She's iconic, she's doing the most, and she has SO many flags. Let's go. 🫢


✨ NAME ✨

nextpnr-gowin β€” Next Generation Place and Route


🌸 DESCRIPTION 🌸

nextpnr-gowin β€” Next Generation Place and Route (Version 0.7-1build1)

like. the whole personality is right there in the name. place. and. route. periodt. πŸ’…


πŸŽ€ General options πŸŽ€

the daily drivers, the little guys, the ones you'll actually type. every single one of them, no cap:

  • -h, --help β€” show help. she's giving tutorial era πŸ’–
  • -v, --verbose β€” verbose output. she tells you EVERYTHING. oversharing queen 🌈
  • -q, --quiet β€” quiet mode, only errors and warnings displayed. main character who doesn't do small talk ✨
  • --Werror β€” Turn warnings into errors. no warnings allowed, we die like professionals πŸ’€
  • -l, --log arg β€” log file, all log messages are written to this file regardless of -q. so even in quiet mode, the receipts go in the file. iykyk 🧚
  • --debug β€” debug output
  • --debug-placer β€” debug output from placer only
  • --debug-router β€” debug output from router only
  • --threads arg β€” number of threads for passes where this is configurable. parallelism bestie πŸƒβ€β™€οΈπŸ’¨
  • -f, --force β€” keep running after errors. she's delusional in the most productive way possible, we love her 😭
  • --gui β€” start gui. aesthetics mode activated πŸŽ€
  • --gui-no-aa β€” disable anti aliasing (use together with --gui option). crunchy pixels, retro vibe πŸ‘‘
  • --run arg β€” python file to execute instead of default flow
  • --pre-pack arg β€” python file to run before packing
  • --pre-place arg β€” python file to run before placement
  • --pre-route arg β€” python file to run before routing
  • --post-route arg β€” python file to run after routing
  • --on-failure arg β€” python file to run in event of crash for design introspection. yes girl, journal about it πŸ’œ
  • --json arg β€” JSON design file to ingest. eat up πŸ“
  • --write arg β€” JSON design file to write
  • --top arg β€” name of top module
  • --seed arg β€” seed value for random number generator
  • -r, --randomize-seed β€” randomize seed value for random number generator. chaos gremlin energy, we stan 🌈
  • --placer arg β€” placer algorithm to use; available: sa, heap; default: heap
  • --router arg β€” router algorithm to use; available: router1, router2; default: router1
  • --slack_redist_iter arg β€” number of iterations between slack redistribution
  • --cstrweight arg β€” placer weighting for relative constraint satisfaction
  • --starttemp arg β€” placer SA start temperature. she's hot, she's cold, she's SA πŸ”₯
  • --pack-only β€” pack design only without placement or routing
  • --no-route β€” process design without routing
  • --no-place β€” process design without placement
  • --no-pack β€” process design without packing
  • --ignore-loops β€” ignore combinational loops in timing analysis
  • --ignore-rel-clk β€” ignore clock-to-clock relations in timing checks
  • -V, --version β€” show version
  • --test β€” check architecture database integrity. vibe check, but for databases ✨
  • --freq arg β€” set target frequency for design in MHz
  • --timing-allow-fail β€” allow timing to fail in design. setting up your own flop era, respectfully πŸ™ˆ
  • --no-tmdriv β€” disable timing-driven placement
  • --sdf arg β€” SDF delay back-annotation file to write
  • --sdf-cvc β€” enable tweaks for SDF file compatibility with the CVC simulator
  • --no-print-critical-path-source β€” disable printing of the line numbers associated with each net in the critical path
  • --placer-heap-alpha arg β€” placer heap alpha value (float, default: 0.1)
  • --placer-heap-beta arg β€” placer heap beta value (float, default: 0.9)
  • --placer-heap-critexp arg β€” placer heap criticality exponent (int, default: 2)
  • --placer-heap-timingweight arg β€” placer heap timing weight (int, default: 10)
  • --placer-heap-cell-placement-timeout arg β€” allow placer to attempt up to max(10000, total cells^2 / N) iterations to place a cell (int N, default: 8, 0 for no timeout)
  • --parallel-refine β€” use new experimental parallelised engine for placement refinement
  • --router2-heatmap arg β€” prefix for router2 resource congestion heatmaps. she's giving weather girl 🌑️
  • --tmg-ripup β€” enable experimental timing-driven ripup in router
  • --router2-tmg-ripup β€” enable experimental timing-driven ripup in router (deprecated; use --tmg-ripup instead). bestie she's OLD, use the new one, fr fr πŸ’€
  • --router2-alt-weights β€” use alternate router2 weights
  • --report arg β€” write timing and utilization report in JSON format to file
  • --detailed-timing-report β€” Append detailed net timing data to the JSON report
  • --placed-svg arg β€” write render of placement to SVG file
  • --routed-svg arg β€” write render of routing to SVG file

πŸ¦‹ Architecture specific options πŸ¦‹

the gowin-flavoured part of the menu, lowkey the whole point:

  • --device arg β€” device name
  • --family arg β€” family name
  • --cst arg β€” physical constraints file
  • --enable-globals β€” enable separate routing of the clocks
  • --disable-globals β€” disable separate routing of the clocks
  • --enable-auto-longwires β€” automatic detection and routing of long wires

πŸ’… reminder bestie: --router2-tmg-ripup is deprecated, so use --tmg-ripup instead. and --force really will keep running after errors, which is a choice. make it an informed one.

nextpnr-gowin version 0.7-1build1, dated January 2025 β€” that's the whole tea, that's the whole manual, go place and route something gorgeous. mwah. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

πŸ“¦ where this page comes from