Table of Contents
Introduction
David Conroy over at http://www.fpgaretrocomputing.org/pdp10x has created a (customized) PDP10-on-FPGA system which he calls the PDP-10/X, and has extensively documented his work on that site. In October 2018, he made an archive of the development environment of this system available to a member of the RetroBrewComputers.org community, who posted that archive here: https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=333
In that thread, there were efforts to use some of Conroy's existing boards and to use newly manufactured boards to create a working system. However, both approaches required soldering a 208-pin 0.5mm pitch TQFP package for the FPGA, which is challenging to say the least.
I noticed that the same FPGA, a Xilinx Spartan 3E, was available as a development board from WaveShare.com, so no SMT soldering required. (They make the same board available on eBay and AliExpress). After checking that enough pins were available on the FPGA board, I set out to create a new system board in KiCad. I eventually got that redesign of the system board to work, and posted my results in that thread.
I decided that since the FPGA is a bit expensive ($35), the board could stand to have more utility than just running Conroy's PDP-10/X, so I added the parts needed to run a Multicomp system to get to the board described here.
Features
- Supports the WaveShare Core3S500E board, which contains a Xilinx Spartan 3E with about 500K logic elements (LE), about 45K on board SRAM, and 116 I/O pins. The board is designed to be pin compatible with other WaveShare FPGA boards, including some of the Altera ones, but I have not used one of those yet.
- 2.5 MB of SRAM (5x 512KB by 8 SRAM chips)
- 4MB of Serial EEPROM, used by the PDP-10/X (could be supported by Multicomp but currently is not).
- TTL 6-pin Serial port (used by both PDP-10/X and Multicomp)
- DS1337 I2C Real Time Clock, with coin-cell battery backup (PDP-10/X support only)
- 40-pin IDE port (PDP-10/X support only, can be used as general GPIO in a Multicomp system)
- WizNet Ethernet support (PDP-10/X only)
- VGA, PS/2 (5V & 3.3V) and SD card interfaces (Multicomp only)
The board uses a standard 5V/2A wall-wart DC power supply with a 5.5mmx2.1mm connector jack.
Schematics and Build Files
My board, schematics, layout files and code changes are made available under the Creative Commons BY-SA-NC 4.0 license.
Item | File |
---|---|
Schematics | pdp10x_v01_schematic.pdf |
Manufacturing Files (Gerbers) | pdp10x_v01.zip |
KiCad Files | On GitLab: pdp10x_system_board |
Acknowledgements and Licenses
For the PDP-10X, thanks to David Conroy for making his extensive work available. I've simply reimplemented his System Board in KiCad and added some Multicomp compatibiilty. But all of the Verilog to implement the PDP-10/X is his work.
For Multicomp, thanks to Grant Searle for making the original system available. His work was published with the following license:
“By downloading these files you must agree to the following: The original copyright owners of ROM contents are respectfully acknowledged. Use of the contents of any file within your own projects is permitted freely, but any publishing of material containing whole or part of any file distributed here, or derived from the work that I have done here will contain an acknowledgement back to myself, Grant Searle, and a link back to this page. Any file published or distributed that contains all or part of any file from this page must be made available free of charge.” http://searle.x10host.com/Multicomp/index.html, retrieved 01/27/2020.
Thanks to Rienk Koolstra (rhkoolstar) for his useful extensions to the Z80 Multicomp (MC-2G-1024) system. He also provided me a PS/2 connector footprint when I could not find a decent one.
Thanks to Jose Luis Collado (positron) for his work in porting Multicomp to the Xilinx-based Papilio Duo board. I've reused some of that work here.
(If there is no license mentioned for the above works, it's because I could not find one. Please send corrections.)
Bill of Materials (BOM)
There are a few items that can't or shouldn't be purchased from the usual electonic part distributors (unavailable or too expensive):
- Waveshare Core3S500E Xilinx Spartan-3E FPGA board. https://www.waveshare.com/product/fpga-tools/xilinx/core/core3s500e.htm. Also available on eBay or AliExpress.
- Xilinx Platform Cable USB Programmer. Also available from Waveshare (https://www.waveshare.com/product/fpga-tools/xilinx/programmers-debuggers/platform-cable-usb.htm), but cheaper on Ebay/AliExpress. On Ebay/AliExpress, make sure you get the version that has the small breakout board and extra cables.
- SPI ROM Programmer. The usual MiniPRO TL866CS works fine.
- A USB-to-serial adapter. The board is designed to use the Adafriut FTDI Friend (https://www.adafruit.com/product/284). Other breakout boards may be compatible.
- 2x “2mm Pitch 2×30 Pin 60 Pin Female Double Row Straight Pin Header Strip.” Expensive at the usual distributors, so find on Ebay/AliExpress using this quoted search term.
- A 5V, 2A, 5.5mm x 2.1mm regulated DC power supply (wall wart). Very common, buy at your favorite supplier.
- A 6-32 screw and nut for the LM1086 voltage regulator.
- [Multicomp] A microSD breakout board. Search Ebay/AliExpress for “arduino mini microsd module.” Try to find one without the header pins attached. If you get one with headers attached, you'll need to remove (desolder) the pins that come on the board.
- [Multicomp] A 1 GB or greater microSD card (SDHC).
- [PDP-10/X] A 256 MB or greater compact flash card, and some way to get a disk image onto the flash card.
- [PDP-10/X] A compact flash to IDE adapter. They are available here on NewEgg.com: https://www.newegg.com/syba-sd-cf-ide-di-ide-to-compact-flash/p/N82E16822998003. Also available cheaper on eBay/AliExpress, but make sure the picture matches the NewEgg one.
The rest of the BOM is listed in the table below. Here is text file that you can copy & paste in to Mouser's BOM tool. After you add the BOM to Mouser's cart, be sure to carefully review your the parts list and remove parts you already have or are getting elsewhere.
Reference | Quantity | Item | Description | Mouser Part No. |
---|---|---|---|---|
C101, C102, C601 | 3 | 10uF | Tantalum Capacitors - Solid Leaded 25V 10uF 10% ESR=2.5 Ohms | 581-TAP106K025SCS |
C301, C501-C505, C602 | 7 | 0.1uF | Multilayer Ceramic Capacitors MLCC - Leaded 0.1uF 50volts 10% X7R 5mm LS | 594-K104K15X7RF53H5 |
D601, D602 | 2 | 1N4148 | Diodes - General Purpose, Power, Switching 100V Io/200mA BULK | 512-1N4148 |
J1 | 1 | Barrel_Jack | DC Power Connectors Power Jacks | 490-PJ-002A |
J101, J102 | 2 | Conn_02x30_Odd_Even | Headers & Wire Housings 2.00 mm FleXYZ Cost-effective Tiger Buy Square Tail Socket Strip | 200-SQT13001FD (much cheaper on eBay/AliExpress) |
J103 | 1 | Conn_02x16_Odd_Even | Headers & Wire Housings 32P DR STRT RECPT 2MM LEAD LENGTH | 798-A3C-32DA-2DSC71 |
J104 | 1 | Conn_02x12_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x12_P2.54mm_Vertical | 649-67997-272HLF |
J3, J105 | 2 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | 538-42375-1855 |
J201 | 1 | Conn_02x20_Odd_Even | Headers & Wire Housings 40P R/A SOLDER TAIL HIGH TEMP | 517-N2540-5002RB |
J901, J902 | 2 | Conn_02x14_Odd_Even | Connector_PinSocket_2.54mm:PinSocket_2x14_P2.54mm_Vertical | 649-67997-272HLF |
J903 | 1 | DB15_Female_HighDensity | D-Sub High Density Connectors RA 15POS FEM Steel | 636-193-015-213R531 |
J904 | 1 | Mini-DIN-6 | DIN Connectors Mini Din Connectors | 490-MD-60SM |
JP201 | 1 | Jumper | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | 538-42375-1855 |
Q901, Q902 | 2 | 2N7000 | MOSFET N-CHANNEL 60V 200mA | 512-2N7000 |
R301, R302, R303, R313, R314,R501-R504,R803,R804,R901,R909-R913 | 17 | 10K ohm resistor | Carbon Film Resistors - Through Hole 10Kohm 5% 1/4W | 603-CFR25SJT-52-10K |
R305, R306 | 2 | 220 ohm resistor | Carbon Film Resistors - Through Hole 220ohm 5% 1/4W | 603-CFR-25JT-52-220R |
R401-R425 | 25 | 33 ohm resistor | Carbon Film Resistors - Through Hole 33 Ohm 5%TR 1/4W | 603-CFR-25JR-5233R |
R601, R801, R802 | 3 | 1K ohm resistor | Carbon Film Resistors - Through Hole 1/4W 1K Ohm 1% | 603-CFR-25JT-52-1K |
R602, R603 | 2 | 1.8K ohm resistor | Carbon Film Resistors - Through Hole 1.8K ohm 1/4W 5% | 603-CFR-25JR-521K8 |
R805, R902 | 2 | 560 ohm resistor | Carbon Film Resistors - Through Hole 1/4W 560 Ohm 5% | 603-CFR-25JR-52-560R |
R903, R905, R907 | 3 | 680 ohm resistor | Carbon Film Resistors - Through Hole 680 OHM 2% 1/4W | 660-CFS1/4CT52R681G |
R904, R906, R908 | 3 | 470 ohm resistor | Carbon Film Resistors - Through Hole 470 OHM 2% 1/4 | 660-CFS1/4CT52R471G |
U1 | 1 | LT1086-3.3 | LDO Voltage Regulators 3.3V Low Dropout Pos VR 1.5A | 584-LT1086CT-3.3#PBF |
U301 | 1 | W25Q32JV | NOR Flash spiFlash, 32M-bit, DTR, 4Kb Uniform Sector | 454-W25Q32JVDAIQ |
U501-U505 | 5 | AS6C4008-55PCN | SRAM 4M, 2.7-5.5V, 55ns 512K x 8 Asynch SRAM | 913-AS6C4008-55PCN |
U601 | 1 | DS1337 | Real Time Clock IC Serial Real-Time Clock | 700-DS1337 |
U901 | 1 | 74LS244 | Buffers & Line Drivers Tri-State Octal | 595-SN74LS244N |
X301,X601 | 2 | 8 pin DIP Socket | IC & Component Sockets 8P TIN PIN TIN CNT | 575-144308 |
X501-X505 | 5 | 32 Pin DIP Socket | IC & Component Sockets 32P TIN PIN TIN CONT | 575-1144632 |
X901 | 1 | 20 pin DIP Socket | IC & Component Sockets 20P TIN PIN TIN CONT | 575-199320 |
Y601 | 1 | 32.768 kHz | Crystals 32.768KHz10ppm 6pF | 695-CFS-20632768EZBB |
A901 | 1 | WIZ830MJ | WIZ830MJ: Networking Modules W5300+MAG JACK | 950-WIZ830MJ ($25 at Mouser) |
BT601 | 1 | CR3032 | Coin Cell Battery 3V 30 X 3.2 MM 500mA | 658-CR3032 |
X601 | 1 | Battery_Cell | Coin Cell Battery Holders 20MM VERT SLIMLINE | 534-1065 |