📄 wallaceadd.v
字号:
module WallaceAdd(P0,P1,P2,P3,FINAL);input[9:0] P0,P1,P2,P3;output[15:0] FINAL;wire[15:0] ANS;wire[15:0] IN;wire[15:0] FINAL;reg[15:0] X0,X1,X2,X3;/* Add16 add0(X0,X1,X01); Add16 add1(X2,X3,X23); Add16 add2(X01,X23,ANS);*/ assign IN[2:0]=3'b000; assign IN[5]=0; assign ANS[1:0]=P0[1:0]; /*A*/ Hadd A (X0[2],X1[2],ANS[2],IN[3]);/*B*/ Hadd B (X0[3],X1[3],ANS[3],IN[4]);/*C*/ Fadd C (X0[4],X1[4],X2[4],ANS[4],CD);/*D*/ Fadd D (X0[5],X1[5],X2[5],DM,DE); Hadd DD(DM,CD,ANS[5],IN[6]);/*E*/ Fadd E (X0[6],X1[6],X2[6],EM,EF); Fadd EE(X3[6],EM,DE,ANS[6],IN[7]);/*F*/ Fadd F (X0[7],X1[7],X2[7],FM,FG); Fadd FF(X3[7],FM,EF,ANS[7],IN[8]);/*G*/ Fadd G (X0[8],X1[8],X2[8],GM,GH); Fadd GG(X3[8],GM,FG,ANS[8],IN[9]);/*H*/ Fadd H (X0[9],X1[9],X2[9],HM,HI); Fadd HH(X3[9],HM,GH,ANS[9],IN[10]);/*I*/ Fadd I(X0[10],X1[10],X2[10],IM,IJ); Fadd II(X3[10],IM,HI,ANS[10],IN[11]);/*J*/ Fadd J (!X0[11],!X1[11],X2[11],JM,JK); Fadd JJ(X3[11],JM,IJ,ANS[11],IN[12]);/*K*/ Fadd K (1'b1,X2[12],X3[12],KM,KL); Hadd KK(KM,JK,ANS[12],IN[13]);/*L*/ Hadd L (!X2[13],X3[13],LM,LMM); Hadd LL(LM,KL,ANS[13],IN[14]);/*M*/ Hadd M (1'b1,X3[14],MM,MN); Hadd MT(MM,LMM,ANS[14],IN[15]);/*N*/ Hadd N (!X3[15],MN,ANS[15],WASTE); Add16 add(ANS,IN,FINAL);always @(P0 or P1 or P2 or P3)begin// X0[8:0]=P0; if(P0[9]==0) X0[15:0]={7'b0000000,P0}; else X0[15:0]={7'b1111111,P0}; // X1[10:2]=P1; if(P1[9]==0) X1[15:0]={5'b00000,P1,2'b00}; else X1[15:0]={5'b11111,P1,2'b00}; /// X2[12:4]=P2; if(P2[9]==0) X2[15:0]={3'b000,P2,4'b0000}; else X2[15:0]={3'b111,P2,4'b0000}; // X3[14:6]=P1; if(P3[9]==0) X3[15:0]={1'b0,P3,6'b000000}; else X3[15:0]={1'b1,P3,6'b000000}; endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -