- Altera EP4CE15 FPGA.
- 4K of 12-bit words SRAM memory in the FPGA. Loadable at power on.
- UART with USB Serial for terminal interface.
- Custom Front Panel PCB based on the PDP-8/F front panel.
Tom has a website listed at the end of his book. Tom's website includes the C source code for a PDP-8 assembler as well as some example code.
The PDP-8 assembler does not compile under Windows with Visual Studio but it does compile under Linux. I'm running GCC under VirtualBox with Linux Mint.
DEC Bin to MIF file Converter
A major contribution was to write a DEC Bin file to MIF file converter. This allows the program to be stored in the FPGA and loaded when the FPGA is started up. The program is assumed to always start at address 200 (oct).
I've designed a Front Panel modelled on the PDP-8/F. I used orange LEDs to match the PDP-8/E colors (Wikipedia picture). The panel has a button which selects what is shown on the LEDs. The Front Panel design is 95x95mm and is designed to fit in a stack-up above the RETRO-EP4CE15 card.
The Front Panel card has a 2x25 pin connector which wires to the RETRO-EP4CE15 I/O connector. The card does not use 9 of the 50 pins so these can be used by the FPGA card design for other functions. The Front Panel card provides extra 3.3V Power/ground connections for other peripheral cards.
Front Panel Features
- 12 slide switches for entering PC, Memory Address, Memory Data, and Accumulator values
- 12 Orange or Red LEDs
- Bits count up from left to right
- Display Select pushbutton cycles between PC, Memory Address, Memory Data, and Accumulator
- (4) LEDs display which function is displayed on the 12 LEDs
- STEP - Single Step
- LDPC - Load Program Counter
- DEP - Deposit data to memory
- LDA - Write the Accumulator
- RES - Reset the CPU
- PB1 - Spare Pushbutton
- LNK - Slide switch to set the Link Bit
- LINK LED - Display the Link Bit value
- RUN - Run LED
- RUN/HALT - Slide switch for run or halt
- Power LED
Real PDP-8/e Front Panel
RETRO-EP4E15 Base Card
The base card provides quite a few functions which could be used in an expanded design.
- USB-Serial - used as the TTY Serial Connection - USB B connector powers the card
- SD Card
- VGA (2:2:2 R:G;B)
- PS/2 Keyboard
- Additional 2x6 right angle header with grounds for configuration jumpers (requires pullups in the FPGA)
- J1 - 2x25 I/O connector maps directly to Front Panel connections (with pins left over for other external functions)
FPGA Resources (in Cyclone IV EP4CE15)