Go Back

Source code


Name: graphiti
Created: Mar 20, 2007
Updated: Dec 20, 2009
SVN Updated: Mar 10, 2009

Other project properties

Category: Video controller
Language: VHDL
Development status: Beta
Additional info:
WishBone Compliant: No


The MiniGA is a small graphics adapter for microcontrollers. It outputs a video signal for TVs, VCRs and TFTs with video input. MiniGA features a SPI interface which makes interfacing to most microcontrollers easy. A cycle-shared-RAM interface coordinates read and write accesses to the RAM so the user needn't take care about data collisions which simplifies the usage. Moreover MiniGA generates all needed timings and outputs a digital video which is converted to analog by a 10Bit DAC externally.


- PAL Encoder Core written 100% in VHDL
- No Xilinx/Altera specific IP core used (except DCM/PLL for clock generation)
- 100% digitally synthesized PAL video @ 45MHz sampling rate
- Almost exact PAL timing and frequencies
- 780x576px @ 16Bit color depth
- 1MByte asynchronous video RAM (Two standard 512k*8 SRAM organized as 512k*16, access time 15ns)
- Cycle shared memory interface performance: 60MByte/sec (30MByte/sec per bus, writing of >25 full frames/sec should be possible but not tested yet)
- RGB to YUV conversion
- FIR-Lowpass filter for U and V color components
- SPI-Interface
- Small PCB size of 86x53mm


- Version 1.00 finished


The following two images are result pictures from MiniGA. The first was photographed from a TV, the second was captured with a TV capture card.


MiniGA has been developed/tested on following platforms:
- Custom PCB with Xilinx XC3S200 (~85% system resources used)
- Development Board with Altera EP1C12 (~30% system resources used)
The pictures below show my Custom Board (prototype).
Note: There are newer board and schematic files in the CVS.

To Do

- Faster SPI Interface.
- Maybe shrink the core. The core is quite large because most calculations are too precise. The core outputs a 16Bit video and just 10Bits are used.
- Maybe Wishbone interface

IMAGE: blockschaltbild.png

FILE: blockschaltbild.png
DESCRIPTION: Simplified Block Diagram

IMAGE: thumb_tflowers.jpg

FILE: thumb_tflowers.jpg

IMAGE: thumb_flowers.jpg

FILE: thumb_flowers.jpg
DESCRIPTION: Captured with TV capture card


License: Creative Commons Attribution-NonCommercial-ShareAlike 2.0 License If you want to use MiniGA for commercial purposes please contact the project maintainer.

Maintainer's Homepage


IMAGE: thumb_graphiti.jpg

FILE: thumb_graphiti.jpg
DESCRIPTION: My XC3S200 Custom PCB (prototype)

IMAGE: thumb_graphitib.jpg

FILE: thumb_graphitib.jpg
DESCRIPTION: Back side (prototype)


I plan to minimize the necessary PCB and the FPGA. The next PCB will be equipped with a EP2C5 because Altera FPGAs are easier to use (power supply, ...). Additionally everythink should become cheaper.

IMAGE: thumb_testbild.jpg

FILE: thumb_testbild.jpg
DESCRIPTION: Captured with TV capture card