📄 alu8.v
字号:
module alu8(ina,inb,op,less,cin,out,cout,set);//8bit的ALU单元input [7:0] ina,inb,less;//输入信号,包括两个8bit的数和1bit的less信号input [3:0] op;//ALU控制信号input cin;//低位进位output [7:0] out,set;//输出信号,包括一个8bit的结果和set信号output cout;//8bit的ALU单元的向高位的进位wire[6:0] c;wire[7:0] tempa,tempb;assign tempa=(op[3]=='b0)?ina:~ina;//判断是否要将两输入取反(做减法和或非之用)assign tempb=(op[2]=='b0)?inb:~inb;//下面的语句将产生8位加法器的超前进位assign c[0]=(tempa[0]&tempb[0])|((tempa[0]^tempb[0])&cin);assign c[1]=(tempa[1]&tempb[1])|((tempa[1]^tempb[1])&tempa[0]&tempb[0])|((tempa[1]^tempb[1])&(tempa[0]^tempb[0])&cin);assign c[2]=(tempa[2]&tempb[2])|((tempa[2]^tempb[2])&tempa[1]&tempb[1])|((tempa[2]^tempb[2])&(tempa[1]^tempb[1])&tempa[0]&tempb[0])|((tempa[2]^tempb[2])&(tempa[1]^tempb[1])&(tempa[0]^tempb[0])&cin);assign c[3]=(tempa[3]&tempb[3])|((tempa[3]^tempb[3])&tempa[2]&tempb[2])|((tempa[3]^tempb[3])&(tempa[2]^tempb[2])&tempa[1]&tempb[1])|((tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&tempa[0]&tempb[0])|((tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&(tempa[0]^tempb[0])&cin);assign c[4]=(tempa[4]&tempb[4])|((tempa[4]^tempb[4])&tempa[3]&tempb[3])|((tempa[4]^tempb[4])&(tempa[3]^tempb[3])&tempa[2]&tempb[2])|((tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&tempa[1]&tempb[1])|((tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&tempa[0]&tempb[0])|((tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&(tempa[0]^tempb[0])&cin);assign c[5]=(tempa[5]&tempb[5])|((tempa[5]^tempb[5])&tempa[4]&tempb[4])|((tempa[5]^tempb[5])&(tempa[4]^tempb[4])&tempa[3]&tempb[3])|((tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&tempa[2]&tempb[2])|((tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&tempa[1]&tempb[1])|((tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&tempa[0]&tempb[0])|((tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&(tempa[0]^tempb[0])&cin);assign c[6]=(tempa[6]&tempb[6])|((tempa[6]^tempb[6])&tempa[5]&tempb[5])|((tempa[6]^tempb[6])&(tempa[5]^tempb[5])&tempa[4]&tempb[4])|((tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&tempa[3]&tempb[3])|((tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&tempa[2]&tempb[2])|((tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&tempa[1]&tempb[1])|((tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&tempa[0]&tempb[0])|((tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&(tempa[0]^tempb[0])&cin);assign cout=(tempa[7]&tempb[7])|((tempa[7]^tempb[7])&tempa[6]&tempb[6])|((tempa[7]^tempb[7])&(tempa[6]^tempb[6])&tempa[5]&tempb[5])|((tempa[7]^tempb[7])&(tempa[6]^tempb[6])&(tempa[5]^tempb[5])&tempa[4]&tempb[4])|((tempa[7]^tempb[7])&(tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&tempa[3]&tempb[3])|((tempa[7]^tempb[7])&(tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&tempa[2]&tempb[2])|((tempa[7]^tempb[7])&(tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&tempa[1]&tempb[1])|((tempa[7]^tempb[7])&(tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&tempa[0]&tempb[0])|((tempa[7]^tempb[7])&(tempa[6]^tempb[6])&(tempa[5]^tempb[5])&(tempa[4]^tempb[4])&(tempa[3]^tempb[3])&(tempa[2]^tempb[2])&(tempa[1]^tempb[1])&(tempa[0]^tempb[0])&cin);//8bit的ALU单元由以下8个1bit的ALU组合而成alu a1(ina[0],inb[0],op,less[0],cin,out[0],set[0]);alu a2(ina[1],inb[1],op,less[1],c[0],out[1],set[1]);alu a3(ina[2],inb[2],op,less[2],c[1],out[2],set[2]);alu a4(ina[3],inb[3],op,less[3],c[2],out[3],set[3]);alu a6(ina[5],inb[5],op,less[5],c[4],out[5],set[4]);alu a5(ina[4],inb[4],op,less[4],c[3],out[4],set[5]);alu a7(ina[6],inb[6],op,less[6],c[5],out[6],set[6]);alu a8(ina[7],inb[7],op,less[7],c[6],out[7],set[7]);endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -