• Please review our updated Terms and Rules here

Building a PDP-11 from scratch

maguro

New Member
Joined
Jun 18, 2020
Messages
5
I was wondering, would it be remotely possible to construct PDP-11 boards from scratch? iiuc, they didn't start using custom VLSI until the VAX line, though I could definitely be totally wrong.

I'm an AMD2901 fan boy and would LOVE to start an Open Source Hardware project to reconstruct a PDP-11/44.

Hopefully, this post isn't the topic of water cooler giggling...
 
It's doable if you don't intend to support Unibus (or Qbus for that matter), instead rolling your own memory and I/O interfaces. Unibus is fairly complicated to implement; Qbus similarly. See the attached papers on the CMU-11 and their lessons-learned.
(Note that all of the Qbus PDP-11's are custom VLSI, starting with the "LSI-11" aka PDP-11/03)
 

Attachments

  • 1976_Using_LSI_Processor_Bit-Slices_To_Build_A_PDP-11.pdf
    6.5 MB · Views: 24
  • CMU-CS-77-mcwilliams-fuller.pdf
    1.3 MB · Views: 17
Everything is possible.

I have implemented the microcode and the bulk of the logic for an 11/45 in LOGISIM.

Nothing to stop you from using 2901's.

FPGAs (and similar families) have also been used. The later MENTEC cards did not use DEC silicon.

There have been a number of projects using the T11 and J11 devices already.

It all depends upon your end goal and what you want to learn in the process...

Dave
 
The PDP-11/34, PDP-11/4, and VAX-11/730 used AMD AM2900 chips. I hoping to be able to construct Unibus compatible boards that would be indistinguishable from antique boards on the same bus. Ideally, using the same chips/components.
 
> The floating point unit in the 11/44 had a bunch of the things, according to Wikipedia.
One forum participant (pbirkel or AK6DN ?) shared a picture of their own card card a few months ago. It was an impressive thing to see. I am not sure but I seem to remember he worked on the design of this card.
 
> The floating point unit in the 11/44 had a bunch of the things, according to Wikipedia.
One forum participant (pbirkel or AK6DN ?) shared a picture of their own card card a few months ago. It was an impressive thing to see. I am not sure but I seem to remember he worked on the design of this card.

Yes, the FP11 for the 11/44 has a 64bit (16x2901) fraction datapath. Lay it on the bench and it could double as a hotplate.
I personally never did any design work on the 11/44 or any of its options, that was the guys down the aisle from me in Tewksbury, MA.
I worked on the 11/74 CIS processor at the time, doing microcode development. Yes it existed. No it was never released.
 
It's doable if you don't intend to support Unibus (or Qbus for that matter), instead rolling your own memory and I/O interfaces. Unibus is fairly complicated to implement; Qbus similarly. See the attached papers on the CMU-11 and their lessons-learned.
(Note that all of the Qbus PDP-11's are custom VLSI, starting with the "LSI-11" aka PDP-11/03)
As I mentioned above, I am hoping to be able to construct Unibus compatible boards that would be indistinguishable from antique boards on the same bus. Ideally, using the same chips/components.

How would supporting Unibus render the effort undoable?
 
I am hoping to be able to construct Unibus compatible boards that would be indistinguishable from antique boards on the same bus.

Most Unibus PDP-11 CPUs are made from multiple boards with custom wiring between them (or over the top on ribbon cables)
They most definitely are not connected through the Unibus.

"Ideally, using the same chips/components."

Good luck with that. Especially trying to source original unprogrammed bipolar proms.
 
As I mentioned above, I am hoping to be able to construct Unibus compatible boards that would be indistinguishable from antique boards on the same bus. Ideally, using the same chips/components.
As Al said above most UNIBUS CPUs were multiboard sets that either used over-the-top connectors or custom backplane wiring, or both, to go between boards.
There is no multiboard UNIBUS CPU that uses only UNIBUS to communicate between boards. And if you think about it for a while you will understand why that is so.

There is a single board UNIBUS CPU (the 11/04) so I suppose you could clone that (assuming you can get access to all the requisite devices like old bipolar PROMs.
Given how technology has changed you are about 20 to 30 years too late to contemplate such a project, especially if the goal is to use similar/identical chips to the original.

Pretty much you can put the whole PDP-11 CPU (and lots of peripherals for that matter) into a single large(r) FPGA at this point. Several folks on here have already done that.

How would supporting Unibus render the effort undoable?
True UNIBUS compatibility requires using driver/receiver chips that are basically unobtanium at this point. 8641/8881/8640/etc went out of production long ago.
You could use currently available bus driver/receiver chips like 74x240/74x244/etc but it would not be UNIBUS (or QBUS for that matter) per se and interoperability would be an issue.
Even getting access to UNIBUS backplanes is no longer viable. There are ways to make close approximations but they are only that.
I suppose one could do pseudo-electrical pseudo-mechanical UNIBUS using 2x40 100mil IDE style headers/sockets but it would really be something besides UNIBUS.
 
Last edited:
I was wondering, would it be remotely possible to construct PDP-11 boards from scratch? iiuc, they didn't start using custom VLSI until the VAX line, though I could definitely be totally wrong.

I'm an AMD2901 fan boy and would LOVE to start an Open Source Hardware project to reconstruct a PDP-11/44.

Hopefully, this post isn't the topic of water cooler giggling...
In case it helps (it may not): Several of the old storage controllers have a 16-bit 2901 processor (2911 sequencers, 12-bit micro-address space, IIRC) on them. UDA50, KDA50, KDB50, HSC50 (one of the boards in the chassis), etc.
As I recall, the micro-program word is 64 bits wide, using eight standard 24-pin EPROMs.
For example, in the UDA50 board set, you could use the CPU board by itself, burn your own PROMs, and have something that already includes Unibus capability.
I don't know any details of the UDA50's Unibus functionality, but it could be a way to make a lot of progress without the pain of building everything from scratch. If successful, you could then do your own board design with what you learned.

Also, these same storage controllers used a dual sequencer (2 sets of three 2911's) that ran on opposite phases of the same clock, both running out of the same PROMs, but each running a different thread. One side handled Unibus traffic, the other handled SDI drive traffic.

Pete
 
The PDP-11/34, PDP-11/4, and VAX-11/730 used AMD AM2900 chips. I hoping to be able to construct Unibus compatible boards that would be indistinguishable from antique boards on the same bus. Ideally, using the same chips/components.
The VAX-11/730 is an interesting design WRT your interests since like the other first-gen VAXen it had the ability to emulate the PDP-11 ISP in microcode (so-called "compatibility mode"). So regardless of how you eventually decide to proceed it would likely be advantageous to study its design and possibly extract a relevant subset of its microcode. You'd primarily be interested in the M8390 Data Path (DAP) (https://commons.wikimedia.org/wiki/File:M8390_Data_Path.jpg) and M8394 Writable Control Store (WCS) (https://commons.wikimedia.org/wiki/File:M8394_Writeable_Control_Store.jpg) modules, but a working system would require insight into the M8391 Memory Controller (MCT) (https://commons.wikimedia.org/wiki/File:M8391_Memory_Control_and_Timing.jpg) which includes sequencing control for the various elements.

The WCS consists of a 16Kx24-bit Basic Control Store, plus 1Kx24-bit User Control Store, plus 3Kx24-bit (optional) User Control Store. My recollection is that the 1K User Control Store was used as a PCS ("Programmable Control Store") for field-patching the microcode -- you can guess how that works from looking at the referenced WCS module image :->. These modules show up on eBay from time-to-time; system unit (backplane - BA11-Z) or complete unit are much less common. You may find the attached paper interesting; the 730 was used to emulate the MicroVAX by rewriting some if its microcode. "The required changes were simply a matter of removing the microcode for instruction execution while leaving that for operand decode. To finish the alterations, the design team had to write a new "exception generator" to create the emulation exceptions. ... We decided to replace the compatibility mode microcode with a new routine to generate the emulation exception. ..."

"Compatibility mode" was insufficient to run a PDP-11 OS natively; I/O and so on were routed via VAX instructions and within VMS. Theoretically one could rip out the VAX ISP and replace that microcode with microcode for direct Unibus control in order to run a native PDP-11 OS. Don't believe that anyone ever tried to do that. Would be interesting to try :->. Some hints may be found in https://dl.acm.org/doi/pdf/10.1145/24592.24597
 

Attachments

  • The Evolution of Instruction Emulation for the MicroVAX Systems.pdf
    6 MB · Views: 11
In case it helps (it may not): Several of the old storage controllers have a 16-bit 2901 processor (2911 sequencers, 12-bit micro-address space, IIRC) on them. UDA50, KDA50, KDB50, HSC50 (one of the boards in the chassis), etc.
...
Also, these same storage controllers used a dual sequencer (2 sets of three 2911's) that ran on opposite phases of the same clock, both running out of the same PROMs, but each running a different thread. One side handled Unibus traffic, the other handled SDI drive traffic.
Looking at those controllers is a neat idea! I infer that the dual-sequencer functionality is specific to the HSC50 as at least the UDA50 and KDA50 don't appear to include the requisite HW (based on their photos); KDB50 as well (https://www.ebay.com/itm/294154052586). However the KDB50 does have a microcode listing: http://www.bitsavers.org/pdf/dec/vax/vaxbi/KDB50_Microcode_Listing_Sep88.pdf (!) but only a modicum of documentation: http://www.bitsavers.org/pdf/dec/vax/vaxbi/EK-KDB50-UG-PRE_Jul85.pdf

Alas there's not much technical documentation from DEC, even BITD, for the guts of the HSC50. However the L0108 "K.sdi" (disk data channel) module does seem like it matches your description: https://www.ebay.com/itm/165310044506
 
As Al said above most UNIBUS CPUs were multiboard sets that either used over-the-top connectors or custom backplane wiring, or both, to go between boards.
There is no multiboard UNIBUS CPU that uses only UNIBUS to communicate between boards. And if you think about it for a while you will understand why that is so.

There is a single board UNIBUS CPU (the 11/04) so I suppose you could clone that (assuming you can get access to all the requisite devices like old bipolar PROMs.
Given how technology has changed you are about 20 to 30 years too late to contemplate such a project, especially if the goal is to use similar/identical chips to the original.
The clone wouldn't need to be exact if the OP chooses to simply reuse the design, replacing the LSI-based ALU/registers with VLSI bit-slice technology. Fast WSI devices could be substituted for the bipolar PROM. The existing microcode and data-path design would give a solid start for transposition to a 2901-based implementation of the ISP. Bus interface ICs can still be obtained; potentially even extracted from low-value peripheral modules (e.g., the various 8-channel serial interfaces). And the M7263 KD11-D 11/04 processor module itself would provide a side-by-side reference for comparing bus interface behaviors in the new design.
 
BTW @maguro, if you haven't already obtained a copy of "Computer Engineering: A DEC View of Hardware Systems Design" (Bell, C. Gordon & Mudge, J. Craig & McNamara, John E.) then you should .. to study the evolution of the implementation of the PDP-11 ISP. Many, many insights to be found there!
 
Looking at those controllers is a neat idea! I infer that the dual-sequencer functionality is specific to the HSC50 as at least the UDA50 and KDA50 don't appear to include the requisite HW (based on their photos); KDB50 as well (https://www.ebay.com/itm/294154052586). However the KDB50 does have a microcode listing: http://www.bitsavers.org/pdf/dec/vax/vaxbi/KDB50_Microcode_Listing_Sep88.pdf (!) but only a modicum of documentation: http://www.bitsavers.org/pdf/dec/vax/vaxbi/EK-KDB50-UG-PRE_Jul85.pdf

Alas there's not much technical documentation from DEC, even BITD, for the guts of the HSC50. However the L0108 "K.sdi" (disk data channel) module does seem like it matches your description: https://www.ebay.com/itm/165310044506
Hi Paul, All of those that I mentioned have the dual-sequencer architecture. And add to the list the RC25 controller [I knew a LOT about that module 41 years ago, because I designed the Manufacturing Functional Tester for it. Most of those brain cells are gone now...]

Correction: The micro-word is 48 bits, not 64.

In the KDB50 image you reference, the six 2911 sequencers are near the lower-center.
Looking at a picture, I see that the UDA has 12 PROMs instead of 6 -- I think that's just because the necessary density wasn't readily available at the time (circa 1980). If true, it would be easy to mod the board to use 6 chips.
The HSC's K.SDI board has the 2901 architecture, but does not have a Unibus or Q-bus, and the board is physically larger than any of the others.

The UDA50 would probably be the easiest to work with, because it has the fewest programmable/ASIC chips, and it's the only one that has Unibus.

Years ago in CXO, there was an unused/unwanted complete HSC50 sitting in a hallway. The plant manager told me I could have it -- I declined, because it was about the size and shape of a short-rack 11/23. It would be cool to have it now, although not useful...

2901-related story: Richie Lary [see https://www.computerhistory.org/collections/catalog/102737954 ] was the lead designer of the dual-sequencer controllers that started with the UDA. While debugging the prototypes, he needed a logic analyzer, but the commercial choices didn't do what he wanted (special trigger/capture features). So he designed his own LA. It was two quad boards that plugged into an 11/23 Q-bus backplane. Harry Siegler wrote most of the PDP software to support it. Several board sets were built (I think I still have one), but it wasn't actually used much - by the time it was ready, most of the issues had already been solved without it.

Pete
 
Back
Top