No description, website, or topics provided.
Switch branches/tags
Clone or download
Latest commit 751e7a1 Oct 30, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
build ignores Oct 30, 2017
button-pcb ignore Sep 22, 2017
docs hard code template path Oct 30, 2017
src only draw pixels from buffer when out of the border Oct 25, 2017
tests pulse test bench Oct 24, 2017
.gitignore ignore file Sep 22, 2017
Makefile basename for svg Oct 30, 2017 add links to useful docs Oct 26, 2017 updates Oct 24, 2017

FPGA Virtual Graffiti


example output and construction photos

Tools used

Top resource tips


Build notes



To program the mystorm board, first start a terminal listening on /dev/ttyUSBX at 115200 baud, and reset the board. Then type:

make prog


many test benches are in tests. They can be simulated and outputs viewed with gtkwave:

make debug-[name of verilog file]


make debug-bresenham

Storing configuration on the board

Instructions here

SRAM video buffer

Using the SRAM on the back of the board for persistant graffitis. This caused 2 major issues:

Wiimote Camera

I2C reader / writer

fpga read

Started off with this youtube series: by Tom Briggs.

In Tom's design, the I2C clock is assigned to the state machine's !clk.

Writing and requesting data was easy, but reading the data was difficult to synchronize the clock. I then tried 2 different approaches:

  • separating the I2C clock and state machine clock to give more time for reading data (4 state machine clocks for 1 I2C clock)
  • generating the clock within the state machine itself.

Option 2 proved much easier to write. I also found this brief Q&A on reddit on the same topic

DVI output

based on Hamster's minimal DVI-D VHDL