Go Back

Source code


Name: virtual_rs232_terminal_with_lvds_lcd
Created: Mar 3, 2011
Updated: Mar 3, 2011
SVN Updated: Mar 3, 2011

Other project properties

Category: Other
Language: Verilog
Development status: Mature
Additional info: FPGA proven
WishBone Compliant: No
License: LGPL


An Virtual RS232 Terminal developed with Avnet Xilinx Spartan 3A Evaluation Kit ( Spartan XC3S400A ) that has a LVDS LCD Controller (Notebook LCD used for development, 3 LVDS Pairs interface) and a PS2 Keyboard Receiver.
The Core receives the ScanCodes on PS2 Keyboard, and sends ascii through serial port. Also, it received the ASCII Chars on Serial port and write on a CharRam Buffer (80x60 chars) that displays on the LCD Screen.
Video from project:
More info at: http://www.energylabs.com.br (Portuguese with Google Translation)


There are things working, and things to be done.
- Serial Data Receiver writting to Char Ram
- Fixed 80x60 Char RAM
- EnergyLabs Logo on ROM
- ScanCodes on ROM
- IBMPC 8x8 Font on ROM
- All ROMS was implemented as blockram, so I am using about 50% of the block ram resources.
- LCD LVDS Controller Uses modified XAPP486 and its a LVDS33 Signal.
- Parallax Scrolling BackGround (Made with logic)
- EnergyLabs Logo with Transparency (Color-Key)
- Faster Serial Receiver. Dunno why its so slow to receive chars on the serial, even at 115200 (Maybe its something when write)
- Dynamic Console Size
- All ROMS stored at external flash
- Modify XAPP486 or make a new 7-to-1 serializer (I tryed that, but the maximum speed at my core was only 40MHz), because I dont know how Xilinx made the XAPP486 and it has 4 channels (we only need 3) and the bits are in a different way.
- External RAM for Screen, actually I wasnt done that because I Dont have external ram.
Few things:
- The XAPP486 sends the 7 bits for each channel in a different way that LCD needs, as I didnt understand how XAPP486 was write, I only mapped the correct bits. Its working correct, but I think it can be better.