The MiST project provides an FPGA-based platform for recreating vintage computers. We recently saw an upgraded board — MiSTer — with a similar goal but with increased capability. You can see a video of the board acting like an Apple ][ playing Pac Man, below.
The board isn’t emulating the target computer. Rather, it uses an FPGA to host a hardware implementation of the target. There are cores for Apple, Atari, Commodore, Coleco, Sega, Sinclair and many other computers. There are also many arcade game cores for games like Defender, Galaga, and Frogger.
The MISTer uses a Terasic DE-10 board that sports an Altera Cyclone V SE. That FPGA has 110,000 logic elements and about 5K bits of block RAM. It also contains two ARM Cortex A9 CPUs running at 800 MHz. There’s a gigabyte of DDR3 RAM that the FPGA and the CPU can share. The ARM CPUs can boot Linux and you can emulate some or all things in software if you prefer. While there is a VGA output, there’s also a video scaler making it possible to drive a standard HDMI output.
What makes MiSTer more than just an FPGA demo board are the three daughterboards (and, of course, the software and FPGA configurations). There is an SDRAM daughterboard, an I/O board, and an optional real time clock board. The project is open source, with all the schematics and Gerber files available.
The I/O board provides legacy VGA output and connections for audio outputs (analog and digital). It is optional if you don’t want those features.
We looked at the original MiST impersonating a Macintosh if you want to compare the two boards. Maybe this set up is just what we need to create the computers that never existed.
FPGAs are so cool, It’s a shame I’ve been decensitized to them. This being due to overuse. My blood only rushes for dedicated hardware now.
What a shame. :-(
FPGAs overused?!?! Ehmmm… wel how do you feel about arduinos then?
Or how do you feel about transistors, they seem to put them into everything these days, how dare they?
FPGA are the modern building block for when you really want to do something complicated or fast (that isn’t practical or possible in a microcontroller) without making it complicated on a hardware board level. Anyway, play with them, give them a try, buy a cheap dev board clone and make your first blinky, then counter, VGA or other video circuit, then graphics, data (de)coding or recreate a CPU and its peripherals and soon you’ll find out its tool you can’t do without. You can make wonderfull things I don’t understand why they arent used more.
Well actually I do, as FPGAs can be kind of intimidating…
Costly in some cases, proprietary in a lot. And that’s not getting into the different mindset.
I’ve always wanted to recreate a VAX with an FPGA, and mount it (and the memory, etc) on cards that would fit and use the original chassis/bus. I’ve got a VAX4000/200 in my basement with no cards in it, just haven’t bothered lugging the chassis up the stairs yet. Be neat to have a QBUS-mounted FPGA CPU card, a pair of QBUS memory cards with SODIMM slots, and a QBUS video card. And drive card. Etc.
Why not put it all on one card? And an SD card? Compared to the speed of RAM at the time and of the huge drives with removable media, it might be downright frisky.
The Terasic DE-10 are quite affordable but the Cyclone® V SE 5CSEBA6U23I7 it uses are hugely expensive making them uneconomical for use in a retro computer recreation project.
Wow! At that price someone’s going to be making a great milking machine.
How come I didn’t know about this?????????
Thanks HAD! ;)
Yea I wish I’d of known about this a couple days ago when the addon boards were still being sold.
Apparently both people originally offering them no longer have them up for sale just two days later :{
If you can’t live without niche non-essential consumerist tech then you need to take a long hard look at your financial budgeting.
I get terrible stomach cramps and sweats if I go 48 hours without an FPGA. It’s easy for you to talk, you’ve probably never laid awake at night with your synapses screaming for a simple HDL implemented ALU.
Have some compassion.
There was a Color Computer 3 FGPA project some time back.
https://www.youtube.com/watch?v=E7982JhI5Kc
Microware OS9 was a beautiful operating system.
Meeeh. Why implement common computers that still exist? Now if someone implements the Royal McBee RPC-4000 *that* would be something. We could try to recreate Mel Kaye’s blackjack program. For extra credit reimplement the LGP-30 and that blackjack program.
http://www.pbm.com/~lindahl/mel.html
At one place I worked, I installed the “Story of Mel” in the man pages so “man mel” would bring up the usenet posting. Mel was a *real* programmer in my book.
There are some DEC PDP implementations in FPGAs, they could be ported to MIST / MISTER.
I would really like a Lisp machine or Xerox Alto/Star…
There are some aspects of very, very old computers, such as drum memory or teletypes or punch cards, which makes them impossible to meaningly re-create with just FPGAs or software emulation.
Open sourcing OpenGenera would go a long way towards resurrecting that feeling.
” For extra credit reimplement the LGP-30 and that blackjack program.”
May I humbly offer this: ;-)
http://www.e-basteln.de/lgp30
“Now if someone implements the Royal McBee RPC-4000 *that* would be something. We could try to recreate Mel Kaye’s blackjack program. For extra credit reimplement the LGP-30 and that blackjack program.”
Working on the RPC-4000! :-) The hardware is largely done, but there is a distinct lack of available software…
http://e-basteln.de/computing/rpc4000/rpc4000/
The LGP-30 replica is done, and a nice software selection is available. Including Mel Kaye’s original Blackjack implementation for that machine!
http://www.e-basteln.de/computing/lgp30/lgp30/
The one thing I need to understand is why this isn’t considered emulation? It’s not using the original chipset, so it’s still a different variation of emulation, is it not?
and here i am wondering why it’s not being classified and hyped as artificial intelligence yet.
nope it’s not, its a recreation of the original hardware.
Circuitry is being rebuild, using real gates, using real logic.
If it was an emulation then the functionality of the hardware was to be implemented in software and it would require a processor to mimic the behavior of a different processor. Not using the original chipset does not automatically make it emulation. If you build hardware that on a logic level behaves like the original hardware without the use of software algorithms its not an emulation its a recreation.
Very simply said: emulation is dressing up a Ferrari to look like a Model T.
Or: you may say that the holodeck from start trek is an emulation, but the replicators aren’t.
Or: an emulation does not represent the hardware when its switched of, a recreation still does
“nope it’s not, its a recreation of the original hardware”… Except, in this case, it is not.
If you really look at the project’s code on https://github.com/MiSTer-devel/Apple-II_MiSTer (which is mostly another fork of this former Apple2fpga implementation : http://www.cs.columbia.edu/%7Esedwards/apple2fpga/ ) the only original hardware that seems properly simulated on a logic level are the 6502 CPU and the Mockingboard add-on soundcard.
All other discrete digital logic present on an actual Apple II motherboard has been replaced by modern stuff like VGA video generation, PS2 keyboard controller, even a “virtual floppy image reader” (for practical reasons), and intefacing with on-board components like SDRAM or button switches. These are just mapped in the target’s memory space much like a software emulator fakes i/o components, just mimicking their behaviour on the data bus.
A real recreation would simulate every original chips and the analog i/o too, and that would be a clone, which could as well be software-based. FPGA is a programmable circuit, more suited to reproduce digital ICs inner logic and their parallelized operations, but here I would still call this an emulator, just an hardware one, according to the definition of some encyclopedia : https://en.wikipedia.org/wiki/Emulator
Actually none of these are exact replicas of the originals the processor cores for example are not the exact logic layout used in the original they are excellent replications of the instruction sets used by those processors. The same is true about custom chips used, unless the chip has been de-capped and reverse engineered to the individual gate level then the recreation is simply a best effort to duplicate the function of that chip that may well implement its function in a very different way to the original.
I think people get too wrapped up about the idea of an FPGA vs Emulator. An FPGA implementation is made in hardware but in most cases it is not a 100% facsimile of the original but rather a best effort compatible hardware.
I don’t understand the comments talking about recreating 8b micros using an FPGA. Using a micro to emulate it is far cheaper and easier for most people to modify. The advantage of an FPGA is true cycle-by-cycle logic evaluation at speed of a few ns per cycle — but that Apple II’s cycle time was nearly 1000 ns. So your FPGA can evaluate the next state in 10 ns and then it sits there for 990 ns waiting for something to do.
Obviously the FPGA is better for generating video, which a microcontroller may have a hard time doing, but there are other options than using an expensive FPGA.
You are right that FPGAs are overkill for some projects. If it was required for this project is up for debate one thing is certain there are many ways to do a project, this was made using an FPGA and it does the job. If costs is an issue, then just use an emulator on your PC, if you want the fun of real hardware then build it in hardware, building it in a microcontroller is nothing better then emulating it on a PC (although it is a little bit smaller, which could be a huge advantage). Ahhh… if it works it doesn’t matter does it?
The article says
> That FPGA has 110,000 logic elements and about 5K bits of block RAM
That is 5Mbit, not 5Kb of block RAM. Specifically, that page says 5570Kbits of block RAM.
I saw a talk just a couple of days ago about a retired professor working on simple recreations of some really old supercomputers (50s-70s). The emulation was in software and not especially accurate but captured the hardware structures of the systems. It was really interesting to see an animation of a pipelined asynchronous processor running! The emulation project called HASE, in case anyone is interested.