一种16位有符号无符号制格局计的乘法器.docxVIP

  • 5
  • 0
  • 约2.61千字
  • 约 3页
  • 2023-10-18 发布于广东
  • 举报

一种16位有符号无符号制格局计的乘法器.docx

一种16位有符号无符号制格局计的乘法器 在设计专用于特定电路的内核时,体积小、功能强大的cpu内核可以为设计提供极大的便利。而乘法器又是CPU中一个重要的部件,本文分析了设计乘法器所用到的算法并提供了乘法器的设计方案。乘法器的处理过程大致相同,都是先生成部分积再相加。为了提高乘法器的性能,可以从减少部分积的个数,对部分积的相加采用并行加法。采用Booth算法可以使部分积的个数减少一半,采用Wallace树行结构的加法器完成N个部分积需要lgN次加法时间,最后再使用超前进位加法器来减少加法运算中进位传播时间。本文设计的乘法器由Booth编码、Wallace树形结构和超前进位加法器3部分组成。 1 基于编码的乘法器 本乘法器提供16位二进制有符号/无符号乘法运算。为了区分是有符号还是无符号数,增加了1位即第17位用于符号控制,有符号则为1,无符号则为0。无符号数的范围是0~216-1,有符合的范围是-215~215-1。乘法器的结构如图1所示。 在执行一次乘法运算时,首先乘数和被乘数扩展1位符号控制位以判断是有符号数还是无符号数,然后用并行Booth编码器对乘数进行编码,根据Booth编码输出并行生成部分积。生成所有部分积后需要对部分积进行符号扩展以便进行相加,然后用Wallace树形结构加法器将部分积相加得到32位乘法结果。 2 部分积加固相 在乘法器设计中大都采用改进Booth算法以减少部分积,简化电路和提高运算速度。改进的Booth算法的原理如下: 设乘数: Y=-2n-1Yn-1+n-2∑t=02tYt?Y-1=0(1)Y=?2n?1Yn?1+∑t=0n?22tYt?Y?1=0(1) 那么乘数Y也可以表示为: Y=n/2-1∑t=0(Y2t-1+Y2t-2Y2t+1)22t?Y-1=0(2)Y=∑t=0n/2?1(Y2t?1+Y2t?2Y2t+1)22t?Y?1=0(2) 其中n是偶数,如果是奇数位的数则需要扩展1位。 根据式(2)可以知道部分积只有位数的一半,而且根据Y2t-1,Y2t,Y2t+1的不同,与被乘数相乘得到的部分积也不同。表1列出了不同的Y2t-1,Y2t,Y2t+1所对应的对被乘数的操作。 因为改进的Booth算法要求乘数的位数为偶数,所以应将乘数符号扩展(乘数为负数是前面扩展2个‘1’,否则扩展2个‘0’)到18位,然后根据Booth编码得到部分积,得到部分积后需要对部分积进行相加。由于操作数可以是有符号数也可以是无符号数,所以在相加过程中应该考虑到符号扩展以便正确相加。由于乘数扩展到18位,所以产生的部分积有9项,最后一个部分积不需要符号扩展,所以只需要扩展前面8个部分积且符号扩展值为si(i=0..7),全部相加得到结果是34位。我们可以得到符号扩展的和S如下: S=8∑i=0si33∑t=2i+172t(3)S=∑i=08si∑t=2i+17332t(3) 将si=1-ˉsisi=1?sˉi和k∑t=j2t=2j(2k+1-j-1)=2k+1-2j∑t=jk2t=2j(2k+1?j?1)=2k+1?2j带入式(3)可得: S=8∑i=0(1-ˉsi)(233-22i+17)=8?23-8∑i=0ˉsi234-8∑i=022i+17+8∑i=0ˉsi22i+17=7?233+233-8∑i=0ˉsi233-8∑i=022i+17+ˉsi233+7∑i=0ˉsi22i+17=7?233+ˉsi233-8∑i=0ˉsi233+233-8∑i=022i+17+7∑i=0ˉsi22i+17=7?233-7∑i=0ˉsi233+7∑i=022i+18+16∑i=02i+1+7∑i=0ˉsi22i+17=7?233-7∑i=0ˉsi233+7∑i=022i+18+217+7∑i=0ˉsi22i+17=(7-7∑i=0ˉsi)233+232+6∑i=022i+18+217+7∑i=0ˉsi22i+17(4)S=∑i=08(1?sˉi)(233?22i+17)=8?23?∑i=08sˉi234?∑i=0822i+17+∑i=08sˉi22i+17=7?233+233?∑i=08sˉi233?∑i=0822i+17+sˉi233+∑i=07sˉi22i+17=7?233+sˉi233?∑i=08sˉi233+233?∑i=0822i+17+∑i=07sˉi22i+17=7?233?∑i=07sˉi233+∑i=0722i+18+∑i=0162i+1+∑i=07sˉi22i+17=7?233?∑i=07sˉi233+∑i=0722i+18+217+∑i=07sˉi22i+17=(7?∑i=07sˉi)233+232+∑i=0622i+18+217+∑i=07sˉi22i+17(4) 由于结果只有低32位有效,所以计算

文档评论(0)

1亿VIP精品文档

相关文档