-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmuxControl.sv
More file actions
46 lines (40 loc) · 1.31 KB
/
muxControl.sv
File metadata and controls
46 lines (40 loc) · 1.31 KB
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
//`timescale 1ns / 1ps
//Multiplexer after control unit
module muxControl
(input logic sel,
input logic branch_in,memWrite_in,memRead_in,regWrite_in,memToReg_in,aluSrc_in,
input logic [1:0] ALUOp_in,
output logic branch_out,memWrite_out,memRead_out,regWrite_out,memToReg_out,aluSrc_out,
output logic [1:0] ALUOp_out);
always_comb begin
case(sel)
1'b0: begin
branch_out=0;
memWrite_out=0;
memRead_out=0;
regWrite_out=0;
memToReg_out=0;
aluSrc_out=0;
ALUOp_out=2'b00;
end
1'b1: begin
branch_out=branch_in;
memWrite_out=memWrite_in;
memRead_out=memRead_in;
regWrite_out=regWrite_in;
memToReg_out=memToReg_in;
aluSrc_out=aluSrc_in;
ALUOp_out=ALUOp_in;
end
default: begin
branch_out=branch_in;
memWrite_out=memWrite_in;
memRead_out=memRead_in;
regWrite_out=regWrite_in;
memToReg_out=memToReg_in;
aluSrc_out=aluSrc_in;
ALUOp_out=ALUOp_in;
end
endcase
end
endmodule