º»¹®/³»¿ë
module Control_Unit
(
input [5:0]op,
input [5:0]fn,
// output reg [2:0] Br_Jump,
output reg RegWrite,
output reg [1:0] RegDst,
output reg [1:0] RegInSrc,
output reg ALUSrc,
output reg Add_Sub,
output reg [1:0] LogicFn,FnClass,ShiftFn,
output reg DataRead,
output reg DataWrite,
output reg [1:0] BrType,
output reg [1:0] PCSrc
);
always @(*)
begin
RegWrite=1b1;
RegDst=2b00;
RegInSrc=2b01;
ALUSrc=1b0;
Add_Sub=1b0;
LogicFn=2b00;
FnClass=2b00;
ShiftFn=2b00;
DataRead=1b0;
DataWrite=1b0;
BrType=2b00;
PCSrc=2b00;
case(op)
6b00_0000:
begin
RegDst=2b01;
case(fn)
6b10_0000: begin FnClass=2b10; end
6b10_0xxx: begin Add_Sub=1b1;FnClass=2b10; end
6b10_1xxx: begin Add_Sub=1b1;FnClass=2b01; end
6b10_xx¡¦(»ý·«)
6b00_0001: begin RegWrite=1b0; BrType=2b11; end
6b00_xxx0: begin RegWrite=1b0; BrType=2b01; end
6b00_xxx1: begin RegWrite=1b0; BrType=2b10; end
6b00_0xxx: begin RegDst=2b10; RegInSrc=2b10; PCSrc=2b11; end
endcase
end
endmodule
Âü°í¹®Çå
Computer Architecture (ÀúÀÚ:Behrooz Parhami)