µCPU Documentation
Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto mode Back to homepage

General Purpose Registers

General Purpose Registers

Registers are small, fast memory which are close and easily accessible by the core components of the CPU. These are typically used for intermediate and temporary storage for intermediate values or data to be transferred to other areas of the CPU such as memory or IO. A common use is for instruction parameters in the ALU.

The CPU supports up to four registers: A, B, C and D. Each register has identical functionality. The registers hold 16 bit values and individual bytes are not accessible, only the full 16 bit value.

Each register has access to multiple busses in the CPU. 16 bit values may be read from the general data bus (d_bus_read) and correspondingly 16 bit values may be written (d_bus_write) to the data bus. Additionally, general purpose registers may write 16 bit values to ALU via the X (x_bus_write) and Y (y_bus_write) bus. Values may not be read from the X and Y bus by the general purpose registers.

Note
GPR (rev 1.3) [PDF] [SVG] [PNG]

Register Control

Four control signals control the operation of the general purpose register.

d_bus_read

Active high

Read the contents of the data bus into the register latch

d_bus_write

Active Low

Write the contents of the register latch onto the data bus

x_bus_write

Active Low

Write the contents of the register latch onto the X bus to be used by the ALU

y_bus_write

Active Low

Write the contents of the register latch onto the Y bus to be used by the ALU

Appendix

Schematic

General Purpose Register Schematic
Figure 1. General Purpose Register Schematic

BOM

Reference Quantity Value Datasheet Digikey Price Total

C1 - C11

11

1uf

C12 - C13

2

10uf

D0 - D15

16

Red LED

D16 - D19

4

Amber LED

R16 - R19

4

220R

RN1 - RN2

2

220R

Y1221CT-ND

U1 - U2

2

74HCT574

Datasheet

U3 - U10

8

74HCT245

Datasheet

U11

1

74HCT125

Datasheet