Skip to content

Simple FPGA development workflow with VS Code

License

Notifications You must be signed in to change notification settings

barrettotte/fpga-dev-vscode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fpga-dev-vscode

Simple FPGA development workflow with VS Code.

The goal of this workflow is to avoid opening Vivado GUI. The example in this repo is a simple 1Hz LED blink using Basys 3 Artix-7 board (XC7A35TCPG236-1).

Development

I am currently using Windows for FPGA development. But, I'm assuming I'll make the switch to Linux at some point and I'll update my notes accordingly.

Requirements

  • Vivado 2023.2+
  • GNU Make
  • GTKWave

Verify Vivado is installed and its binaries (xilinx/Vivado/2023.2/bin) are in system path with vivado -version. Also, verify GNU Make is installed with make -v and GTKWave is installed with wsl -e gtkwave --version.

Workflow

Edit source in VS Code, the vscode-verilog-hdl-support extension seems to work well for Verilog and Tcl.

# build bitstream file
make build

# simulate, generate waveform, and open in gtkwave
make simulate

# build and upload bitstream to FPGA
make program_board

Optionally, you can still develop in project mode with the following:

# create Vivado project
make create_project

# open Vivado project in GUI
make gui

Vivado in Docker

I decided to stick with a local installation of Vivado. But, I found a very cool post about running Vivado in Docker - https://myon.info/blog/2024/07/06/vivado-docker/

My attempt based on this post can be found in misc/vivado-docker/.

I may try this again in the future and update this repo with more notes/instructions.

References