Your SystemVerilog.
Your Basys3.
Install once. Write your own design in VS Code or another editor. Run it on your Basys3.
For Apple Silicon Macs and the Digilent Basys3. Examples help you start; your project does not have to be a lab.
How do I get started?
- Install. Open Terminal. If Homebrew is missing, install it from brew.sh, follow its “Next steps”, then open a new terminal. Paste:
Wait forcurl -fsSL https://nosey-dewdrop.github.io/dewfpga/install | bashall good.If installation stops, follow the error it prints. The same command also updates an existing install. - Write a file. Save
my_design.svanywhere and open it in VS Code. You do not need to open a folder. Start with this, or write your own logic:module my_design(input wire [3:0] sw, output wire [3:0] led); assign led = sw; endmodule - Connect. Connect the Basys3’s PROG USB port to your Mac and switch the board on.
- Run. Click ▶ Run on Basys3 at the top right of the editor. The four switches now control the four LEDs. Change
swto~swand Run again: the LED behavior reverses. Your saved code determines the circuit.
Where is the Run button?
If VS Code was installed after dewfpga, run dewfpga vscode once in Terminal, then reload VS Code. Open a saved .sv or .v file; hover over the play button to see dewfpga: Run on Basys3.
In another editor, run this command in its terminal, using your file’s path:
dewfpga run ~/Desktop/my_design.sv
How does the code connect to the board?
Standard port names get their Basys3 pins automatically: clk (100 MHz), sw[15:0], led[15:0], btnC, btnU, btnD, btnL, btnR, seg[6:0], dp, an[3:0]. Smaller vectors work too. Choose your module name and internal logic freely.
For custom port names, put my_design.xdc beside my_design.sv, or pass --xdc pins.xdc. Run reads the selected file and explicit local includes. For a project spread across several source files, use dewfpga flash in its folder with its pin file; existing Vivado projects also work.
What if I do not have a board?
Open the browser simulator, write or import your design and pin file, then click run on board. Toggle the virtual switches and buttons to see your circuit respond. This is the virtual board; use the installed CLI to program a physical Basys3.
For a local single-file build without a board, run dewfpga run my_design.sv --build-only. To run your own testbench, use dewfpga sim; it needs a testbench file in addition to your design.
What if it stops?
Read the first error: it names the file or missing setup and links to a fix. If one file contains several independent designs, select one with dewfpga run my_design.sv --top module_name. A successful build is not proof that the board was programmed: the upload must finish too.
Some SystemVerilog constructs are still unsupported or have known behavior differences. Current limits · Error help · Full documentation and manual setup. Loading writes the board’s SRAM; power cycling clears the design.
Commands and verification details
dewfpga check check the installed tools
dewfpga run file.sv run one file, automatic standard pins
dewfpga flash [top] build and load a project
dewfpga bit [top] build without a board
dewfpga sim [top] run your testbench
dewfpga tops list top modules
dewfpga vscode configure VS Code tasks
dewfpga new <folder> create a starting project
Run test/run.sh --list to list the repository’s current checks, including SystemVerilog probes. These are regression checks, not a promise that every design works. Build time depends on the design; the blink example measured 4.6 seconds on an M2. Installation measured about four minutes, with about 0.3 GB for the chain on disk. See the test details for measurement conditions.
On their own pages: 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.