
This design is a Tiny Tapeout graphics demo built around a small 4x4 ternary systolic array and a VGA generator.
Main blocks:
The array computes one of several tiny matrix demos selected by ui_in[1:0]. Positive outputs are shown in green, negative outputs in red, and zero outputs in blue. VGA output is exposed on the standard Tiny Tapeout PMOD pin mapping.
Run the reduced RTL checks:
iverilog -g2012 -Isrc -s tt_um_rv32_vga src/tt_um_rv32_vga.v src/vga_sync.v src/systolic_array.v src/pe.v
verilator --lint-only -Wall src/tt_um_rv32_vga.v src/vga_sync.v src/systolic_array.v src/pe.v
The cocotb tests are intended to check:
No external hardware is required beyond the VGA PMOD connection.
Current user input usage:
ui_in[0]: demo select bit 0ui_in[1]: demo select bit 1All uio pins are unused in the current design.
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | Demo select bit 0 | VGA R1 | |
| 1 | Demo select bit 1 | VGA G1 | |
| 2 | Unused | VGA B1 | |
| 3 | Unused | VGA VSYNC | |
| 4 | Unused | VGA R0 | |
| 5 | Unused | VGA G0 | |
| 6 | Unused | VGA B0 | |
| 7 | Unused | VGA HSYNC |