24小时热门版块排行榜    

查看: 298  |  回复: 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 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 279分求调剂 一志愿211 +17 chaojifeixia 2026-03-19 19/950 2026-03-23 23:26 by 呆呆师姐
[考研] 085600材料与化工调剂 +7 A-哆啦Z梦 2026-03-23 12/600 2026-03-23 23:16 by 星空星月
[考研] 0703化学求调剂 +4 奶油草莓. 2026-03-22 5/250 2026-03-23 19:37 by pswait
[考研] 生物学一志愿985,分数349求调剂 +6 zxts12 2026-03-21 9/450 2026-03-23 18:37 by macy2011
[考研] 工科0856求调剂 +5 沐析汀汀 2026-03-21 5/250 2026-03-23 17:56 by 海瑟薇-
[考研] 316求调剂 +7 梁茜雯 2026-03-19 7/350 2026-03-23 16:21 by lingjue
[考研] 求调剂材料学硕080500,总分289分 5+3 @taotao 2026-03-19 21/1050 2026-03-23 10:17 by 冠c哥
[考研] 070300,一志愿北航320求调剂 +3 Jerry0216 2026-03-22 5/250 2026-03-23 09:16 by 。。堂堂
[考研] 305分求调剂(食品工程) +4 Sxy112 2026-03-21 6/300 2026-03-22 15:26 by 无懈可击111
[考研] 303求调剂 +5 安忆灵 2026-03-22 6/300 2026-03-22 12:46 by 素颜倾城1988
[考研] 0805材料320求调剂 +3 深海物语 2026-03-20 3/150 2026-03-21 15:46 by 无际的草原
[考研] 求调剂 +3 白QF 2026-03-21 3/150 2026-03-21 13:12 by zhukairuo
[考研] 南昌大学材料专硕311分求调剂 +6 77chaselx 2026-03-20 6/300 2026-03-21 07:24 by JourneyLucky
[考研] 初始318分求调剂(有工作经验) +3 1911236844 2026-03-17 3/150 2026-03-21 02:33 by JourneyLucky
[考研] 22408 344分 求调剂 一志愿 华电计算机技术 +4 solanXXX 2026-03-20 4/200 2026-03-20 23:49 by alg094825
[考研] 295求调剂 +4 一志愿京区211 2026-03-18 6/300 2026-03-20 23:41 by JourneyLucky
[考研] 321求调剂 +9 何润采123 2026-03-18 11/550 2026-03-20 23:19 by JourneyLucky
[考研] 求调剂 +3 @taotao 2026-03-20 3/150 2026-03-20 19:35 by JourneyLucky
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
[考研] 0703化学调剂 +5 pupcoco 2026-03-17 8/400 2026-03-19 13:58 by houyaoxu
信息提示
请填处理意见