⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 add_64.v

📁 64位verilog加法器
💻 V
字号:
module add_64(s,a,b);
input [63:0]  a,b;
output [63:0]  s;

wire pp16,pp15,pp14,pp13,pp12,pp11,pp10,pp9,pp8,pp7,pp6,pp5,pp4,pp3,pp2,pp1,ppp1;
wire gg16,gg15,gg14,gg13,gg12,gg11,gg10,gg9,gg8,gg7,gg6,gg5,gg4,gg3,gg2,gg1,ggg1;
wire [62:0] Cp;

wire [63:0] p,g;


claslice i1 (p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],1'b0,Cp[2],Cp[1],Cp[0],pp1,gg1);
claslice i2 (p[7],p[6],p[5],p[4],g[7],g[6],g[5],g[4],Cp[3],Cp[6],Cp[5],Cp[4],pp2,gg2);
claslice i3 (p[11],p[10],p[9],p[8],g[11],g[10],g[9],g[8],Cp[7],Cp[10],Cp[9],Cp[8],pp3,gg3);
claslice i4 (p[15],p[14],p[13],p[12],g[15],g[14],g[13],g[12],Cp[11],Cp[14],Cp[13],Cp[12],pp4,gg4);
claslice i17(pp4,pp3,pp2,pp1,gg4,gg3,gg2,gg1,1'b0,Cp[11],Cp[7],Cp[3],ppp1,ggg1);

claslice i5 (p[19],p[18],p[17],p[16],g[19],g[18],g[17],g[16],Cp[15],Cp[18],Cp[17],Cp[16],pp5,gg5);
claslice i6 (p[23],p[22],p[21],p[20],g[23],g[22],g[21],g[20],Cp[19],Cp[22],Cp[21],Cp[20],pp6,gg6);
claslice i7 (p[27],p[26],p[25],p[24],g[27],g[26],g[25],g[24],Cp[23],Cp[26],Cp[25],Cp[24],pp7,gg7);
claslice i8 (p[31],p[30],p[29],p[28],g[31],g[30],g[29],g[28],Cp[27],Cp[30],Cp[29],Cp[28],pp8,gg8);
claslice i18(pp8,pp7,pp6,pp5,gg8,gg7,gg6,gg5,Cp[15],Cp[27],Cp[23],Cp[19],ppp2,ggg2);

claslice i9  (p[35],p[34],p[33],p[32],g[35],g[34],g[33],g[32],Cp[31],Cp[34],Cp[33],Cp[32],pp9,gg9);
claslice i10 (p[39],p[38],p[37],p[36],g[39],g[38],g[37],g[36],Cp[35],Cp[38],Cp[37],Cp[36],pp10,gg10);
claslice i11 (p[43],p[42],p[41],p[40],g[43],g[42],g[41],g[40],Cp[39],Cp[42],Cp[41],Cp[40],pp11,gg11);
claslice i12 (p[47],p[46],p[45],p[44],g[47],g[46],g[45],g[44],Cp[43],Cp[46],Cp[45],Cp[44],pp12,gg12);
claslice i19 (pp12,pp11,pp10,pp9,gg12,gg11,gg10,gg9,Cp[31],Cp[43],Cp[39],Cp[35],ppp3,ggg3);

claslice i13 (p[51],p[50],p[49],p[48],g[51],g[50],g[49],g[48],Cp[47],Cp[50],Cp[49],Cp[48],pp13,gg13);
claslice i14 (p[55],p[54],p[53],p[52],g[55],g[54],g[53],g[52],Cp[51],Cp[54],Cp[53],Cp[52],pp14,gg14);
claslice i15 (p[59],p[58],p[57],p[56],g[59],g[58],g[57],g[56],Cp[55],Cp[58],Cp[57],Cp[56],pp15,gg15);
claslice i16 (p[63],p[62],p[61],p[60],g[63],g[62],g[61],g[60],Cp[59],Cp[62],Cp[61],Cp[60],pp16,gg16);
claslice i20(pp16,pp15,pp14,pp13,gg16,gg15,gg14,gg13,Cp[47],Cp[59],Cp[55],Cp[51],ppp4,ggg4);


claslice i21(ppp4,ppp3,ppp2,ppp1,ggg4,ggg3,ggg2,ggg1,1'b0,Cp[47],Cp[31],Cp[15],pppp1,gggg1);            

pg M0(a[63:0],b[63:0],p[63:0],g[63:0]);

assign s[0]=p[0]^1'b0;
assign s[1]=p[1]^Cp[0];
assign s[2]=p[2]^Cp[1];
assign s[3]=p[3]^Cp[2];
assign s[4]=p[4]^Cp[3];
assign s[5]=p[5]^Cp[4];
assign s[6]=p[6]^Cp[5];
assign s[7]=p[7]^Cp[6];
assign s[8]=p[8]^Cp[7];
assign s[9]=p[9]^Cp[8];
assign s[10]=p[10]^Cp[9];
assign s[11]=p[11]^Cp[10];
assign s[12]=p[12]^Cp[11];
assign s[13]=p[13]^Cp[12];
assign s[14]=p[14]^Cp[13];
assign s[15]=p[15]^Cp[14];
assign s[16]=p[16]^Cp[15];
assign s[17]=p[17]^Cp[16];
assign s[18]=p[18]^Cp[17];
assign s[19]=p[19]^Cp[18];
assign s[20]=p[20]^Cp[19];
assign s[21]=p[21]^Cp[20];
assign s[22]=p[22]^Cp[21];
assign s[23]=p[23]^Cp[22];
assign s[24]=p[24]^Cp[23];
assign s[25]=p[25]^Cp[24];
assign s[26]=p[26]^Cp[25];
assign s[27]=p[27]^Cp[26];
assign s[28]=p[28]^Cp[27];
assign s[29]=p[29]^Cp[28];
assign s[30]=p[30]^Cp[29];
assign s[31]=p[31]^Cp[30];
assign s[32]=p[32]^Cp[31];
assign s[33]=p[33]^Cp[32];
assign s[34]=p[34]^Cp[33];
assign s[35]=p[35]^Cp[34];
assign s[36]=p[36]^Cp[35];
assign s[37]=p[37]^Cp[36];
assign s[38]=p[38]^Cp[37];
assign s[39]=p[39]^Cp[38];
assign s[40]=p[40]^Cp[39];
assign s[41]=p[41]^Cp[40];
assign s[42]=p[42]^Cp[41];
assign s[43]=p[43]^Cp[42];
assign s[44]=p[44]^Cp[43];
assign s[45]=p[45]^Cp[44];
assign s[46]=p[46]^Cp[45];
assign s[47]=p[47]^Cp[46];
assign s[48]=p[48]^Cp[47];
assign s[49]=p[49]^Cp[48];
assign s[50]=p[50]^Cp[49];
assign s[51]=p[51]^Cp[50];
assign s[52]=p[52]^Cp[51];
assign s[53]=p[53]^Cp[52];
assign s[54]=p[54]^Cp[56];
assign s[55]=p[55]^Cp[54];
assign s[56]=p[56]^Cp[55];
assign s[57]=p[57]^Cp[56];
assign s[58]=p[58]^Cp[57];
assign s[59]=p[59]^Cp[58];
assign s[60]=p[60]^Cp[59];
assign s[61]=p[61]^Cp[60];
assign s[62]=p[62]^Cp[61];
assign s[63]=p[63]^Cp[62];

endmodule


module claslice(p[3],p[2],p[1],p[0],g[3],g[2],g[1],g[0],Co,Cp[2],Cp[1],Cp[0],pp,gg);  //4位超前进位加法器模块

input [3:0] p, g;
input Co;
output [2:0] Cp;
output pp,gg;
assign Cp[0]=g[0]|p[0]&Co;
assign Cp[1]=g[1]|p[1]&Cp[0];
assign Cp[2]=g[2]|p[2]&Cp[1];
assign pp=p[3]&p[2]&p[1]&p[0];
assign gg=g[3]|(p[3]&(g[2]|p[2]&(g[1]|p[1]&g[0])));
endmodule

module pg(a,b,p,g);  //进位产生信号、进位传递信号 产生模块
input [63:0] a, b;
output [63:0] p,g;
assign p=a^b;
assign g=a&b;
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -