OpenCores

Monochrome Text-Mode VGA Video Display Adapter

Project maintainers

Details

Name: interface_vga80x40
Created: Nov 16, 2007
Updated: Sep 8, 2020
SVN Updated: Mar 10, 2009
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 2 reported / 1 solved
Star3you like it: star it!

Other project properties

Category:Video controller
Language:VHDL
Development status:Stable
Additional info:Design done, FPGA proven
WishBone compliant: No
WishBone version: n/a
License: LGPL

Description

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 ;-)

Features

- 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.

Documentation

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

Downloads

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