Designing an ALU
description
Transcript of Designing an ALU
Designing an ALU
Taken from various sourcesPrimary source: Digital Design and
Computer Architecture by Harris &Harris
ALU
• An arithmetic logic unit (ALU) – Performs arithmetic and logic
operations– A fundamental building block of
the Central Processing Unit (CPU) of a computer
– Even the simplest microprocessors contain one for purposes such as maintaining timers
– A combinational logic circuit
Complex ALU
Simple ALU
The S input is controlled by the processor based on the op code
5
full adder from a previous lecture
Adder
Adder/Subtractor
Textbook ALU
Our Target ALU, N=32
The F input is controlled by the processor based on the op code
Possible Implementationmodule alu (input [31:0] A, B, input [2:0] F, output reg [31:0] Y);
// implement everything using a case statement??? always @ (*) case (..) … endcase
endmodule
An Implementation
From Harris Text: a simple ALUA cover a cover a cover a cover a cover a cover a cover a cover
Test Cases
Test the Implementation
A simple testbenchA cover a cover a cover a cover a cover a cover a cover a cover
ALU Enhancements
1. Add a Zero output to the ALU. The output is TRUE when Y==0, otherwise it is FALSE.
1. Add and Overflow output to the ALU. The output is TRUE when the result of the adder overflows, otherwise it is FALSE.
An Implementation
From Harris Text: an enhanced ALUA cover a cover a cover a cover a cover a cover a cover a cover
A Better Testbench
• Improved Testbench• Data file