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.

41 thoughts on “Putting A PDP-10 On An FPGA

    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.

    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.

  1. 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?

  2. 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.

  3. 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?

  4. 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.

  5. 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…)

  6. 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.

  7. 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).

  8. 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.

    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….

  9. 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.

  10. 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.

    Jeffrey Fall

  11. 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

    1. I used both PDP-10 (KL10s running TOPS20 v3.x -> 5.x when deinstalled) and pdp-11 (running RSTS/E officially and a late night AT&T Unix back in the 1979->1986 time frame). I loved teco. I was the system manager on a 11/45 (converted to an 11/44) and I used teco for all sorts of things. The weirdest thing I ever did in teco (that should have been in some non-interpreted language) was a Cheshire label program (3 up). They used to take the full alumni list of the law school, dump it out in a particular format then run it thru my teco script and a couple of days later Cheshire labels.. I eventually rewrote it in fortran. Ran orders faster but wasn’t anywhere near as fun to write. I also wrote a teco script to create boot tapes for RSTS/E. It would get a directory listing of the equiv of the root directory and put the required pieces on tape in the right order to make a recovery tape. This was after we found out the hard way our full backups didn’t quite work. I did recover the system but it was freaking painful. Thus the teco script to save future pain. I greatly enjoyed working as both a TOPS20 system guy and a RSTS/E system manager. Definitely a nice introduction to computing

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.