MiniGA - High Quality PAL Encoder

Project maintainers


Name: graphiti
Created: Mar 20, 2007
Updated: Jan 19, 2016
SVN Updated: Mar 10, 2009
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star2you like it: star it!

Other project properties

Category:Video controller
Development status:Beta
Additional info:
WishBone compliant: No
WishBone version: n/a


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

Functional Schematic


IMAGE: thumb_tflowers.jpg


IMAGE: thumb_flowers.jpg



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

My XC3S200 Custom PCB (prototype)


IMAGE: thumb_graphitib.jpg



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