booth乘法器Word下载.docx

上传人:b****3 文档编号:16650515 上传时间:2022-11-25 格式:DOCX 页数:20 大小:75.74KB
下载 相关 举报
booth乘法器Word下载.docx_第1页
第1页 / 共20页
booth乘法器Word下载.docx_第2页
第2页 / 共20页
booth乘法器Word下载.docx_第3页
第3页 / 共20页
booth乘法器Word下载.docx_第4页
第4页 / 共20页
booth乘法器Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

booth乘法器Word下载.docx

《booth乘法器Word下载.docx》由会员分享,可在线阅读,更多相关《booth乘法器Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

booth乘法器Word下载.docx

.multiplicand(multiplicand),

.multiplier(multiplier),

.product(product),

.clk(clock),

.reset(reset)

);

endmodule

booth乘法器主程序文件(不压缩)

modulebooth_mul(multiplicand,multiplier,product,clk,reset);

inputclk,reset;

input[BITWIDTH-1:

output[2*BITWIDTH-1:

reg[2*BITWIDTH-1:

reg[15:

0]multiplicand1,multiplier1;

wire[8:

0]ss;

wirea,e0,e1;

wires0,s1,s2,s3,s4,s5,s6,s7,s8;

wire[2*BITWIDTH-1:

0]tmp_prod;

wire[BITWIDTH+3:

0]tp8;

wire[BITWIDTH+5:

0]tp1,tp2,tp3,tp4,tp5,tp6,tp7;

0]j0;

wire[BITWIDTH+2:

0]j1,j2,j3,j4,j5,j6;

wire[BITWIDTH+1:

0]j7;

wire[BITWIDTH:

0]j8;

assigne0=multiplicand[15];

assigne1=multiplier[15];

assigna=e0|e1;

always@(posedgeclkorposedgeresetornegedgeclk)

if(reset)

product<

else

if(a)

if(multiplicand[15])multiplicand1<

=~multiplicand+1'

b1;

elsemultiplicand1<

=multiplicand;

if(multiplier[15])multiplier1<

=~multiplier+1'

elsemultiplier1<

=multiplier;

{multiplicand1,multiplier1}<

={multiplicand,multiplier};

//partialproduct

bfj_9j_9(

.multiplicand1(multiplicand1),

.multiplier1(multiplier1),

.s0(s0),.s1(s1),.s2(s2),.s3(s3),.s4(s4),

.s5(s5),.s6(s6),.s7(s7),.s8(s8),

.j0(j0),.j1(j1),

.j2(j2),.j3(j3),

.j4(j4),.j5(j5),

.j6(j6),.j7(j7),

.j8(j8)

assigntmp_prod=j0000+{j1000[25:

0],6'

b000000}+{s7,1'

b0,s6,1'

b0,s5,1'

b0,s4,1'

b0,s3,1'

b0,s2,1'

b0,s1,1'

b0,s0};

//partialproductaccumulator

assigntp1=j0+{j1,1'

assigntmp_prod[1:

0]=tp1[1:

0];

assigntp2=tp1[BITWIDTH+5:

2]+{j2,1'

b0,s1};

assigntmp_prod[3:

2]=tp2[1:

assigntp3=tp2[BITWIDTH+5:

2]+{j3,1'

b0,s2};

assigntmp_prod[5:

4]=tp3[1:

assigntp4=tp3[BITWIDTH+5:

2]+{j4,1'

b0,s3};

assigntmp_prod[7:

6]=tp4[1:

assigntp5=tp4[BITWIDTH+5:

2]+{j5,1'

b0,s4};

assigntmp_prod[9:

8]=tp5[1:

assigntp6=tp5[BITWIDTH+5:

2]+{j6,1'

b0,s5};

assigntmp_prod[11:

10]=tp6[1:

assigntp7=tp6[BITWIDTH+5:

2]+{j7,1'

b0,s6};

assigntmp_prod[13:

12]=tp7[1:

assigntp8=tp7[BITWIDTH+5:

2]+{j8[BITWIDTH-1],1'

b0,s7};

assigntmp_prod[2*BITWIDTH-1:

14]=tp8[BITWIDTH+1:

always@(posedgeclkorposedgeresetorposedgeclk)

if(reset)product<

elseif(e0^e1)product<

={1'

b1,~tmp_prod[2*BITWIDTH-2:

0]+1'

b1};

elseproduct<

=tmp_prod;

booth乘法器3:

2压缩文件

//3:

2yasuo1:

9->

6

wire[21:

0]j0_s,j1_s;

wire[19:

0]j0_c,j1_c,j2_s;

wire[17:

0]j2_c;

yasuo1y9_6(

.j8(j8),

.j0_s(j0_s),.j0_c(j0_c),

.j1_s(j1_s),.j1_c(j1_c),

.j2_s(j2_s),.j2_c(j2_c)

2yasuo2:

6->

4

wire[23:

0]j00_s,j00_c;

wire[22:

0]j10_s;

0]j10_c;

yasuo2y6_4(

.j00(j0_s),.j01(j0_c),

.j10(j1_s),.j11(j1_c),

.j20(j2_s),.j21(j2_c),

.j00_s(j00_s),.j00_c(j00_c),

.j10_s(j10_s),.j10_c(j10_c)

2yasuo3:

4->

3

wire[28:

0]j20_s;

wire[26:

0]j20_c;

yasuo3y4_3(

.j000(j00_s),.j100(j00_c),

.j200(j10_s),

.j20_s(j20_s),.j20_c(j20_c)

2yasuo4:

3->

2

0]j0000;

0]j1000;

yasuo4y3_2(

.j10(j20_s),

.j20(j20_c),.j30(j10_c),

.j0000(j0000),.j1000(j1000)

加法器

moduleadd3(a,b,c,si,ci);

inputa,b,c;

outputsi,ci;

wiresi,ci;

assignsi=a^b^c;

assignci=a&

b|(a^b)&

c;

booth编码

modulebooth_recoder(

multiplicand,

code,

pp,

s

input[2:

0]code;

output[BITWIDTH:

0]pp;

outputs;

reg[BITWIDTH:

regs;

always@(multiplicandorcode)

case(code)

3'

b000:

pp={(BITWIDTH+1){1'

b0}};

//+0

b001:

pp={multiplicand[15],multiplicand};

//+M

b010:

b011:

pp={multiplicand,1'

b0};

//+2M

b100:

pp={~multiplicand,1'

//-2M

b101:

pp={~multiplicand[15],(~multiplicand)};

//-M

b110:

b111:

b1}};

//-0

endcase

case(code[2])

1'

b0:

s=1'

b0;

//+0,+M,+2M

b1:

//-2M,-M,-0

booth部分集产生

modulebfj_9(multiplicand1,multiplier1,s0,s1,s2,s3,s4,s5,s6,s7,s8,j0,j1,j2,j3,j4,j5,j6,j7,j8);

0]multiplicand1,multiplier1;

outputs0,s1,s2,s3,s4,s5,s6,s7,s8;

output[BITWIDTH+3:

output[BITWIDTH+2:

output[BITWIDTH+1:

0]pp0,pp1,pp2,pp3,pp4,pp5,pp6,pp7,pp8;

booth_recoder#(BITWIDTH)br0(

.multiplicand(multiplicand1),

.code({multiplier1[1:

0],1'

b0}),

.pp(pp0),

.s(s0)

booth_recoder#(BITWIDTH)br1(

.code(multiplier1[3:

1]),

.pp(pp1),

.s(s1)

booth_recoder#(BITWIDTH)br2(

.code(multiplier1[5:

3]),

.pp(pp2),

.s(s2)

booth_recoder#(BITWIDTH)br3(

.code(multiplier1[7:

5]),

.pp(pp3),

.s(s3)

booth_recoder#(BITWIDTH)br4(

.code(multiplier1[9:

7]),

.pp(pp4),

.s(s4)

booth_recoder#(BITWIDTH)br5(

.code(multiplier1[11:

9]),

.pp(pp5),

.s(s5)

booth_recoder#(BITWIDTH)br6(

.code(multiplier1[13:

11]),

.pp(pp6),

.s(s6)

booth_recoder#(BITWIDTH)br7(

.code(multiplier1[15:

13]),

.pp(pp7),

.s(s7)

 

booth_recoder#(BITWIDTH)br8(

.code({2'

b00,multiplier1[15]}),

.pp(pp8),

.s(s8)

assignj0={~s0,s0,s0,pp0};

assignj1={1'

b1,~s1,pp1};

assignj2={1'

b1,~s2,pp2};

assignj3={1'

b1,~s3,pp3};

assignj4={1'

b1,~s4,pp4};

assignj5={1'

b1,~s5,pp5};

assignj6={1'

b1,~s6,pp6};

assignj7={~s7,pp7};

assignj8=pp8[15:

子压缩文件

moduleyasuo1(j0,j1,j2,j3,j4,j5,j6,j7,j8,j0_s,j0_c,j1_s,j1_c,j2_s,j2_c);

input[19:

input[18:

input[17:

input[16:

output[21:

output[19:

output[17:

//j0_s,j0_c

assignj0_s[21]=j2[17];

assignj0_s[1]=j0[1];

assignj0_s[0]=j0[0];

assignj0_c[19]=j2[18];

add3a1(.a(1'

b0),.b(j1[18]),.c(j2[16]),.si(j0_s[20]),.ci(j0_c[18]));

add3a2(.a(j0[19]),.b(j1[17]),.c(j2[15]),.si(j0_s[19]),.ci(j0_c[17]));

add3a3(.a(j0[18]),.b(j1[16]),.c(j2[14]),.si(j0_s[18]),.ci(j0_c[16]));

add3a4(.a(j0[17]),.b(j1[15]),.c(j2[13]),.si(j0_s[17]),.ci(j0_c[15]));

add3a5(.a(j0[16]),.b(j1[14]),.c(j2[12]),.si(j0_s[16]),.ci(j0_c[14]));

add3a6(.a(j0[15]),.b(j1[13]),.c(j2[11]),.si(j0_s[15]),.ci(j0_c[13]));

add3a7(.a(j0[14]),.b(j1[12]),.c(j2[10]),.si(j0_s[14]),.ci(j0_c[12]));

add3a8(.a(j0[13]),.b(j1[11]),.c(j2[9]),.si(j0_s[13]),.ci(j0_c[11]));

add3a9(.a(j0[12]),.b(j1[10]),.c(j2[8]),.si(j0_s[12]),.ci(j0_c[10]));

add3a10(.a(j0[11]),.b(j1[9]),.c(j2[7]),.si(j0_s[11]),.ci(j0_c[9]));

add3a11(.a(j0[10]),.b(j1[8]),.c(j2[6]),.si(j0_s[10]),.ci(j0_c[8]));

add3a12(.a(j0[9]),.b(j1[7]),.c(j2[5]),.si(j0_s[9]),.ci(j0_c[7]));

add3a13(.a(j0[8]),.b(j1[6]),.c(j2[4]),.si(j0_s[8]),.ci(j0_c[6]));

add3a14(.a(j0[7]),.b(j1[5]),.c(j2[3]),.si(j0_s[7]),.ci(j0_c[5]));

add3a15(.a(j0[6]),.b(j1[4]),.c(j2[2]),.si(j0_s[6]),.ci(j0_c[4]));

add3a16(.a(j0[5]),.b(j1[3]),.c(j2[1]),.si(j0_s[5]),.ci(j0_c[3]));

add3a17(.a(j0[4]),.b(j1[2]),.c(j2[0]),.si(j0_s[4]),.ci(j0_c[2]));

add3a18(.a(j0[3]),.b(j1[1]),.c(1'

b0),.si(j0_s[3]),.ci(j0_c[1]));

add3a19(.a(j0[2]),.b(j1[0]),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1