首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

20×18位符号定点乘法器的FPGA实现

20×18位符号定点乘法器的FPGA实现

关键字:FPGA   定点乘法器   Verilog   Booth编码  
  随着计算机和信息技术的快速发展,人们对器件处理速度和性能的要求越来越高,在高速数字信号处理器(DSP)、微处理器和RSIC等各类芯片中,乘法器是必不可少的算术逻辑单元,且往往处于关键延时路径中,乘法运算需要在一个时钟周期内完成,它完成一次乘法操作的周期基本上决定了微处理器的主频,因此高性能的乘法器是现代微处理器及高速数字信号处理中的重要部件。目前国内乘法器设计思想有4种,分别为:并行乘法器、移位相加乘法器、查找表乘法器、加法树乘法器。其中,并行乘法器易于实现,运算速度快,但耗用资源多,尤其是当乘法运算位数较宽时,耗用资源会很庞大;移位相加乘法器设计思路是通过逐项移位相加实现,其耗用器件少,但耗时钟,速度慢;查找表乘法器将乘积直接放在存储器中,将操作数作为地址访问存储器,得到的输出数据就是乘法结果,该方法的速度只局限于存储器的存储速度,但随乘数的位数增加,存储器的空间会急剧增加,该方法不适合位数高的乘法操作;加法树乘法器采用流水线结构,能在一个时钟完成两数相乘,但当乘数的位数增加,流水线的级数增多,导致会使用很多寄存器,增加器件的耗用,而采用Booth算法的乘法器,会在速度、器件、精度、功耗方面有很大优势。

  在此介绍了20×18比特定点阵列乘法器的设计,采用基4-Booth算法,4-2压缩,基本逻辑单元为中芯国际(SMIC)公司O.18/μm工艺所提供的标准单元库,在减少乘法器器件的同时,使系统具有高速度,低功耗的特点,并且结构规则,易于FPGA的实现,同时在ASIC设计中,也是一种很好的选择。

  l 乘法器结构

  20×18位乘法器的逻辑设计可分为:Booth编码,部分积的产生,4-2压缩树,超前加法器,舍人溢出处理。其中。Booth算法可以减少50 %的部分乘积项,而4-2压缩树,减少求和的加数个数,它可以减少加法器个数,节省器件,与传统方法比,同时少了串行累加或Wallace树结构中的多级传递延迟,从而提高整个乘法器的速度。

  4-2压缩完后最后的两个数,直接相加,其延时为一个超前进位加法器的延时,得到结果后,再根据需要数据的精度,做溢出处理及四舍五入如图1所示。


  1.1 Booth编码与部分积的设计

  在此采用的是基4-Booth编码方式。在补码表示的二进制数据中,扩展其最高位,并无影响。乘数A位宽为N,若N为奇数将A作符号扩展为A',使其位宽为偶数。设定:经过处理以后,乘数A'宽度为H,H为偶数且不得小于N。则乘数A'可表示为:


  其值如表1所示:


  可以看到:基4布思编码一次考虑了3位:本位、相邻高位、相邻低位;处理了2位,确定运算量0,1B,2B,形成(H/2)项编码项、乘积项。对于2B的实现,只需要将B左移1位。因此,不管从那方面来说,基4算法方便又快捷。而基2算法1次只考虑2位、处理1位,形成N项编码项、乘积项,只是方便而已。SMIC提供的O.18 vm标准单元库中,布思编码逻辑表达式为:


  以M2指示相邻高位,以M1指示本位,以M0指示相邻低位。S为0时正,为1时负;A为0时操作数为0,为1时操作数为B;X2为O时操作数为0,为1时操作数为28。对于0,B,2B都比较好实现,2B=(B<<1);对于(-2B)实现如下:一2B=2×(-B)=[~(B<<1)]+1在硬件实现中,相邻部分积之间的权相差4,也就是部分积之间错开两位,把加1拿出来;对于所有As为1时,把所有的加1拿出来单独做部分积,这样可以省去多个加法器,节省器件。对与一个18 b的乘数,可以产生9个部分积,改进此Booth编码,再加上一个补1的数,一共产生10个加数。

  1.2 4-2压缩逻辑实现

  4-2压缩原理图如图2所示。它有5个输入端:A,B,C,D,ICI;三个输出端:S,CO,ICO。将5-3编码器并成1行,即为5-3计数行;若将相邻低位之ICO接入本位之ICI,则成为4-2压缩器。这样可以减少2个操作数。5-3计数器代数运算式如下:

S+CO×2+ICO×2=A+B+C+D+ICI


  即:I0,I1,I2,I3,Ci,D权值为1;C,C0权值为2。


  SMIC提供的0.18 vm标准单元库中,4-2压缩CMPR42的逻辑表达式为:


  在硬件实现该模块时,因为有10个部分积,一共调用4-2压缩4次,分为3级,从顶到底为2—1—1型。4-2压缩互联如图3所示。

返回列表