VHDL code to display characters on VGA screen using Spartan 3

Thread Starter


Joined Feb 3, 2009
Hey guys

my final year project requires me to write some characters onto a vga screen using VHDL code implemented on a spartan 3 fpga board. I have managed to get a sample code to display colours on the screen but i have no idea how to start writing characters? any help would be grately appreciated or links or anything.

also if anybody knows how to then update this information depending on button presses/switch changes then this info would also be really helpful.



Joined Jan 3, 2009
where's the sample code?
which ports connect to the screen?
later on controlling it with switches is easy, you need to find out first how is you board controls the vga signal.
(my guess is that it sends signals to a d/a which sends its output to the video signal)


Joined Jan 9, 2009
It looks to me like you just need to get the timing correct for the vsync and hsync parts of the signal.

You start by strobing the HSYNCH line low for about 6uS (see spec) then you probably just vary a DAC to be able to make 0.7Vpp changes on a 25MHz clock pulse (it seems to be pallette based or something, but -0.35V would represent some colour and 0.35V the opposite end of the spectrum). So you'll have to make 640 updates to your 0.7Vpp on a 25MHz clock which aligns up with the Horizontal active window in the spec of 25.6uS (I just calculated it and it lines up).

You then have to wait on the VSYNCH as per the spec (as the spec only calls for 60Hz so you don't just rip through the vertical as fast as you can) and pulse out the next Horizontal sequence (HSYNCH and video for 25.6uS).

These old protocols still are amazing things, especially how this is represented on a CRT. CRTs have to be one of the most breakthrough inventions of all time.