Sunday, 5 January 2014

Register Design v0.2


Changes from v0.1

In developing the Register Board schematic and PCB the design has undergone a change from v0.1 in that the Temp register has been removed. This greatly simplified the design and eliminated a number of ICs as the Internal Data Bus can now be connected directly to the ALU right input. The Temp register was originally intended to optimise a few operations such as adding A to itself by avoiding a memory read/write operation. On balance the simplification in complexity will hopefully outweigh the loss.

Register Board v0.2 Design


The following drawing shows the Register design for the Juno. Juno has the following registers:

  • A - General purpose register
  • B - General purpose register
  • IX(L) - Index Register low byte
  • IX(H) - Index Register high byte
  • SP(L) - Stack Pointer low byte
  • SP(H) - Stack Pointer high byte
  • PC(L) - Program Counter low byte. 
  • PC'(L) - Copy of the Program Counter low byte. Connected to the Address bus.
  • PC(H) - Program Counter high byte.
  • PC'(H) - Copy of the Program Counter high byte. Connected to the Address bus.
  • MAR(L) - Memory Address Register low byte. Not visible to the programmer.
  • MAR(H) - Memory Address Register high byte. Not visible to the programmer.  
  • Status Register

Juno Register Design v0.2

 Status Register

The Status Register contains the following four ALU operation flags which are set when performing a mathematical operation
  • V - overflow
  • C - Carry
  • Z - Zero
  • N - Negative
The Status Register also contains two flags which can be set by ORing the Status Register
  • Interrupts disabled - when set interrupts are disabled. 
  • Reserved (for future use)
The Status Register is connected directly to the micro-code sequencer (and by a tri-state buffer to the Left Bus) and is used to implement instructions such as branching on conditions.

EagleCAD Board Design

The Eagle CAD schematic can be downloaded here and the PCB board here.

There was not enough space on the PCB to include the Status Register components therefore this will be placed on its own dedicated PCB. 
Register Board v0.2 PCB

EagleCAD PCB settings

  • Text - size 0.04, ratio 10%, font = vector
  • Mounting holes - 3.0mm mounting holes. Top left 0.20, 2.95. Bottom Right 3.75, 0.20
  •  Signal Net class - width 0.25mm, drill 0.25mm, clearance 0.25mm
  • Power Net class - width 0.3mm, drill 0.3mm, clearance 0.3mm
  • Signal 0.012inch (selected from EagleCAD's defaults)
  • Power 0.016inch (selected from EagleCAD's defaults. Slightly bigger than the 0.3mm minimum)
  • Ground plane on top and bottom. Isolation on polygon set to 0.012

Parts list

Part      Value          Package      Library  Position (inch)       Orientation

/OE_AB                   1X02         pinhead  (3.85 1.55)           R90
/OE_REG                  1X09         pinhead  (1.9 0.1)             R0
A         74HC574N       DIL20        74xx-eu  (0.4 0.9)             R90
ABUS0..7                 1X08         pinhead  (0.9 3.05)            R0
ABUS8..15                1X08         pinhead  (3.85 2.35)           R90
ALU-ZBUS                 1X08         pinhead  (3.85 0.9)            R90
B         74HC574N       DIL20        74xx-eu  (0.85 0.9)            R90
C1        0.1uF          C050-030X075 rcl      (0.5 0.2)             R270
C2        0.1uF          C050-030X075 rcl      (3.05 1.65)           R0
C3        0.1uF          C050-030X075 rcl      (1.7 1.65)            R0
C5        0.1uF          C050-030X075 rcl      (2.15 1.65)           R0
C6        0.1uF          C050-030X075 rcl      (0.8 0.25)            R0
C7        0.1uF          C050-030X075 rcl      (3.4 0.2)             R270
C8        0.1uF          C050-030X075 rcl      (1.25 0.25)           R0
C9        0.1uF          C050-030X075 rcl      (1.7 0.25)            R0
C10       0.1uF          C050-030X075 rcl      (2.15 0.25)           R0
C11       0.1uF          C050-030X075 rcl      (2.6 0.25)            R0
C12       0.1uF          C050-030X075 rcl      (3.05 0.25)           R0
C15       0.1uF          C050-030X075 rcl      (2.6 1.65)            R0
C17       10uF           E5-5         rcl      (1.65 3.05)           R180
IX(H)     74HC574N       DIL20        74xx-eu  (1.75 0.9)            R90
IX(L)     74HC574N       DIL20        74xx-eu  (1.3 0.9)             R90
LBUS                     1X08         pinhead  (0.1 0.9)             R90
L_REG                    1X13         pinhead  (0.1 2.1)             R90
MAR(H)    74HC574N       DIL20        74xx-eu  (3.1 2.35)            R90
MAR(L)    74HC574N       DIL20        74xx-eu  (2.2 2.35)            R90
PC'(H)    74HC574N       DIL20        74xx-eu  (2.65 2.35)           R90
PC'(L)    74HC574N       DIL20        74xx-eu  (1.75 2.35)           R90
PC(H)     74HC574N       DIL20        74xx-eu  (2.65 0.9)            R90
PC(L)     74HC574N       DIL20        74xx-eu  (2.2 0.9)             R90
PWR                      1X02         pinhead  (2 3.05)              R0
SP(H)     74HC574N       DIL20        74xx-eu  (3.55 0.9)            R90
SP(L)     74HC574N       DIL20        74xx-eu  (3.1 0.9)             R90

No comments:

Post a Comment