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

发布者:快乐的旅程最新更新时间:2010-11-16 来源: 武汉科技大学关键字:乘法器  4-Booth  FPGA  VHDL 手机看文章 扫描二维码
随时随地手机看文章

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

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

  1 乘法器结构

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

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

乘法器结构[page]

  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个加数。[page]

  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。

4-2压缩原理图

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

公式

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

10个部分积4-2压缩互联[page]

  1.3 溢出处理及四舍五入

  定点数相乘不会溢出,只不过结果的最终位数有所增加。20 b×18 b结果为38 b。有时38 b并不全部存储,只需其中的一些位就可以。这涉及到四舍五人。假设数A共20位,1位符号,5位整数位,14位小数位,数B共18位,1位符号位,2位整数位,15位小数位,结果格式同A。

  如图4所示,因为只保留5位整数,把前3位都看成是符号位,如果不同,说明溢出;反之,没溢出。再根据前两位真正的符号判断是上溢还是下溢,若为O,则上溢,为20\'h7ffff,反之,下溢,为20\'h80001。在逻辑设计上用个选通可以实现,Verilog HDL代码为:assignceil=data in[37]:20\'h80001:20\'h7ffff;其中data in[37]为最高位。

四舍五入示意图

  由于Verilog HDL语言是应用最为广泛的硬件描述语言之一,可以进行各种层次的逻辑设计,也可以进行仿真验证,时序分析,并且可移植到不同产家的不同芯片中,代码可读性比较强,因此本模块设计用Ver-ilog HDL语言。

  如果要舍入的数没有溢出,那么还要考虑小数部分的舍入。若舍入数为正数,舍入相邻位为1,舍入时必须进1;反之不用。若舍人数为负数,舍入相邻位为1且舍人相邻位后面还有一位为1,则舍入时需加1;反之,不加1。

  2 32位浮点乘法器的实现与仿真测试

  该模块仿真实现用Mentor Graphics公司的Model-Sim SE 6.0d仿真软件,图5列出本设计的:FPGA仿真结果。图5中in1是被乘数20 b。in2是乘数18 b。reset是复位清零信号,低电平有效。booth_multiplier_out是用Booth编码乘法器算出来的结果38 b。derect_multiplier_out是直接用乘号“×”得到的结果,也是18 b。两者结果一致。round_out是舍入后的结果,20 b。eq是测试时加的一个1 b信号,如果booth_multiplier_out和derect_multiplier_out相等为1,否则为0。

FPGA仿真结果

  由于在测试时,将输入和输出都用寄存器锁存了一个时种clk,最后输出结果延了2个时种clk,在图5中,第一个时种clk,输入乘数和被乘数分别为126 999,68 850;输出结果为第3个时种clk的8 743 881 150。因为126 999×68 850=8 743 881 150,故结果正确。在测试时,因实际数据量比较大,in1从-219~219-1,ModelSim SE 6.0d仿真软件需要运行大概1 min,若in1从-219~219-1,in2从-217~217-1大概需要时间T=218min=4 369 h="182" day,因此在PC机上不能全测,故在写testbench时,用random函数产生随机数测试,该乘法器用ModelSim仿真软件运行12 h,eq信号始终为1,即乘法器算出的结果与直接乘的结果一致,认为该方法完全可行。[page]

  3 性能比较与创新

  该模块用Synplify Pro8.1综合,用XilinxISE 7.1i实现布局布线。在Xilinx ISE中ImplementDesign下Map报告系统占用资源如表2所示。

