Condensed Course
Programmable Logic Architectures
FPGA Families and FPGA Sizes
Burched B5 FPGA Development board
Using the ANT16 logic analyser with the Burched B5 FPGA Development board
Jupiter Ace
Tandy TRS80 / LNW80
Commodore 64
Acorn Atom
BBC Micro
Atari 800XL
Tandy Color Computer
Oric
Wartime Cryptanalysis Computer
DNA Pattern Spotter
Apollo Guidance Computer
Polymorph Computer in FPGA (XC2S300) by Me. Foundation for projects below
Acorn Atom in FPGA (XC2S300) by Me
Atari 800XL in FPGA (XC2S300) by Me - a work in progressZX81 in FPGA (XC2S200) by Me - a work in progress
ZX81 in Four SPLD by Ian Bradbury
ZX81 in CPLD by Bodo Wenzel
ZX81 in FPGA (XC3042) by Bodo WenzelAtari 2600 console in FPGA (XC2S100) by Carlos F. Lopez - a work in progress
Jeri is an amazing person, having cloned a C64 and added extra features.
The CPU is a real 65C816, so freeing design effort to add co-processors as seen on the Amiga.
T65 CPU VHDL 6502 CPU T80 CPU VHDL Z80 / 8080 CPU, as used in the projects below. ZX81 in FPGA (XC2S200) includes 8K ROM, and 2K RAM! Jupiter Ace in FPGA (XC2S200) includes 8K ROM. Uses external RAM. TRS80 Level 1 in FPGA includes 8K ROM, and 2K RAM! TRS80 Level 2 in FPGA External ROM and RAM. Spectrum in FPGA (XC2S200) External ROM and RAM. Daniel is a Swedish guy who likes implementing processors in VHDL.
He then implements various machines as 'test benches' to check his CPU cores work!
So far he has implemented the Z80 and 8080.
The ZXGate project has source code for his works.
He is currently working on a 6502. When complete, my Atom project should be a suitable test bench for it.
FPGA Arcade A growing collection of arcade machines in FPGA
FPGA Pac Man
FPGA Space Invaders (in XC2S150)
FPGA Pac-ManMikeJ has also implemented CPU cores, such as the RISC5x (PIC core, no peripherals).
He has used Daniel's Z80 VHDL code to implement arcade machines.
FPGA Galaxian (in XC2S50) fromJapanese page
This Japanese group used schematic entry for 97% of the project, simply copying much of the original circuit directly.
Note that these arcade machines have no sound, because this tends to have a lot of analogue circuitry that can't be put in the FPGA. Some machines had seperate microprocessor systems to generate sounds.
VHDL CRTC 6845
Xilinx Virtex XCV50-6 (16x24 = 384 cells) runs at 50 MHz (character clock).
With external pixel generator this CRTC could handle 450MHz pixel rate
But it does not handle vertical total adjustment, or interleaved scans.
The BBC micro requires these features.VHDL Simple I2C master
Not great, has no I2C slave interface.
Verilog 6502 by Bird Computers.
Source is free for non-commercial use, and is not fully debugged yet.
Not cycle accurate. Includes decimal mode instructions.Verilog <-> VHDL translator The demo version will only save conversion files from inputs that have less than 200 symbols. Larger files can be displayed in a window but you cannot cut and paste the text.
C compiler for 6502 runs in Windows and various vintage 6502 machines.
Extensive documentation and libraries.www.opencores.org has many projects including a PIC16C57 core
The PIC is just that: the core. None of the peripherals you get in a PIC.www.free-ip.com has free 6502 and PIC16C57 cores.
But the 6502 does not handle all instructions and the PIC does not include peripherals.
Jan Gray's FPGA CPU
Chuck McManis has good robotics and FPGA notebooksV Automation sell IP for virtual processors, and quoted:
80186(<28,000 gates) 8086(~18,000 Gates) Z80 (< 8,000 Gates) 6502 (< 4,000 Gates)
which gives an idea of the relative complexity of these chips.
They appear to have dropped the 6502 and Z80, perhaps because there are good public domain models.http://www1.mmu1.edu.my/~khkoay/8051core.htm
http://www.ics.ele.tue.nl/~averschu/idass.html