Skip to the content
PCBKitNew board
2 layers96.5 × 104.1 mm4bitalu, the printed circuit board in 3D

This project is derived from my ECPE 2504 class that I took at Virginia Tech. The project was submitted on March 18, 1998.

Size
96.5 × 104.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
53
Nets
45
Pads
225
Tracks, vias
779, 14
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
30 Nov 2023
Updated
9 Dec 2023

Overview

4bitalu is an open-source printed circuit board by lefticus, from the lefticus/4bitalu repository on GitHub. It is a 2-layer board of 96.5 × 104.1 mm with 53 parts on 45 nets, routed with 779 tracks and 14 vias.

It is built around the 74LS00SC and 74LS175PC. Its parts include 20 diodes, 10 resistors, 8 capacitors, 8 ICs and 3 switches.

Main components

2

README

README.md

4bitalu

digikey BOM

Background

This project is derived from my ECPE 2504 class that I took at Virginia Tech. The project was submitted on March 18, 1998.

The goal of the class project was to create a "Nibble Slice ALU".

This was a project that had:

  • A 4 bit register (SR Latch Flip-Flop)
  • 4 bit opcode input
  • 4 bit operand input

We were allowed to use 7400 series TTL logic chips

  • 74153 4-bit multiplexers (x2)
  • 74175 Flip-Flop
  • 7483 4-bit adder
  • 7400 Quad NAND (x3)

The projects were built on breadboards with jumpers, switches, chips provided by the university (no pictures of the original were taken)

Requirements:

  • 'A' input is the 4bit flip-flop
  • 'B' input is a 4bit dip switch
  • OpCode is a 4bit dip switch
  • 8 instructions were required
    1. A <- A (Hold)
    2. A <- shr A (Shift-Right A)
    3. A <- A+B (Add B to A)
    4. A <- A+B+1 (Add B to A + 1)
    5. A <- A+1 (Increment A)
    6. A <- A' (Complement A)
    7. A <- 0 (Clear A)
    8. A <- A' OR B (Imply)

8 instructions were required - but we have 16 possible opcodes. That means we ended up with an additional 8 "unintended" or "undocumented" OpCodes!

The original product requirements doc follows:

Original Requirements Doc

Original Design

2023 Build

I decided 25 years later to try my hand at PCB design and to actually build this old project. This took 2 revisions:

  1. Rev 1 had several issues
  • Power pins were not connected
  • Clock signal was not connected
  • All of the bits input to the adder were reversed because the new tool I was using (KiCad) had the pins in a different order compared to the schematics from 1998
  • The register LEDs were actually connected to the output of the adder, not to the output of the Flip-Flop (so I was reading what would be, not what currently was!)
  1. Rev 2 fixed those problems, and did not introduce any new ones, it does work!
  • Except that the pull-down resistors for the inputs are spec'd too high, so the carry-in bit to the adder was always around 1 volt.
  • This should not have been a problem, those adders should not register high unless the value is at least 2v, but it was always Carrying-In an extra bit (effectively every result was the expected result + 1)
  • Also many (optional) LEDs are added for observing the processes in play
  1. Rev 3 is currently in process
  • Adds power filtering capacitors to the VCC of the 74's chips
  • Inverts the output of the clock switch (in rev2 down is high and up is low)
  • Adds an LED to show the current state of the clock input

These project files are all in KiCad format, if anyone wishes to fork / build their own / test this stuff out too

Images

Rev 1

Rev 1 Empty

Rev 1 Front

Rev 1 Back with bodge wires

Rev 2

Rev 2 Empty

Rev 2 Running!

Parts

