Text Mode Monochrome Video Display Adapter for VGA monitors

Text Mode Monochrome Video Display Adapter for VGA monitors


Category: Video Controller

Created: November 16, 2007

Updated: January 27, 2020

Language: VHDL

Other project properties

Development Status: Stable

Additional info: Design done, FPGA proven

WishBone compliant: No

WishBone version: n/a

License: LGPL


This VHDL macro is a Text Mode Monochrome Video Display Adapter for VGA monitors. It can be used as a peripheral for a soft-processor, external microcontroller or other non-programmable hardware. It's not much better than the original IBM MDA card appeared in 1981 😉


- resolution is 80x40 characters, dot resolution is 640x480 pixels at 60Hz so the core needs a clock signal of 25MHz. I prefer 80x40 instead the classical 80x25, in my opinion, the latter is an annoyance.
- monocrome, it hasn't "attribute" memory to store the color of each character. The unique output color is selectable among 8 different colours
- the video text buffer is an external memory (or BRAM inside the FPGA) of 80×40 = 3200 bytes. The character at (column, row) = (0, 0) is at the RAM address 0, the character at (79, 39) is at 3199.
- 8-bit ASCII codes (iso-latin-0 or other that you prefer)
- the ROM that store fixed-width bitmap font is also external, the bitmap can be changed modifying the COE file. The COE file provided is iso-8859-15 (also called iso-latin-0), is very similar to the iso-8859-1 but with the Euro (€) symbol added.
- hardware cursor, with two different shapes; with enable/disable control.
- simple IO interface. Three registers
- CRX. Position (column) for HW cursor
- CRY. Position (row) for HW cursor
- CTL. Control register for de/activate the HW cursor, change its shape, de/activate VGA signal, output colour, etc.
- uses 100 slices in a Xilinx Spartan-3.
- the design is vendor-agnostic. You can use it in Xilinx/PicoBlaze, Altera/NIOSII or with other non-programmable hardware.


You can find the documentation for this macro in the downloads section and also at www.javiervalcarce.eu.


See "Downloads" in the menu bar. There is VHDL design files plus documentation.