An open API service indexing awesome lists of open source software.

https://github.com/barrettotte/vga-square

Bounce a square around a VGA display using FPGA
https://github.com/barrettotte/vga-square

fpga vga

Last synced: 7 months ago
JSON representation

Bounce a square around a VGA display using FPGA

Awesome Lists containing this project

README

          

# vga-square

Bounce a square around a VGA display using FPGA.

Targets Basys 3 Artix-7 board (XC7A35TCPG236-1).

![./vga-square.gif](./vga-square.gif)

## Development

This assumes Windows with WSL is used for FPGA development.

### 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](https://github.com/mshr-h/vscode-verilog-hdl-support) extension seems to work well for Verilog and Tcl.

```sh
# 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:

```sh
# create Vivado project
make create_project

# open Vivado project in GUI
make gui
```

## References

- [Basys 3 Reference Manual](https://digilent.com/reference/programmable-logic/basys-3/reference-manual)
- [Vivado Design Suite Tcl Command Reference Guide](https://docs.amd.com/r/en-US/ug835-vivado-tcl-commands)
- https://projectf.io/posts/vivado-tcl-build-script/
- http://www.tinyvga.com/vga-timing/640x480@60Hz