53
QtyValueFootprintReferences
8.1ufCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC1, C2, C3, C4, C5, C6, C7, C8
81kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8
225kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR9, R10
174LS00Package_DIP:DIP-14_W7.62mmU8
174LS00 - Stage1Package_DIP:DIP-14_W7.62mmU3
174LS00 Stage0-1Package_DIP:DIP-14_W7.62mmU6
174LS00 Stage0-2Package_DIP:DIP-14_W7.62mmU5
174LS153 - 0Package_DIP:DIP-16_W7.62mmU4
174LS153 - 1Package_DIP:DIP-16_W7.62mmU7
174LS175Package_DIP:DIP-16_W7.62mmU1
174LS283Package_DIP:DIP-16_W7.62mmU2
1CarryInLED_THT:LED_D3.0mmCarry In1
1CarryOutLED_THT:LED_D3.0mmCarry Out1
1ClockStateLED_THT:LED_D3.0mmClockState1
1InBit0LED_THT:LED_D3.0mmD8
1InBit1LED_THT:LED_D3.0mmD7
1InBit2LED_THT:LED_D3.0mmD6
1InBit3LED_THT:LED_D3.0mmD5
1Input ValuePackage_DIP:DIP-8_W7.62mmSW3
1LHS0LED_THT:LED_D3.0mmD13
1LHS1LED_THT:LED_D3.0mmD12
1LHS2LED_THT:LED_D3.0mmD15
1LHS3LED_THT:LED_D3.0mmD9
1MidBit0LED_THT:LED_D3.0mmD19
1MidBit1LED_THT:LED_D3.0mmD21
1MidBit2LED_THT:LED_D3.0mmD18
1MidBit3LED_THT:LED_D3.0mmD14
1OpcodePackage_DIP:DIP-8_W7.62mmSW2
1PowerConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1RHS0LED_THT:LED_D3.0mmD16
1RHS1LED_THT:LED_D3.0mmD17
1RHS2LED_THT:LED_D3.0mmD20
1RHS3LED_THT:LED_D3.0mmD11
1RegBit0LED_THT:LED_D3.0mmD3
1RegBit1LED_THT:LED_D3.0mmD4
1RegBit2LED_THT:LED_D3.0mmD2
1RegBit3LED_THT:LED_D3.0mmD1
1SW_SPDTButton_Switch_THT:SW_Slide_1P2T_CK_OS102011MS2QSW1

Questions

How big is the 4bitalu PCB?

It measures 96.5 × 104.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the 4bitalu use?

53 parts, built around the 74LS00SC and 74LS175PC. 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 4bitalu KiCad files?

From the lefticus/4bitalu repository on GitHub, at the commit this page was made from: the board is 4bitalu/4bitalu.kicad_pcb and its schematic 4bitalu/4bitalu.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the 4bitalu design in my own project?

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

Similar boards

  • 2 layers407 × 184 mmTRS-80-Model I G E1, the printed circuit board in 3D

    TRS-80-Model I G E1

    RetroStack/TRS-80-Model-I-G-E1

    Hardware Replica of the TRS-80 Model I Revision G

    230 parts57MIT
  • 4 layers337.6 × 105.7 mmISA CGA, the printed circuit board in 3D

    ISA CGA

    hkzlab/CGA_Redux

    The Color Graphics Adapter Redux board is a more or less faithful clone of the original IBM CGA, based on the original schematics

    170 parts56
  • 2 layers155.2 × 78.6 mm80ColumnCard, the printed circuit board in 3D

    80ColumnCard

    btb/80ColumnCard

    An Apple II 80-Column Card. Based on the Videx Videoterm

    47 parts43Apache-2.0
  • 2 layers99.1 × 99.1 mmPlusd, the printed circuit board in 3D

    Plusd

    alvaroalea/plusD-clone

    Schematic of a clone of the Disk Interface +D for the ZX Spectrum

    69 parts25
  • 4 layers308 × 225.4 mmE800j rev c, the printed circuit board in 3D

    E800j rev c

    codepainters/e800j

    Elwro 800 Junior replica

    483 parts16
  • 2 layers478 × 183 mmHC2000, the printed circuit board in 3D

    HC2000

    badrianiulian/HC2000

    HC2000 Project

    259 parts9
  • 2 layers91.7 × 48 mmExpansion, the printed circuit board in 3D

    Expansion

    iss000/OricExos

    Multi Oric Mega Demo.

    27 parts5
  • 2 layers221.5 × 149.5 mmZX1, the printed circuit board in 3D

    ZX1

    misterblack1/zenith_zt1

    Information gathered on the Zenith ZT-1 / ZT-10 / ZT-11 and ZTX/ZT-x-A variants

    140 parts5