系统占用资源

  而静态时序分析报告显示速度和延时分别为62.805 MHz,15.922 ns。

  该设计采用高压缩率的4—2压缩算法,压缩率为50%,而一般的3-2压缩压缩率为33%,并且采用先进的集成电路制造工艺,使用SMIC公司O.18μm的标准单元库,因此在提高了速度的同时,能减少器件,该乘法器能在1个时钟内完成,不像采用流水线结构,虽然可以提高速度到105.38 MHz,但需3个时钟,需要大量锁存器,从而在增加器件的同时增加功耗,而且完成一次乘法运算时间要24.30 ns。因国内集成电路制造起步晚,目前中国80%的集成电路设计公司还在采用0.35/μm及以下工艺,国内同类乘法器,采用上华0.5 μm的标准单元库,完成1次乘法运算时间接近30 ns,逻辑单元是1 914个。但该设计完成1次乘法运算时间仅15.922 ns,器件只有494个Slices,性能明显提高。

  4 结 语

  给出了20×18位符号定点乘法器的设计,整个设计采用了Verilog HDL语言进行结构描述,采用的器件是xc2vp70-6ff1517。该设计采用基4 Booth编码,4-2压缩,以及采用SMIC0.18μm标准单元库,使得该乘法器面积降低的同时,延时也得到了减小,做到芯片性能和设计复杂度之间的良好折中,该设计应用于中国地面数字电视广播(DTMB)ASIC中3 780点FFT单元的20×18位符号定点乘法器,在60 MHz时工作良好,达到了预定的性能要求,具有一定的实用价值。

关键字:乘法器  4-Booth  FPGA  VHDL 引用地址:20×18位符号定点乘法器的FPGA实现

上一篇:基于FPGA的PROFIBUS-DP总线光电收发器设计
下一篇:基于FPGA的小型星载非制冷红外成像系统

推荐阅读最新更新时间:2024-05-02 21:11

低功耗、大容量Cyclone III FPGA
Altera 公司在 2008 年 3 月 27 号 宣布, 65-nm Cyclone ® III FPGA 系列推出新的 8x 8 mm 2 封装 (M164) , 为设计人员提供单位电路板上容量最大的 FPGA 。设计人员现在可以充分利用 Cyclone III 器件的低功耗和大容量领先优势,设计实现消费类、军事和工业市场上空间受限的大批量应用。 新的 8x 8 mm 2 164 引脚封装具有高达 16K 的逻辑单元 (LE) ,扩展了 Cyclone III FPGA 的大容量小封装产品,该系列包括 14x 14 mm 2 256 引脚 (U256) 和 17x 17 mm 2 48
[新品]
多路同步串口的FPGA传输实现
简介:随着集成电路技术的发展,FPGA和DSP以及ARM以其体积小、速度快、功耗低、设计灵活、利于系统集成、扩展升级等优点,被广泛地应用于高速数字信号传输及数据处理,以DSP+FPGA+ARM的架构组成满足实时性要求的高速数字处理系统已成为一种趋势,本文主要研究FPGA在高速多路数据传输中的应用。 系统结构 在DSP多路串行数据同时向ARM发送的系统中,因为数据通道有并行要求,应用FPGA硬件并行的特点,由FPGA并行接收多路数据,经过缓冲后再发送至ARM进行数据的高级处理的方案,系统结构图如图1所示。 图1 系统结构图 FPGA处理模块实现 DSP的串口传输方式为同步串口,每组DSP串口有4个端口,分别
[单片机]
多路同步串口的<font color='red'>FPGA</font>传输实现
基于ARM与FPGA的LCD控制器设计
  随着显示屏技术的不断发展,真彩液晶显示屏以其高分辨率、高对比度及高清晰度等优势逐渐在嵌入式显示系统中占据重要地位。目前,基于嵌入式平台的LCD显控技术的实现主要有两种方式:ARM内嵌LCD控制器和独立的控制器件。但是这两种实现方式都存在着不足之处,内嵌控制器的使用可能增大处理器的负担和限制显示帧率,而外部控制器件不仅成本高,而且专用性比较强,很难适应不同类型的液晶屏。   据此存在的问题,这里提出一种基于ARM与FPGA的LCD控制器设计方案,该设计方案一方面能够通过操作LINUX OS下的Framebuffer设备提高显存的写入速率及减轻处理器的负担,另一方面用FPGA来实现LCD控制器的设计,开发周期短、功耗低,同时具有
