📄 controler.v
字号:
module Controler(opcode,clk,rd,j,jr,ib,b,aluop,alusrc,rwds,rw,rwdw,mwdw,mr,mw,mtr);
input[5:0] opcode;
input clk;
output reg [1:0] rd; //RegDest
output reg j; //Jump
output reg jr; //JumpReg
output reg ib; //IsReanch
output reg b; //Branch
output reg [1:0] aluop; //ALUop
output reg alusrc; //AluSrc
output reg rwds; //RegWriteDataSrc
output reg rw; //RegWrite
output reg [1:0] rwdw; //RegWriteDataWidth
output reg [1:0] mwdw; //MemWriteDataWidth
output reg mr; //MemRead
output reg mw; //MemWrite
output reg mtr; //MemToReg
always @ (posedge clk)
begin
rd[0]<= (!opcode[5]&!opcode[4]& opcode[3]&!opcode[2]& opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]&!opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]&!opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]& opcode[1]& opcode[0])
|( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0]);
rd[1]<= (!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0]);
j<= (!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]&!opcode[0]);
jr<= (!opcode[5]& opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0]);
ib<= (!opcode[5]&!opcode[4]&!opcode[3]& opcode[2]&!opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]& opcode[2]&!opcode[1]& opcode[0]);
b<= (!opcode[5]&!opcode[4]&!opcode[3]& opcode[2]&!opcode[1]&!opcode[0]);
aluop[0]<= (!opcode[5]&!opcode[4]&!opcode[3]& opcode[2]&!opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]& opcode[2]&!opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]& opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]&!opcode[0])
|(!opcode[5]& opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0]);
aluop[1]<= (!opcode[5]&!opcode[4]& opcode[3]&!opcode[2]& opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]&!opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]&!opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]& opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]&!opcode[0])
|(!opcode[5]& opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0]);
alusrc<= ( opcode[5]| opcode[4]| opcode[3]|!opcode[2]| opcode[1]| opcode[0])
&( opcode[5]| opcode[4]| opcode[3]|!opcode[2]| opcode[1]|!opcode[0])
&( opcode[5]| opcode[4]| opcode[3]| opcode[2]| opcode[1]| opcode[0]);
rwds<= (!opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0]);
rw<= ( opcode[5]| opcode[4]| opcode[3]| opcode[2]|!opcode[1]| opcode[0])
&( opcode[5]| opcode[4]| opcode[3]|!opcode[2]| opcode[1]| opcode[0])
&( opcode[5]| opcode[4]| opcode[3]|!opcode[2]| opcode[1]|!opcode[0])
&( opcode[5]|!opcode[4]| opcode[3]| opcode[2]| opcode[1]| opcode[0])
&(!opcode[5]| opcode[4]|!opcode[3]| opcode[2]| opcode[1]| opcode[0])
&(!opcode[5]| opcode[4]|!opcode[3]| opcode[2]| opcode[1]|!opcode[0])
&(!opcode[5]| opcode[4]|!opcode[3]| opcode[2]|!opcode[1]|!opcode[0]);
rwdw[0]<= ( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]& opcode[0])
|(!opcode[5]&!opcode[4]& opcode[3]& opcode[2]& opcode[1]& opcode[0]);
rwdw[1]<= (!opcode[5]| opcode[4]| opcode[3]| opcode[2]| opcode[1]| opcode[0])
&(!opcode[5]| opcode[4]| opcode[3]| opcode[2]| opcode[1]|!opcode[0]);
mwdw[0]<= ( opcode[5]&!opcode[4]& opcode[3]&!opcode[2]&!opcode[1]& opcode[0]);
mwdw[1]<= ( opcode[5]&!opcode[4]& opcode[3]&!opcode[2]& opcode[1]& opcode[0]);
mr<= ( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]& opcode[0])
|( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0]);
mw<= ( opcode[5]&!opcode[4]& opcode[3]&!opcode[2]& opcode[1]& opcode[0])
|( opcode[5]&!opcode[4]& opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|( opcode[5]&!opcode[4]& opcode[3]&!opcode[2]&!opcode[1]& opcode[0]);
mtr<= ( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]&!opcode[0])
|( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]&!opcode[1]& opcode[0])
|( opcode[5]&!opcode[4]&!opcode[3]&!opcode[2]& opcode[1]& opcode[0]);
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -