FPGA board: Olimex GateMateA1-EVB (~ 50euro).
Software: Yosys OSS cad suite (the page contain the link and the instructions)
Install oss cad suite (download, extract anywhere)
On Linux, update your PATH:
PATH="<extracted_location>/oss-cad-suite/bin:$PATH"
Pay attention to the power supply of the board. The board is powered through the USB-C connector.
I had issues when I directly connected the board to my laptop (which was powered by its battery). The FPGA behaved sometimes weirdly when switching outputs. I suppose it was due to not strong enough power delivery. It was fixed when I used a USB-C hub which was powered (through USB-C).
-
00-blink: A very simple example (blinking leds)
-
01-blink-pll: A still standalone example that instantiate the PLL. This example could be considered as a start point for a design.
-
02-vga-bars: First use of the VGA interface on the board. Also first use of common files (Makefile and GateMate component package).
-
03-vga-pixel: A moving pixel on the VGA screen. Improved use of common files.
-
04-vga-module: VGA clock generator as a submodule.
-
05-uart-loopback: A very simple example to test UART connectivity.
-
06-uart-hello: Hello world design throught UART.
-
07-uart-lower: TX and RX uart module.
-
08-ps2-print: Print PS/2 scan code sent by a keyboard
-
09-mouse-pixel: Move a pixel with the mouse
-
10-mouse-cursor: Move a cursor with the mouse
-
11-psram-write-spi: Store data to the PSRAM
-
12-psram-read-spi: Display PSRAM content (using SPI)
-
13-psram-read-qspi: Use QSPI to display PSRAM content
I use .vhdl as the extension of the VHDL source files. Some people prefer
to use .vhd, but this clashes with the extension used for virtual hard disk
for virtual machines.
Not required for the demos, but useful.
- GateMateA1-EVB schematic
- GateMateA1-EVB user manual
- GateMate A1 datasheet
- GateMate A1 Pin Lists
- GateMate A1 library
- PSRAM
There are probably much comprehensive projects for the GateMateA1-EVB or for the GateMate itself. However, most of them use only verilog.