Skip to content

fpw/SoCDP8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SoCDP8   Badge Hardware   Badge Software

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.



Preview



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.


About

A SoC implementation of a PDP-8/I for the PiDP-8/I console

Topics

Resources

License

AGPL-3.0, Unknown licenses found

Licenses found

AGPL-3.0
LICENSE
Unknown
LICENSE-HARDWARE

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published