Go Back

Source code

Details

Name: interface_vga80x40
Created: Nov 16, 2007
Updated: Jul 11, 2014
SVN Updated: Mar 10, 2009

Other project properties

Category: Video controller
Language: VHDL
Development status: Stable
Additional info: Design done , FPGA proven
WishBone Compliant: No
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 www.javiervalcarce.eu .

Downloads

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