cli · bitbuild without a board

dewfpga bit

What does its help text say?

dewfpga sim | bit | flash | clean [top]
                                 work on the .sv files in the current folder. top = the module nothing else
                                 instantiates (or name it: a module or a file). pins = <top>.xdc or the only .xdc
                                 In a Vivado project (a folder with one .xpr, or anywhere under its .srcs): the
                                 project's enabled files, its top module, its .xdc; outputs land next to the .xpr

From dewfpga --help, as bin/dewfpga prints it.

What does the README say?

dewfpga bit prints three lines and keeps the full place-and-route log in <top>.log:

Use a flat folder of .sv/.v modules (an .xdc only for ports without a board name), or run inside a Vivado project: its .xpr selects the enabled design, constraint and simulation files. Commands from a nested .srcs folder use the project root; outputs go there too. dewfpga tops lists top candidates without writing files. The project's selected top wins unless you name one: dewfpga bit <top>. In a flat folder, hierarchy and a unique matching .xdc select the top; ambiguous candidates require a choice. A filename alone does not select it. A testbench has no ports and instantiates the design; $finish/$stop in a design module is an error. A file that holds only a package, an interface or typedefs is read too, each after the files that declare a name it uses: a package before its users, a typedef file before the interface that uses the type (one that another file includes is read through the include, not twice). Example: dewfpga new blink.

dewfpga sim|bit|flash|clean [top]   build a flat folder or a Vivado project

test/fuzz/run.sh <first seed> <count> is separate from the suite: gen.py writes a random design per seed in the SystemVerilog DDCA teaches (every feature a switch, --list names them), dewfpga sim and dewfpga bit run on it, the netlist is simulated with the same testbench, and the two traces are compared bit by bit. Its last line counts the outcomes (ok, silent-wrong, refused-coded, refused-uncoded, crash, sim-refused).

From the README.

What does the guide say?

dewfpga new blink    # prints: blink/ ready:  cd blink && dewfpga flash    (VS Code: ⌘⇧B)
cd blink
dewfpga sim          # simulation
dewfpga bit          # .sv -> .bit
dewfpga flash        # .bit -> the board; runs bit first when the .bit is missing or older than the .sv

dewfpga bit, three lines: the pin check, place and route, the bitstream. The full place-and-route log is in blink.log.

dewfpga sim|bit|flash|clean [top]   build a flat folder or a Vivado project

From section 2, How do you install it in one line?.

Yosys does not implement that inheritance. dewfpga bit supplies the direction in a temporary compiler copy before synthesis and tells you so. Your saved file is unchanged:

From section 7.1, Which course file breaks?.

How does a coding agent call it?

dewfpga check --json, dewfpga sim [top] --json, dewfpga bit [top] --json and dewfpga flash [top] --json print exactly one JSON object on stdout. Text commands retain their existing output. flash programs attached hardware; request it only when the user has authorized programming the board.

Tool Arguments Behavior
bit absolute project, optional module top, timeout_s build a bitstream; default 600 s, max 1800 s

From the agent interface: the machine-readable CLI and the MCP server.

Which errors can it stop with?

67 codes in the error catalog.

Which patch notes name it?


previous: dewfpga sim
next: dewfpga flash
Every command: dewfpga install · dewfpga check · dewfpga run · dewfpga sim · dewfpga bit · dewfpga flash · dewfpga clean · dewfpga tops · dewfpga new · dewfpga uninstall · dewfpga vscode · dewfpga … --json · dewfpga mcp