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

📄 multiply2.v

📁 18bit的booth乘法器 采用booth2编码 Wallace压缩树 以及超前进位结合进位选择的36bit高性能加法器
💻 V
📖 第 1 页 / 共 2 页
字号:
    g[8]=A[8]&B[8];    p[8]=A[8]^B[8];    sum0[8]=p[8];    c[8]=1'b0;        g[9]=A[9]&B[9];    p[9]=A[9]^B[9];    c[9]=g[8];    sum0[9]=p[9]^c[9];            g[10]=A[10]&B[10];    p[10]=A[10]^B[10];    c[10]=(p[9]&g[8])|g[9];    sum0[10]=p[10]^c[10];                g[11]=A[11]&B[11];    p[11]=A[11]^B[11];    c[11]=(p[10]&((p[9]&g[8])|g[9]))|g[10];    sum0[11]=p[11]^c[11];            g1[8]=A[8]&B[8];    p1[8]=A[8]^B[8];    c1[8]=1'b1;    sum1[8]=~p1[8];            g1[9]=A[9]&B[9];    p1[9]=A[9]^B[9];    c1[9]=p1[8]|g1[8];        sum1[9]=p1[9]^c1[9];        g1[10]=A[10]&B[10];    p1[10]=A[10]^B[10];    c1[10]=(p1[9]&(p1[8]|g1[8]))|g1[9];        sum1[10]=p1[10]^c1[10];            g1[11]=A[11]&B[11];    p1[11]=A[11]^B[11];    c1[11]=(p1[10]&((p1[9]&(p1[8]|g1[8]))|g1[9]))|g1[10];        sum1[11]=p1[11]^c1[11];    ////////////////////////////////////////////////    g[12]=A[12]&B[12];    p[12]=A[12]^B[12];    c[12]=1'b0;        sum0[12]=p[12];        g[13]=A[13]&B[13];    p[13]=A[13]^B[13];    c[13]=g[12];        sum0[13]=p[13]^c[13];        g[14]=A[14]&B[14];    p[14]=A[14]^B[14];    c[14]=(p[13]&g[12])|g[13];        sum0[14]=p[14]^c[14];        g[15]=A[15]&B[15];    p[15]=A[15]^B[15];    c[15]=(p[14]&((p[13]&g[12])|g[13]))|g[14];        sum0[15]=p[15]^c[15];        g1[12]=A[12]&B[12];    p1[12]=A[12]^B[12];    c1[12]=1'b1;        sum1[12]=~p1[12];        g1[13]=A[13]&B[13];    p1[13]=A[13]^B[13];    c1[13]=p1[12]|g1[12];        sum1[13]=p1[13]^c1[13];        g1[14]=A[14]&B[14];    p1[14]=A[14]^B[14];    c1[14]=(p1[13]&(p1[12]|g1[12]))|g1[13];        sum1[14]=p1[14]^c1[14];        g1[15]=A[15]&B[15];    p1[15]=A[15]^B[15];    c1[15]=(p1[14]&((p1[13]&(p1[12]|g1[12]))|g1[13]))|g1[14];        sum1[15]=p1[15]^c1[15];    ////////////////////////////////////////////    g[16]=A[16]&B[16];    p[16]=A[16]^B[16];    c[16]=1'b0;        sum0[16]=p[16];        g[17]=A[17]&B[17];    p[17]=A[17]^B[17];    c[17]=g[16];        sum0[17]=p[17]^c[17];        g[18]=A[18]&B[18];    p[18]=A[18]^B[18];    c[18]=(p[17]&g[16])|g[17];        sum0[18]=p[18]^c[18];        g[19]=A[19]&B[19];    p[19]=A[19]^B[19];    c[19]=(p[18]&((p[17]&g[16])|g[17]))|g[18];        sum0[19]=p[19]^c[19];        g1[16]=A[16]&B[16];    p1[16]=A[16]^B[16];    c1[16]=1'b1;        sum1[16]=~p1[16];        g1[17]=A[17]&B[17];    p1[17]=A[17]^B[17];    c1[17]=p1[16]|g1[16];        sum1[17]=p1[17]^c1[17];        g1[18]=A[18]&B[18];    p1[18]=A[18]^B[18];    c1[18]=(p1[17]&(p1[16]|g1[16]))|g1[17];        sum1[18]=p1[18]^c1[18];        g1[19]=A[19]&B[19];    p1[19]=A[19]^B[19];    c1[19]=(p1[18]&((p1[17]&(p1[16]|g1[16]))|g1[17]))|g1[18];        sum1[19]=p1[19]^c1[19];    /////////////////////////////////////    g[20]=A[20]&B[20];    p[20]=A[20]^B[20];    c[20]=1'b0;        sum0[20]=p[20];        g[21]=A[21]&B[21];    p[21]=A[21]^B[21];    c[21]=g[20];        sum0[21]=p[21]^c[21];        g[22]=A[22]&B[22];    p[22]=A[22]^B[22];    c[22]=(p[21]&g[20])|g[21];        sum0[22]=p[22]^c[22];        g[23]=A[23]&B[23];    p[23]=A[23]^B[23];    c[23]=(p[22]&((p[21]&g[20])|g[21]))|g[22];        sum0[23]=p[23]^c[23];        g1[20]=A[20]&B[20];    p1[20]=A[20]^B[20];    c1[20]=1'b1;       sum1[20]=~p1[20];         g1[21]=A[21]&B[21];    p1[21]=A[21]^B[21];    c1[21]=p1[20]|g1[20];        sum1[21]=p1[21]^c1[21];        g1[22]=A[22]&B[22];    p1[22]=A[22]^B[22];    c1[22]=(p1[21]&(p1[20]|g1[20]))|g1[21];        sum1[22]=p1[22]^c1[22];        g1[23]=A[23]&B[23];    p1[23]=A[23]^B[23];    c1[23]=(p1[22]&((p1[21]&(p1[20]|g1[20]))|g1[21]))|g1[22];        sum1[23]=p1[23]^c1[23];    /////////////////////////////////////////////    g[24]=A[24]&B[24];    p[24]=A[24]^B[24];    c[24]=1'b0;        sum0[24]=p[24];        g[25]=A[25]&B[25];    p[25]=A[25]^B[25];    c[25]=g[24];        sum0[25]=p[25]^c[25];        g[26]=A[26]&B[26];    p[26]=A[26]^B[26];    c[26]=(p[25]&g[24])|g[25];        sum0[26]=p[26]^c[26];        g[27]=A[27]&B[27];    p[27]=A[27]^B[27];    c[27]=(p[26]&((p[25]&g[24])|g[25]))|g[26];        sum0[27]=p[27]^c[27];        g1[24]=A[24]&B[24];    p1[24]=A[24]^B[24];    c1[24]=1'b1;        sum1[24]=~p1[24];        g1[25]=A[25]&B[25];    p1[25]=A[25]^B[25];    c1[25]=p1[24]|g1[24];        sum1[25]=p1[25]^c1[25];        g1[26]=A[26]&B[26];    p1[26]=A[26]^B[26];    c1[26]=(p1[25]&(p1[24]|g1[24]))|g1[25];        sum1[26]=p1[26]^c1[26];        g1[27]=A[27]&B[27];    p1[27]=A[27]^B[27];    c1[27]=(p1[26]&((p1[25]&(p1[24]|g1[24]))|g1[25]))|g1[26];        sum1[27]=p1[27]^c1[27];    ///////////////////////////////////    g[28]=A[28]&B[28];    p[28]=A[28]^B[28];    c[28]=1'b0;        sum0[28]=p[28];        g[29]=A[29]&B[29];    p[29]=A[29]^B[29];    c[29]=g[28];        sum0[29]=p[29]^c[29];        g[30]=A[30]&B[30];    p[30]=A[30]^B[30];    c[30]=(p[29]&g[28])|g[29];        sum0[30]=p[30]^c[30];        g[31]=A[31]&B[31];    p[31]=A[31]^B[31];    c[31]=(p[30]&((p[29]&g[28])|g[29]))|g[30];        sum0[31]=p[31]^c[31];        g1[28]=A[28]&B[28];    p1[28]=A[28]^B[28];    c1[28]=1'b1;        sum1[28]=~p1[28];        g1[29]=A[29]&B[29];    p1[29]=A[29]^B[29];    c1[29]=p1[28]|g1[28];        sum1[29]=p1[29]^c1[29];        g1[30]=A[30]&B[30];    p1[30]=A[30]^B[30];    c1[30]=(p1[29]&(p1[28]|g1[28]))|g1[29];        sum1[30]=p1[30]^c1[30];        g1[31]=A[31]&B[31];    p1[31]=A[31]^B[31];    c1[31]=(p1[30]&((p1[29]&(p1[28]|g1[28]))|g1[29]))|g1[30];        sum1[31]=p1[31]^c1[31];    ////////////////////////////////////////////////////    g[32]=A[32]&B[32];    p[32]=A[32]^B[32];    c[32]=1'b0;        sum0[32]=p[32];        g[33]=A[33]&B[33];    p[33]=A[33]^B[33];    c[33]=g[32];    sum0[33]=p[33]^c[33];            g[34]=A[34]&B[34];    p[34]=A[34]^B[34];    c[34]=(p[33]&g[32])|g[33];        sum0[34]=p[34]^c[34];        g[35]=A[35]&B[35];    p[35]=A[35]^B[35];    c[35]=(p[34]&((p[33]&g[32])|g[33]))|g[34];        sum0[35]=p[35]^c[35];        g1[32]=A[32]&B[32];    p1[32]=A[32]^B[32];    c1[32]=1'b1;    sum1[32]=~p1[32];            g1[33]=A[33]&B[33];    p1[33]=A[33]^B[33];    c1[33]=p1[32]|g1[32];        sum1[33]=p1[33]^c1[33];        g1[34]=A[34]&B[34];    p1[34]=A[34]^B[34];    c1[34]=(p1[33]&(p1[32]|g1[32]))|g1[33];        sum1[34]=p1[34]^c1[34];        g1[35]=A[35]&B[35];    p1[35]=A[35]^B[35];    c1[35]=(p1[34]&((p1[33]&(p1[32]|g1[32]))|g1[33]))|g1[34];        sum1[35]=p1[35]^c1[35];    sum[3:0]=sum0[3:0];    if((p[3]&c[3]|g[3])==1)      begin      sum[7:4]=sum1[7:4];      c2=p1[7]&c1[7]|g1[7];      end    else      begin      sum[7:4]=sum0[7:4];      c2=p[7]&c[7]|g[7];      end    if(c2==1)      begin      sum[11:8]=sum1[11:8];      c2=p1[11]&c1[11]|g1[11];      end    else      begin      sum[15:8]=sum0[15:8];      c2=p[11]&c[11]|g[11];      end    if(c2==1)      begin      sum[15:12]=sum1[15:12];      c2=p1[15]&c1[15]|g1[15];      end    else      begin      sum[15:12]=sum0[15:12];      c2=p[15]&c[15]|g[15];      end    if(c2==1)      begin      sum[19:16]=sum1[19:16];      c2=p1[19]&c1[19]|g1[19];      end    else      begin      sum[19:16]=sum0[19:16];      c2=p[19]&c[19]|g[19];      end    if(c2==1)      begin      sum[23:20]=sum1[23:20];      c2=p1[23]&c1[23]|g1[23];      end    else      begin      sum[23:20]=sum0[23:20];      c2=p[23]&c[23]|g[23];      end    if(c2==1)      begin      sum[27:24]=sum1[27:24];      c2=p1[27]&c1[27]|g1[27];      end    else      begin      sum[27:24]=sum0[27:24];      c2=p[27]&c[27]|g[27];      end    if(c2==1)      begin      sum[31:28]=sum1[31:28];      c2=p1[31]&c1[31]|g1[31];      end    else      begin      sum[31:28]=sum0[31:28];      c2=p[31]&c[31]|g[31];      end    if(c2==1)      begin      sum[35:32]=sum1[35:32];      c2=c1[35];      end    else      begin      sum[35:32]=sum0[35:32];      c2=c[35];      end  end   endmodule        module ADD4_2(sum,C1,C2,A,B,C,D,cin);    output sum,C1,C2;    input A,B,C,D,cin;    wire X1;    ADDF F1 (X1,C1,B,C,D);    ADDF F2 (sum,C2,cin,A,X1);endmodule    module ADDF(sum,cout,A,B,cin);    output sum,cout;    input A,B,cin;    wire t;    assign t=A^B;    assign sum=t^cin;    assign cout=(A&(B|cin))|(B&cin);endmodulemodule ADDH(sum,cout,A,B);    output sum,cout;    input A,B;    assign sum=A^B;    assign cout=A&B;endmodule                        

⌨️ 快捷键说明

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