[嵌入式]
基于ARM与<font color='red'>FPGA</font>的LCD控制器设计
一种基于FPGA实现的全数字锁相环
摘要:锁相环被广泛应用于电力系统的测量和控制中。介绍了一种新型的基于比例积分控制逻辑的全数字锁相环。通过对其数学模型的分析,阐述了该锁相环的各项性能指标与设计参数的关系,并由此提出了具体的设计方法,同时提供了一个基于MAX+PLUS II软件和FPGA器件完成的设计实例。仿真和实测结果表明了该锁相环设计方法的正确性和易实现性,也验证了该锁相环的良好性能。 关键词:同步采样 同步控制 锁相环 FPGA 同步技术在电力系统的测量和控制中起着非常重要的作用。基于同步采样和整周期截断的离散傅立叶算法可以提高谐波或纹波的分析准确度。有些电力系统设备需要实现同步控制,如电机同步调速、换流器的同步触发等。为了实现同步测量和控制,可以采用锁相
[应用]
ARM设计的FPGA可重构配置方法的实现及应用
随着半导体工艺技术的迅猛发展,现场可编程逻辑器件FPGA的集成度迅速提高,已达到百万门量级,与此同时,FPGA中的逻辑资源也日益丰富,使得基于FPGA的片上系统设计成为可能.基于FPGA的片上系统设计因其具有开发周期短,设计成本低,软硬件可编程,系统设计灵活、可裁减、可扩充、可升级等优点正在成为电子系统设计的研究热点,且已经在通讯、工控等领域得到实际应用. 目前FPGA从实现技术上进行分类,可以分为基于查找表(LuT,k—up table)技术,SRAM工艺的FPGA、基于nash技术的FPGA和基于反熔丝(Anti—fuse)技术的FPGA,而使用最多的还是基于SRAM工艺的FPGA,如Altem的Cycl0ne和S
[单片机]
ARM设计的<font color='red'>FPGA</font>可重构配置方法的实现及应用
Xilinx Kintex-7FPGA嵌入式套件提升FPGA软处理器系统生产力
2012 年 5 月 28 日,中国,北京 — 全球可编程平台领导厂商赛灵思公司 (Xilinx, Inc. (NASDAQ:XLNX) )今天宣布推出 Kintex™-7 FPGA 嵌入式套件,为系统设计人员迅速便捷地实现可编程系统集成提供了可立即使用的开发平台,让处理器能针对视频和以太网交换、电机控制和医疗成像等应用,控制不同的数据流。作为赛灵思 7 系列 FPGA,Kintex-7 不仅拥有高度灵活应对不同标准、并行处理和可定制接口的特性,而且还提供高性能 DSP、存储器、模拟和 I/O 接口等集成功能,从而可帮助设计人员更方便地嵌入软处理器,以控制数据流并管理系统中的大量接口。 赛灵思公司目标设计平台资深营销经理Raj
[嵌入式]
基于FPGA的数字磁通门传感器系统设计和实现
0 引言     磁通门传感器最早于1935年发明并投入应用,用于静态或者低频变化的弱磁检测,拥有其他磁敏元件难以媲美的灵敏度和可靠性,在磁场测量领域一直占据着不可替代的位置。磁通门传感器适用于地磁或人体磁场的检测,在航空、航天、地质勘探、医疗卫生等领域有着广泛的应用。     磁通门传感器探头通常采用类似于变压器的双铁芯结构,利用软磁铁芯变化磁导率的特性将被测磁场调制成激励信号的偶次谐波。信号处理系统对探头输出加以处理,从中提取与被测磁场大小相关的信号,转换成直流量并输出。     传统的磁通门信号处理电路采用模拟元器件,温度性能严重地受到影响,且很难小型化,可移植性也很差。与之相比,现代数字磁通门系统,温度性能稳定
[嵌入式]
基于DSP Builder的16阶FIR滤波器实现
0 引 言 FIR数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用,它能够提供理想的线性相位响应,在整个频带上获得常数群时延,从而得到零失真输出信号,同时它可以采用十分简单的算法予以实现。这些优点使FIR滤波器成为设计工程师的首选。在采用VHDL或VerilogHDL等硬件描述语言设计数字滤波器时。由于程序的编写往往不能达到良好优化而使滤波器性能表现一般,而采用调试好的IP Core需要向Al-tera公司购买。在此,采用一种基于DSP Builder的FPGA设计方法,使FIR滤波器设计较为简单易行,并能满足设计要求。 1 FIR滤波器介绍 1.1 FIR滤波器原理 对于一个FIR滤波器系统,它的冲
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved