24小时热门版块排行榜    

Znn3bq.jpeg
查看: 307  |  回复: 0
当前主题已经存档。

sdlj8051

金虫 (著名写手)


[资源] 16*16bit并行乘法器设计

关于,并形乘法器,各位可以在网上搜搜《基于可编程逻辑器件的高速乘法器ip设计》一文(不过本文有错误,不过不影响理解),我就是根据这篇文章写成的(原文为8*8的乘法器)。
    构成并行乘法器的三个部分:部分积,华莱氏树,加法器。
源程序也比较大,我也就挑这三个部分中的一些贴出来,我想这样也就足够了。
这个乘法器我采用了5级流水线,10k20lab占用70%(其实还可以更少),速度46M(EP1C3可以跑到150M)。
部分积:
assign la=~a_reg;
assign oa={a_reg[15:0],1'b0};
assign wa={a_reg[15:0],2'b00};
assign ta={a_reg[15:0],3'b000};
case(b_reg[2:0])
3'b0:
    begin
    a_reg1<=0;
    b_reg1<=0;
    end
3'b001:
    begin
    a_reg1<=0;
    b_reg1<=a_reg;
    end
3'b010:
    begin
    a_reg1<=0;
    b_reg1<=oa;
    end
3'b100:
    begin
    a_reg1<=wa;
    b_reg1<=0;
    end
3'b011:
    begin
    a_reg1<=oa;
    b_reg1<=a_reg;
    end
3'b101:
    begin
    a_reg1<=wa;
    b_reg1<=a_reg;
    end
3'b110:
    begin
    a_reg1<=wa;
    b_reg1<=oa;
    end
3'b111:
    begin
    a_reg1<=d_reg;
    b_reg1<=0;
    end
endcase

华莱氏树:
wallace w1(a_reg1[0],b_reg1[0],1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,c11[0],c12[0],c13[0],c14[0],c21[0],c22[0],c23[0],c31[0],c32[0],c41[0],c51[0],
1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,s41[0]);
wallace w2(a_reg1[1],b_reg1[1],1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,c11[1],c12[1],c13[1],c14[1],c21[1],c22[1],c23[1],c31[1],c32[1],c41[1],c51[1],
c11[0],c12[0],c13[0],c14[0],c21[0],c22[0],c23[0],c31[0],c32[0],c41[0],s41[1]);
wallace w3(a_reg1[2],b_reg1[2],1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,c11[2],c12[2],c13[2],c14[2],c21[2],c22[2],c23[2],c31[2],c32[2],c41[2],c51[2],
c11[1],c12[1],c13[1],c14[1],c21[1],c22[1],c23[1],c31[1],c32[1],c41[1],s41[2]);
wallace w4(a_reg1[3],b_reg1[3],a_reg2[0],b_reg2[0],1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,c11[3],c12[3],c13[3],c14[3],c21[3],c22[3],c23[3],c31[3],c32[3],c41[3],c51[3],
c11[2],c12[2],c13[2],c14[2],c21[2],c22[2],c23[2],c31[2],c32[2],c41[2],s41[3]);
........
wallace w23(1'b0,1'b0,1'b0,1'b0,a_reg3[16],b_reg3[16],a_reg4[13],b_reg4[13],a_reg5[10],b_reg5[10],1'b0,a_reg6[7],c11[22],c12[22],c13[22],c14[22],c21[22],c22[22],c23[22],c31[22],c32[22],c41[22],c51[22],
c11[21],c12[21],c13[21],c14[21],c21[21],c22[21],c23[21],c31[21],c32[21],c41[21],s41[22]);
wallace w24(1'b0,1'b0,1'b0,1'b0,a_reg3[17],1'b0,a_reg4[14],b_reg4[14],a_reg5[11],b_reg5[11],1'b0,a_reg6[8],c11[23],c12[23],c13[23],c14[23],c21[23],c22[23],c23[23],c31[23],c32[23],c41[23],c51[23],
c11[22],c12[22],c13[22],c14[22],c21[22],c22[22],c23[22],c31[22],c32[22],c41[22],s41[23]);

........
wallace w31(1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,a_reg5[18],1'b0,1'b0,a_reg6[15],c11[30],c12[30],c13[30],c14[30],c21[30],c22[30],c23[30],c31[30],c32[30],c41[30],c51[30],
c11[29],c12[29],c13[29],c14[29],c21[29],c22[29],c23[29],c31[29],c32[29],c41[29],s41[30]);
wallace w32(1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,co[0],co[1],co[2],co[3],co[4],co[5],co[6],co[7],co[8],co[9],c51[31],
c11[30],c12[30],c13[30],c14[30],c21[30],c22[30],c23[30],c31[30],c32[30],c41[30],s41[31]);

五级华莱氏:
wallace(a,b,c,a1,b1,c1,a2,b2,c2,a3,b3,c3,c11,c12,c13,c14,c21,c22,c23,c31,c32,c41,c51,
ic11,ic12,ic13,ic14,ic21,ic22,ic23,ic31,ic32,ic41,s51);
input a,b,c,a1,b1,c1,a2,b2,c2,a3,b3,c3,ic11,ic12,ic13,ic14,ic21,ic22,ic23,ic31,ic32,ic41;
output c11,c12,c13,c14,c21,c22,c23,c31,c32,c41,c51,s51;
wire s11,s12,s13,s14,s21,s22,s23,s32,s31,s41,s51;
fulladd m1(a,b,c,s11,c11);
fulladd m2(a1,b1,c1,s12,c12);
fulladd m3(a2,b2,c2,s13,c13);
fulladd m4(a3,b3,c3,s14,c14);
fulladd m5(1'b0,ic11,s11,s21,c21);
fulladd m6(ic12,s12,ic13,s22,c22);
fulladd m7(s13,ic14,s14,s23,c23);
fulladd m8(ic21,s21,ic22,s31,c31);
fulladd m9(s22,ic23,s23,s32,c32);
fulladd m10(s31,ic32,s32,s41,c41);
fulladd m11(ic31,ic41,s41,s51,c51);
endmodule

module fulladd(a,b,cin,sum,cout);
input a,b,cin;
output sum,cout;
assign {cout,sum}=a+b+cin;
endmodule

下面是时序仿真

[ Last edited by sdlj8051 on 2006-12-25 at 16:55 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sdlj8051 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿华工085600 331分 +7 天下ww 2026-04-09 7/350 2026-04-13 09:01 by lhj2009
[考研] 材料相关专业344求调剂双非工科学校或课题组 +11 hualkop 2026-04-12 11/550 2026-04-13 08:47 by Sammy2
[考研] 277求调剂 +23 倪建设 2026-04-06 23/1150 2026-04-13 00:40 by 王童子龙
[考研] 电气专硕320求调剂 +6 小麻子111 2026-04-10 6/300 2026-04-12 10:54 by lemon6009
[考研] 电气工程专硕320求调剂 +5 小麻子111 2026-04-10 5/250 2026-04-12 10:47 by zhouyuwinner
[考研] 085410 273求调剂 +10 X1999 2026-04-09 10/500 2026-04-12 09:24 by 逆水乘风
[考研] 305求调剂 +6 77Qi 2026-04-07 6/300 2026-04-12 02:30 by 秋豆菜芽
[考研] 085400 328分 求调剂 +10 喂你一个大橙子 2026-04-09 14/700 2026-04-11 19:53 by lqspecial
[考研] 11408。358求调剂 +3 TMYzds 2026-04-07 3/150 2026-04-11 17:10 by 氮气气气
[考研] 085404 293求调剂 +9 勇远库爱314 2026-04-06 10/500 2026-04-11 10:36 by 紫曦紫棋
[考研] 还有化工二轮调剂的学校吗 5+14 化工人999 2026-04-09 48/2400 2026-04-11 10:27 by 89436494
[考研] 材料专业344求调剂 +16 hualkop 2026-04-10 21/1050 2026-04-10 17:28 by laoshidan
[考研] 08工学 309分求调剂 +6 Yin DY 2026-04-08 6/300 2026-04-10 09:18 by Delta2012
[考研] 一志愿厦大生物学332求调剂 +10 池池池池池池 2026-04-08 10/500 2026-04-09 17:10 by 独醉梦孤城
[考研] 083200 初试305分 求调剂 暂不考虑跨专业 +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
[考研] 353求调剂 +8 晴空万里air 2026-04-07 8/400 2026-04-09 00:18 by GouQ
[考研] 二次调剂求老师收留 +3 笑笑袁 2026-04-08 3/150 2026-04-08 23:50 by 醉在风里
[考研] 一志愿华南师范大学0702物理学305调剂 +4 念常安 2026-04-07 6/300 2026-04-08 22:53 by bljnqdcc
[考研] 336求调剂,一志愿中科大 +9 墨彧 yuyu 2026-04-06 9/450 2026-04-08 11:24 by 想读书的菌菌
[考研] 机械调剂 +3 zzzbcb 2026-04-07 3/150 2026-04-07 22:19 by hemengdong
信息提示
请填处理意见