MiSTVGA
Speedrun port of the ao486 VGA core to run on the PCI bus
Install / Use
/learn @ianhan/MiSTVGAREADME
MiST VGA
This is a speedrun port of the VGA core written by Aleksander Osman and updated by the MiSTer dev team from ao486_Mister, adapted to run on an Arria II GX development kit with a PCI target front end.
The original ao486 VGA IP expected an Avalon-like host-side interface. This is driven by rtl/pci_vga_bridge.sv, which translates PCI target transactions into the original VGA I/O and VGA memory accesses.
Layout
rtl/: synthesizable RTL for the VGA core, PCI bridge, board wrapper, PLLs, and support blocksfpga/: Quartus project files for the Arria II GX targetsim/: Verilator-based simulations for the VGA core and the PCI bridgevgabios/: VGA BIOS sources and ROM patching toolsbuild/: Quartus output directory generated bymake a2gx
Main Components
rtl/vga.v: fullao486VGA corertl/pci_vga_bridge.sv: PCI target to VGA host-interface bridgertl/a2gx_mistvga_top.sv: Arria II GX board wrappersim/vga_sim_top.sv: core-level VGA simulation topsim/pci_bridge_test_top.sv: PCI bridge regression test top
Requirements
makepython3verilator- SDL2 development headers for the VGA simulation
- Quartus Prime Standard / Quartus tools for FPGA builds
Common Commands
From the repository root:
make sim
make lint
make a2gx
make prog
make clean
Useful simulation targets:
make -C sim run
make -C sim bridge-run
make -C sim lint-a2gx
Build Notes
make a2gxbuilds the Quartus project fromfpga/.- Quartus outputs are written to
build/. - The PCI option ROM image
fpga/boot1.hexis generated fromvgabios/boot1.romby the top-levelMakefile. - The bridge simulation also loads that ROM image from
fpga/boot1.hex.
Hardware Target
- Board: Arria II GX Development Kit (
DK-DEV-2AGX125N) - Video output: parallel RGB into the IT6613 HDMI transmitter on HSMC
- Host interface: 32-bit 33 MHz PCI target
Intent
Just fun.
