Virtual RS232 Terminal with LVDS LCD Controller :: Overview

Project maintainers


Name: virtual_rs232_terminal_with_lvds_lcd
Created: Mar 3, 2011
Updated: Mar 3, 2011
SVN Updated: Mar 3, 2011
SVN: Browse
Latest version: download
Statistics: View

Other project properties

Category: Other
Language: Verilog
Development status: Mature
Additional info: FPGA proven
WishBone compliant: No
WishBone version: n/a
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: (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.

© copyright 1999-2017, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.