-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathALUControl.v
48 lines (37 loc) · 822 Bytes
/
ALUControl.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//ALU Control Unit
module ALUControl(instruc,control);
input [3:0] instruc;
//leading bit used for mux source in mem stage
output reg [4:0] control;
always @ (*)begin
case(instruc)
//add control signal
4'b0000: control = 5'b00000;
//subtract control signal
4'b0001: control = 5'b00001;
//multiplication control signal
4'b0010: control = 5'b00010;
//division control signal
4'b0011: control = 5'b00011;
//move control signal
4'b0100: control = 5'b00100;
//swap control signal
4'b0101: control = 5'b10101;
//AND control signal
4'b0110: control = 5'b00110;
//OR control signal
4'b0111: control = 5'b00111;
//LOAD/STORE control signal
4'b1000: control = 5'b01000;
//Branch control signal
4'b1001: control = 5'b01001;
4'b1010:;
4'b1011:;
4'b1100:;
4'b1101:;
1110:;
1111:;
default: control = 0;
endcase
end
endmodule