NES processor cloned on a FPGA

nes-on-an-fpga

[Bradley] decided to tackle the challenge to recreate the original Nintendo Entertainment System’s processor in a Field Programmable Gate Array. Say what? The original NES is a Legacy System, still used but no longer manufactured. If a system breaks, it becomes more and more difficult to repair or find replacements parts as time passes. By using a programmable integrated circuit such as a CPLD or a FPGA to clone the functionality of the original hardware, legacy systems can live on long after the original hardware has given up the ghost.

It took [Bradley] about a year to fully implement the NES processor as part of his Master’s project at Bradley University. He used what was known about the processor combined with some detective work with logic probes along the way. The programming was done in VHDL and those files are available for download (click on Documentation).

With the ubiquity of NES emulators on every device known to man you probably won’t be replicating this unless you want a reason to play with a FPGA. What interests us is the hardware solution this type of work provides for obsolete hardware that still serves a useful purpose. If you’ve used a FPGA or similar device to keep an old system running, let us know about it in the comments.

Comments

  1. Jonathon says:

    If you look at Bradley’s code he didn’t actually write the processor code himself. 99% of it was written (and is still maintained) by MikeJ at http://www.fpgaarcade.com. All Bradley did was interface an existing NES mobo processor socket to the FPGA running MikeJ’s processor code. Bradley made a few minor edits to the processor (like removing BCD support which the NES’ 2A03 doesn’t have, but other than that there was very little original HDL written by Bradley himself. But either way, it’s pretty neat.

    I am actually in the process of implementing the entire NES console inside an FPGA from scratch (all my own HDL). The CPU and PPU are pretty much complete (albeit a few minor bugs). I’m working on the APU right now. You can check it out at my site: https://rm-rfroot.net/nes_fpga/

    As for the people saying that it’s a dumb thing to do and a waste of time – it really depends on your perspective. Personally, I do it for the learning experience (becoming a better programmer and engineer) and because the NES is a really cool little piece of hardware and many people can relate to it.

  2. Mikey says:

    yeah, this seems a little ridiculous that it’s getting this much hype. He didn’t build an FPGA nes… or even it’s cpu (which is apparently a well known 6502 — I thought it was a Z80 too @ellisgl), but like Jonathon said, he just grabbed some code from somebody else stuck it on an fpga (minus a few parts he pulled out) and connected it to his NES. It’s cool that it works, but his Master’s project? WTF…

    Also apparently his name isn’t bradley, hahaha nice.

  3. Timothy Clancy says:

    yes it is not a waste of time. I want to try and recreate one myself just for the learning experience… go verilog!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 93,838 other followers