top of page

Central Processing Unit

In team of 2 students, within the course SOEN 228 System Hardware at Concordia University, a software engineering course, we have built a fully functional 4-bit processor that operates with a 16 x 4 bit ROM block as main memory, which is used to store instructions.

The general purpose registers, the program counter register (PC) and the memory address register (MAR), which acts as a processor-memory interface, form the whole processor. The whole computer is negative edge-triggered which means that clock signal pin of every register are activated at negative clock edge. Moreover, the output-enables of every register are active-low.

The computer makes use of a 4-bit bus to connect the majority of the processor’s components such as register A and B, the ALU, the SUM register, as well as the Program Counter and the Memory Address Register. Every component is connected in a way that it can transmit and receive data to and from the bus except for the ROM. In fact, the computer can only read data from the ROM since this is a Read Only Memory (ROM). This is why there is no return line from the memory to the processor. The Memory Address Register (MAR) allows the processor to send the current address of the Program Counter to the ROM in order to read an instruction.

Main Memory

The memory used is a 16 x 4 bit ROM block type memory and it is implemented using a ATTiny2313A microcontroller (MCU). This memory can only be read. If required, the firmware of the MCU can always be reprogrammed in order to change the internal instructions.

 

SUM Register

The SUM register provides a temporary storage after the execution of an addition by the Arithmetic and Logic Unit. This temporary storage is required in order to perform an ALU operation without getting any bus conflict. This allows the storage of the incremented value in the next clock cycle.

 

Arithmetic and Logic Unit

The Arithmetic and Logic Unit (ALU) is capable of performing an increment (add) operation to the inputted value. The design of the ALU doesn’t need control signals since the only operation that it is capable to do is an add operation.

 

General Purpose Registers

Both are 4-bit register used to store data.

 

Program Counter

The Program Counter register (PC) holds the current address to be executed. The address is intended to be incremented by the ALU from 0 to 15 in order to access different instruction in the memory.

 

Control Unit

The Control Signal Generator provides the signals required by both registers A and B and the SUM register. That piece of hardware is implemented using a combinational circuit making use of the ROM and the Timing Signal Generator. The Timing Signal Generator allows the synchronization of the computer. A total of 8 signals are generated by the Timing Signal Generator, which allow the Control Signal Generator to produce all the necessary timing signals and control signals needed for the processor.

Schematics

©2019 by Alexandre Michaud. Proudly created with Wix.com

bottom of page