Putting a PDP-10 on an FPGA

[dgcx] has been working on reimplementing a PDP-10/x on an FPGA for the last 2 and a half years. This surprised us because we’re only hearing about this project now.

After designing three versions, [dgcx] eventually ended up with a one-FPGA implementation of a PDP-10 and an awesome PDF writeup. Although PDP-10 emulators do exist, this project isn’t an emulation – the system actually has the 36-bit word length of the original, implemented on five 4096 kilobit SRAM chips. This is a fully functioning replica, and even has CHAOSNET implemented with a small Ethernet controller.

Like the miniature Cray-1 on an FPGA, the only thing left to do is put the PDP-10 clone into an awesome case like the working PDP-1 replica. We imagine [dgcx] could get the digital models of a real PDP-10 fairly easily.

With very old computers, it’s very hard to find software to run on these machines. This was the same problem the builder of the tiny Cray had. If any Hack A Day readers know where [dgcx] could find some old DEC software, be sure to post something in the comments. Otherwise, he may just get started porting the first edition of Unix.

37 thoughts on “Putting a PDP-10 on an FPGA

  1. That’s cool. If the PDP-11 is implemented, I really hope it’s not to run the Therac-25 program. Worst… program… ever.

    1. This is a PDP-10, not a PDP-11. So the obvious application to run on it, besides ITS and EMACS or TENEX and MACRO-10, is a PDP-8 emulator.

      (At one time, the fastest PDP-8 in existence was an emulator running on a PDP-10, though presumably there are now PDP-8 emulators that run on Unix and can therefore run on modern hardware.)

      The very first Unix ran on a PDP-7, but most of the early ones ran on PDP-11s.

  2. That’s rather lovely. Nice write-up.

    I’m not sure what it is about old computer architecture re-implementations that put a huge grin on my face…

    1. Well, for me, it’s the thought that we are doing things that were unimaginable in my childhood. We are taking a computer and putting it inside a computer. Not only that, I could run THOUSANDS instances of these computers if I were so inclined.

  3. My question comes from ignorance, not because of a perceived superiority of my method, but – why were external SRAMs chosen instead of using internal BRAMs in the Spartan 3e? Not enough room on chip?

    1. No on a PDP-11, and possibly on a different PDP family member.

      But you’re close. There is a huge amount of software for the fellow.

  4. Getting 1st Edition Unix wouldn’t help you get any software… you’d be much better off with TOPS-20 or TOPS-10 or ITS, all of which are available on the Internet, AND were designed for 36-bit PDP-10s, not the 16-bit PDP-11s.

  5. I love those old computers-in-FPGA projects!
    Just skimmed over the manual,it seems a lot of effort went into it.Excellent project,keep em coming.

    ps:I agree with Andrew on the new commenting system.
    What will happen if a post with 300 replies or more occurs?

  6. DGCX, if you happen to read this, it would be awesome if you could post the original Eagle (or equivalent) files for the FPGA PCB on your site; suitable for sending to a PCB manufacturer. I’m sure a few people will appreciate it. Publicly available PCB designs for FPGAs are almost non-existent.

    1. Completely agree. Unfortunately the entire linked site has now disappeared. Can’t even read the documentation :-!

  7. People who’ve never met the PDP10 shouldn’t assume that it is “similar” to a PDP11 just because the numbers are close together. The PDP10 was DEC’s “mainframe” computer, with an architecture featuring 36-bit words and word addressability. Getting C to run on the PDP10 was a major challenge, and I don’t think they ever ran any flavor of unix. DEC released both of their major operating systems (TOPS10 and TOPS20) for hobbyist use quite a long time ago, and there have been software-based emulators as well (running on “x86 micromachines”, many times faster than the fastest DEC HW ever made.)
    The original PDP6 (DEC’s first 36bit computer, more or less) was supposed to have been about 3000 gates; I’ve always wondered if it was an architecture suitable for cramming into a single chip FPGA. (Things are complicated by the importance of the memory pager, which was less transparently documented…)

  8. Everyone seems to have missed the fact that I *do* have software for the machine. It runs a custom version of ITS. It runs it well enough that I routinely sit upstairs, connected to the machine via TELNET running over CHAOSNET, editing in EMACS.

  9. Unfortunately this is NOT a fully functional PDP-10… it is lacking that awesome front panel display of blinkn lights!
    We used to watch those from afar to monitor the 3d rendering programs. It was easy to pick up the patterns. Westworld, Tron Light Sail, Flight of The Navigator, Explorers and others were made using one (with the Foonly doing much of the heavy lifting).

  10. When looking for software for this, you might consider checking with anyone who rescues old big iron. One such group is RCS/RI. I know they have an actual PDP-10, so I would imagine they’ve got some software for it too.

  11. Love the elegant look of the board…it screams out for a clear lucite box. Also, this would be an excellent project to add to OpenCores (opencores.org).

    1. Actually yes it would indeed be impossible. What you’re looking at is Original UNIX, as running on the PDP-11.

      The PDP-10 is special system in and of itself. It was also considered to be useful for managing the Internet, but the PDP-11 took over. There are a few operational systems out there….

  12. A PDP-10 was a 100-user mainframe (with internet connectivity, sort of) in the same timeframe that the biggest PDP-11s supported maybe 20 users (and didn’t run unix unless you were AT&T or a university.) It was the Vaxen that took over (4.2bsd!!!); PDP11s were never a major force on the Internet (though they got used as appliances like routers and dialin systems and such.)

    I dunno. You can look back at the sort of hardware mods that universities made to their mainframe computers (say, like the SAIL “Datadisk” terminals) for more-or-less general use, and it makes a lot of today’s efforts look pretty simplistic. OTOH, those hacks were NEEDED because the alternatives were pretty sucky.

    1. Not quite true. At the height of the PDP-11’s popularity there were an equal amount of them working at the universities, including UCB, they are of course the creators of BSD. It was developed from UNIX.

      Internet connectivity was possible both at the dialout/dialin level, and via Ethernet to more capable hardware. They were also used to run textile hardware which is why DEC made that bad decision to sell the line to Mentec.

      So both is true, from a certain point of view.

  13. I have been running a pdp-10 emulator on top of linux which runs on top of vmware ESXi-5.0.

    I had used a PDP-10 on the University of Pittsburgh Computing Center in 1982. They still had a PDP-10 running then.

    I would like to find the editor that Pitt used to use. It was written in house at the University of Pittsburgh

    To get a PDP-10 TOPS-10 prompt try this command from your internet connected computer:

    telnet jeffreyfall.com:2020

    Try a systat

    Great work on the PDP-10 on an FPGA.

    Cheers
    Jeffrey Fall

  14. Great writeup on a PDP-10 on an FPGA.
    Can’t get the .pdf. Webserver is down.

    I put the Panda distribution up live on a linux system which runs on top of ESXi 5.0

    try to log into this PDP-10 as
    telnet jeffreyfall.com:2020

    Try a systat

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