go-board-code/README.md

29 lines
1.3 KiB
Markdown
Raw Normal View History

2024-07-06 18:51:29 +00:00
# Go Board code reworking
This code is a reworking of the code for the [Go Board](https://nandland.com/the-go-board/)
FPGA beginner's board.
The original code comes from two sources:
* [Nandland Go Board tutorials](https://nandland.com/download-and-install-the-fpga-tools-and-drivers/)
* [Getting Started with FPGAs repo](https://github.com/nandland/getting-started-with-fpgas/)
Where possible I tried to:
* use more consistent variable and constant names
* fix missing inferred wires (the Pong project had a lot of these)
* avoid run-on lines of code
* avoid one-liner conditional bodies, opting for `begin...end` blocks everywhere
All of these can be built with [Yosys](https://github.com/YosysHQ/yosys)
and tested with [Icarus Verilog](https://github.com/steveicarus/iverilog). The `Makefile` is one I've been dragging along across all projects. It can fire off both a build-and-install to the Go Board, as well as run the test suite and open up [GTKWave](https://gtkwave.sourceforge.net/)
so you can inspect the signals. You do not need Lattive iCECube2 and you will have a hard time
getting it to run on modern Linux anyway!
`sipo_shift_register_test.sv` shows how to create your own `assert` for Icarus Verilog,
taken from an idea from here: https://stackoverflow.com/a/13906120
Have fun.
John