📄 alu32.v
字号:
module alu32(ina,inb,op,out,cout,overflow,zero);//32bit的ALU单元input [31:0] ina,inb;//输入信号,包括两个32bit的数input [3:0] op;//ALU控制信号output [31:0] out;//输出信号,一个32bit的结果output cout,overflow,zero;//输出的标志位wire [2:0] cout8;wire [31:0] tout,set;//32bit的ALU单元由以下4个8bit的ALU组合而成alu8 a1(ina[7:0],inb[7:0],op,8'b0,op[2],tout[7:0],cout8[0],set[7:0]);alu8 a2(ina[15:8],inb[15:8],op,8'b0,cout8[0],tout[15:8],cout8[1],set[15:8]);alu8 a3(ina[23:16],inb[23:16],op,8'b0,cout8[1],tout[23:16],cout8[2],set[23:16]);alu8 a4(ina[31:24],inb[31:24],op,8'b0,cout8[2],tout[31:24],cout,set[31:24]);//下面的语句将产生最后的结果以及各个标志位assign out[0]=(op=='b0111)?(~cout):tout[0];//用于区分是否是slt指令,因为此条指令需要一条反馈的回路assign out[31:1]=tout[31:1];assign zero=~(out[31]|out[30]|out[29]|out[28]|out[27]|out[26]|out[25]|out[24]|out[23]|out[22]|out[21]|out[20]|out[19]|out[18]|out[17]|out[16]|out[15]|out[14]|out[13]|out[12]|out[11]|out[10]|out[9]|out[8]|out[7]|out[6]|out[5]|out[4]|out[3]|out[2]|out[1]|out[0]);assign overflow=cout&(!op[2])&(!op[3]);endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -