Skip to the content
PCBKitNew board
2 layersEDiCPoster, the printed circuit board in 3D

EDiCPoster

Nik-Sch/EDiC1

Developement, Simulation and Emulation of an 8 bit CPU including a Software Framework for my Masters Thesis

Copper layers
2
Thickness
1.6 mm
Parts
176
Nets
306
Pads
1,229
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 5 (file 20171130)
Created
14 Nov 2020
Updated
22 Feb 2023

Overview

EDiCPoster is an open-source printed circuit board by Nik-Sch, from the Nik-Sch/EDiC repository on GitHub. It is a 2-layer board with 176 parts on 306 nets.

It is built around the 74LS245SC, 74LS157PC and 74LS86, with the 74LS32SC, 74LS377PC and 74LS273PC among its other parts. Its parts include 60 ICs, 58 resistors, 51 diodes, 5 capacitors and 1 switch. It belongs with the retro computing and games boards of this library.

Main components

10

README

README.md

EDiC - Educational Digital Computer

SystemVerilog simulation of an 8 bit discrete TTL CPU I am building for fun. The final CPU will be similar to Ben Eaters Project with some differences and the following features:

  • I printed prototype PCBs that reassembles 830 Breadboards with some improvements.
  • Two general purpose registers.
  • ALU with add/sub, AND, XOR and left/right shift operations
  • 512 byte instruction EEPROM (256 byte instruction, 256 immediate values)
  • 256 byte program SRAM
  • 8bit input and output registers

Full documentation is available as my masters thesis.

Update 08.03.2022 - EDiC is finished

The EDiC is finished and plays snake ;)

image

Update 25.10.2021 - new name - new future

This project is getting a revival as I am rebuilding it with a few key changes and improvements. It will get a real clock, one big multilayer PCB and stack pointer, 16bit ram/rom addressing and a lot more.

Update 21.01.2021 - 8bit-CPU is finished!

  • I debugged a lot of tiny bugs todo with writeEnable and especially clockEnable signals
  • Mounted all PCBs to look nice

image

Update 15.01.2021

First program got executed!
  • I finished building everything and after about a week of endless debugging bugfixing the first program ran correctly.
  • The gif below shows how the CPU executes 6² and outputs the result which is shown in hexadecimal (6²=36=0x24).

image

Update 22.12.2020

Update of the final(ish) layout:
  • I finished and interconnected all of the data path + bus, except for the PC at the bottom.
  • The ALU + regset + SRAM is fully functional with some debugging effort like pulling up all connections to the 5V CMOS SRAM which has an higher voltage requirement for high level inputs.
  • Half of the control logic has wires and I decided to swap the two control boards for better interconnection.

image

Update 13.12.2020

First picture of the final(ish) layout:
  • On top of all boards is the clock module which is basically the clock module by Ben Eater with 555 timers which features an automatic clock which speed is settable by a potentiometer an a manual, debounced clock pulse with a push button. I also added an SR latch for a halt signal which is resettable by a push button to be used as input to the CPU.
  • Red shows the ALU with two 4 bit adders on the left side (with one aluOp MUX. The top right board is a variable width shifter build with three 8 bit MUXs. For enabling left/right shift the last ALU board includes two MUXs to reverse the input and the final two aluOp MUXs.
  • Purple shows the register set on the left with a MUX for the A input of the ALU and one MUX + Tristate Transceiver to the bus. The bottom board will include LEDs for the registers and the right board includes aluOut register + Tristate, LEDs and register clock enable logic.
  • The blue encircled board contains the RAM module with an memory address register, the sockeled instruction EEPROM + SRAM.
  • Green will be the control logic with two instruction decode EEPROMs (for 16 control bits) + instruction register on the left. The right board includes a 4bit step register for the multicycle control + incrementor (4bit half adder) + logic for external control signals like the halt signal.
  • The orange boards finally include the program counter + incrementor + Tristate Transceiver and load from bus MUX.

image

Parts

176
QtyValueFootprintReferences
551kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +39
37LEDLED_THT:LED_D3.0mmD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +21
2074LS157Package_DIP:DIP-16_W7.62mmU13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28 +4
974LS86Package_DIP:DIP-14_W7.62mmU1, U3, U6, U8, U11, U12, U47, U52, U54
774LS08Package_DIP:DIP-14_W7.62mmU2, U4, U7, U9, U46, U53, U55
574LS32Package_DIP:DIP-14_W7.62mmU5, U10, U41, U42, U59
574LS377Package_DIP:DIP-20_W7.62mmU29, U30, U31, U39, U43
328C64Package_DIP:DIP-28_W15.24mmU37, U48, U49
374LS273Package_DIP:DIP-20_W7.62mmU44, U45, U56
20.01uCapacitor_THT:C_Radial_D6.3mm_H5.0mm_P2.50mmC1, C3
20.1uCapacitor_THT:C_Radial_D6.3mm_H5.0mm_P2.50mmC4, C5
210MResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR51, R55
274LS245Package_DIP:DIP-20_W7.62mmU36, U60
274LS257Package_DIP:DIP-16_W7.62mmU34, U35
2NA555PPackage_DIP:DIP-8_W7.62mmU50, U51
2instrNWELED_THT:LED_D3.0mmD33, D51
10.1uCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC2
11MResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR56
11MPotentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_VerticalRV1
174LS00Package_DIP:DIP-14_W7.62mmU40
1AS6C1008-55PCNPackage_DIP:DIP-32_W15.24mmU38
1SW_PushButton_Switch_THT:SW_PUSH_6mmSW1
1aluNOELED_THT:LED_D3.0mmD35
1aluSelLED_THT:LED_D3.0mmD41
1aluYNWELED_THT:LED_D3.0mmD36
1instrSelLED_THT:LED_D3.0mmD34
1marNWELED_THT:LED_D3.0mmD42
1ramOELED_THT:LED_D3.0mmD44
1ramSelectLED_THT:LED_D3.0mmD46
1ramWELED_THT:LED_D3.0mmD43
1reg0NWELED_THT:LED_D3.0mmD37
1reg1NWELED_THT:LED_D3.0mmD38
1regBusNOELED_THT:LED_D3.0mmD40
1regBusSelLED_THT:LED_D3.0mmD39

Questions

What parts does the EDiCPoster use?

176 parts, built around the 74LS245SC, 74LS157PC, 74LS86 and 74LS32SC. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the EDiCPoster KiCad files?

From the Nik-Sch/EDiC repository on GitHub, at the commit this page was made from: the board is schematic/CPU-Poster/EDiCPoster.kicad_pcb and its schematic schematic/CPU-Poster/EDiCPoster.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the EDiCPoster design in my own project?

Its repository states no licence, so its author keeps all rights: ask Nik-Sch before reusing the design.

Similar boards

  • 2 layers426 × 307 mmI7000, the printed circuit board in 3D

    I7000

    felipesanches/Itautec_I7000_KICAD

    Esquemáticos do computador Itautec I-7000 G desenhados a partir de inspeção do circuito das PCBs

    115 parts
  • 2 layers244 × 244 mm6809PC-6U, the printed circuit board in 3D

    6809PC-6U

    danwerner21/6809PC

    6809 PC

    167 parts2
  • 2 layers206.4 × 137.5 mmControl, the printed circuit board in 3D

    Control

    tergav17/RDP-9

    Homebrew TTL ISA-compatible PDP-9 clone

    67 parts6
  • 2 layers370.8 × 298.5 mm8 Bit Computer, the printed circuit board in 3D

    8 Bit Computer

    The-Invent0r/8-bit-Computer-PCB

    These are the KiCAD files for my 8-Bit Computer.

    323 parts142
  • 2 layers156 × 100.1 mmVIO MPF v2.0, the printed circuit board in 3D

    VIO MPF v2.0

    electrickery/VIO_MPF_I

    Extended firmware for the 6845 based video card for the Microprofessor MPF-I(b)

    64 parts4
  • 6 layers414 × 187.5 mm8-Bit PC, the printed circuit board in 3D

    8-Bit PC

    dragonruler1000/8-bit_computer

    331 partsMIT
  • 4 layers246.4 × 185.4 mm8bit computer, the printed circuit board in 3D

    8bit computer

    tonygilkerson/8bit-computer

    8-bit Computer by Ben Eater

    281 parts
  • 2 layers295 × 195 mmTB04addr8bit copy, the printed circuit board in 3D

    TB04addr8bit copy

    Myuu1967/TB-04

    4bitCPU(TB-04)に関するリポジトリです

    307 parts