FPGA computer in VHDL

An FPGA binds the CPU, ROM, RAM and video DACs to form a practical computer.

Similar projects worth following
In 2001, I taught myself VHDL using Xilinx chips and development suite. Started off flashing an LED, ended up with a computer with colour video output.

I completed everything I wanted for this project. It did colour video in PAL and NTSC, had programmable palette and fonts, sound compatible with the popular sound chips of the 1980s, etc.

Since then, analogue TV has been rendered obsolete by high-definition TV. I really haven't had the motivation to upgrade the design for modern TVs. Similar projects have gone as far as line-doubled VGA output but VGA inputs are disappearing from modern TVs and monitors.

If I had to recreate this project, I would use a triple 8-bit video DAC for analogue output, or drive an LCD/OLED direct with LVDS signals.


3-channel Video DAC in DIP40, PLCC44 and TQFP48 package. I suspect the first two packages are not recommended for new designs, if they are obtainable at all.

Adobe Portable Document Format - 188.72 kB - 05/14/2022 at 23:52



1-channel Video DAC in DIP package

Adobe Portable Document Format - 124.21 kB - 05/14/2022 at 23:49


  • Machine model 2: The Atari 800XL

    Keith04/12/2022 at 00:28 0 comments

    I designed the video timings to match the Atari series because that was what I ultimately wanted to recreate. Their video chip was far more advanced than the 6845 and 6847 or any other video chip at the time. It could mix graphic and text modes in the "display list".

    The video clock was based on the 14.318 MHz colour crystal (four times NTSC colour carrier).  This gives squarer pixels than the BBC Micro's 16 MHz timing chain. The ideal 14.75 MHz gives perfect square pixels but 14.318 is convenient for NTSC video and 16 MHz divides easily to the clocks used by the BBC micro chip set. The floppy drive controller needed exactly 8 MHz for example.

    14.318 MHz is only 3% lower than ideal, while 16 MHz is 8.5% higher. With hindsight I might have used the commonly available 14.7456 MHz frequency used for baud rate generation. This is only 0.03% low.

    I did not get round to making an ANTIC compatible model but I did add someone else's VHDL POKEY which worked as expected.

  • Machine model 1: The Acorn Atom

    Keith04/11/2022 at 15:06 0 comments

    After the 6847 video controller, the rest of the Acorn Atom is trivial to recreate.

    Modelling new machines on old ones provide existing software and avoids the chore of writing it. The Acorn Atom BASIC is small enough to compile into FPGA memory, allowing the writing of programs without external ROM. My first Atom BASIC program was to program BASIC an external ROM. This avoided the need for a device programmer.

    The Atom can be modified to run BBC BASIC (with hardware limitations) but I did not get round to implementing that. There are VHDL models of complete BBC micros.

  • Synopsis

    Keith04/11/2022 at 01:10 0 comments

    If cloning an 8-bit computer in FPGA, one might as well clone the best one around.

    I feel that the Atari 6502 series are the best, for the following reasons.

    • Full-custom ASICs designed and built for the job.
    • Sprites and collision detection
    • Fewer socket contacts to go faulty
    • Huge software base
    • Accurate video timing
    • Versatile video controller

    The big hurdle in cloning these machines is that many things have to be up and running at the same time for the software to work. The video, the sound, the keyboard and so on.

    So I decided to clone the much simpler Acorn Atom, but fix the many defects of the 6847 chip by basing the video timings on the Atari machines. I did so, and added extra features such as

    • Programmable character set, and lower-case text.
    • Cross-hairs (in hardware)
    • PS/2 keyboard and mouse interface
    • USB serial interface
    • Sprites
    • Colour
    • Palette
    • Video and audio DACs
    • POKEY and AY-3-8910 sound

    In 2001, I started by toggling an LED on a development board. By 2005 I had cloned the Acorn Atom and had run out ideas for ways to improve it. Analogue TV started to go extinct and I was working 12 hour days to buy a home. I'd learned VHDL to my satisfaction and didn't really need an Atari clone.

View all 3 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates