SoCDP8
                                
                                 SoCDP8 copied to clipboard
                                
                                    SoCDP8 copied to clipboard
                            
                            
                            
                        A SoC implementation of a PDP-8/I for the PiDP-8/I console
SoCDP8    
   
This is an implementation of the 1968 DEC PDP-8/I on 
a Xilinx Zynq, a FPGA controller with an ARM CPU.
Built on the PiDP-8/I Console by Oscar Vermeulen, 
it acts as a replacement for the Raspberry Pi approach.

Why a SoC?
Drawback of the Raspberry Pi + Linux + SIMH approach:
- Inaccurate Simulation : Doesn't allow for single stepping
- Long Boot Times : Linux takes a few seconds to boot and start SIMH
- Dangerous Shutdown : In the default Raspberry Pi setup, Linux needs a proper shutdown to avoid corrupting the file system
The SoCDP8 implements the PDP-8/I in VHDL, targeting FPGAs.
Design
The system is modeled exactly as described in the 
Maintenance Manual  and Engineering Drawings.
The manual is treated as the project specification, registers 
and signals are named as described in the book and register 
transfers are modeled as specified in the drawings.
Peripherals
Peripherals are implemented on the ARM CPU on the SoC.
This makes device implementation such as the teletype fairly easy.
Code for peripherals can access the onboard 
SD Card to retrieve tapes, disk images, ..
When connected to the Ethernet / WiFi, the system, including 
its peripherals, can be controlled with a Web Browser.
Project Goals
- 
Implementing the system as close as possible to the original specifications. 
- 
Providing a simple replacement for the Raspberry Pi, 
 ideally the project runs on a SoC board that snaps into
 the PiDP-8/I Console in the same way the Pi does.
- 
Have it be operable through a browser using 
 a web socket connection between a web server
 on the ARM and the PDP-8 on the FPGA.
Supported SoCs
The project currently only targets the Zynq board 
and utilizes the Pynq-Z2 for development only.
Tested Boards
| Board | |
|---|---|
| ZynqBerry | Xilinx Zynq 7010 - 130€| Good Availability- Raspberry Pi form factor - No free GPIO pins - Has the smallest Zynq | 
| Pynq-Z2 | Xilinx Zynq 7020 132€| Good Availability- Raspberry Pi Connectors - Spare GPIO pins, such as a PMOD pin, useful for sensors - Switches, buttons, LEDs - Requires a ribbon cable to fit in the PiDP-8/I box | 
Other Boards
| Board | |
|---|---|
| DE0-Nano-SoC | Altera Cyclone V - 125€| International Shipping- Incompatible 40 pin connector, requires adapter. - Many free GPIO pins - Switches, buttons, LEDs | 
Project Status
Functional
- Base System
- Timesharing
- Data Breaks
- Interrupts
- EAE
- I/O
These features pass the MAINDEC tests and 
can be loaded using the RIM / BIN loaders.
Can Run
- Focal69
- TSS/8
- OS/8
Peripherals
Implemented in software with only basic functionality.
Deviations
To have the PiDP-8/I work with the Zynq boards, 
unfortunately a little modification had to be made.
The 1KΩ resistors had to be replaced by 220Ω ones 
to support the pullup resistance of the Zynq drivers.
Thankfully, 220Ω is compatible with the Raspberry Pi as well so these resistors also support the original system.