当前位置:首页 > EDA > 电子设计自动化
[导读]1引言在数字化飞速发展的今天,人们对微处理器的性能要求也越来越高。作为衡量微处理器性能的主要标准,主频和乘法器运行一次乘法的周期息息相关。因此,为了进一步提高微处理器性能,开发高速高精度的乘法器势在必行

1引言

在数字化飞速发展的今天,人们对微处理器的性能要求也越来越高。作为衡量微处理器性能的主要标准,主频和乘法器运行一次乘法的周期息息相关。因此,为了进一步提高微处理器性能,开发高速高精度的乘法器势在必行。同时由于基于IEEE754标准的浮点运算具有动态范围大,可实现高精度,运算规律较定点运算更为简捷等特点,浮点运算单元的设计研究已获得广泛的重视。本文介绍了32位浮点乘法器的设计,采用了基4布思算法,改进的4:2压缩器及布思编码算法,并结合FPGA自身特点,使用流水线设计技术,在实现高速浮点乘法的同时,也使是系统具有了高稳定性、规则的结构、易于FPGA实现及ASIC的HardCopy等特点。

2运算规则及系统结构

2.1浮点数的表示规则

本设计采用单精度IEEE754格式【2】。设参与运算的两个数A、B均为单精度浮点数,即:


2.2浮点乘法器的硬件系统结构

本设计用于专用浮点FFT处理器,因此对运算速度有较高要求。为了保证浮点乘法器可以稳定运行在80M以下,本设计采用了流水线技术。流水线技术可提高同步电路的运行速度,加大数据吞吐量。而FPGA的内部结构特点很适合在其中采用流水线设计,并且只需要极少或者根本不需要额外的成本。综上所述,根据系统分割,本设计将采用5级流水处理,图1为浮点乘法器的硬件结构图。


3主要模块设计与仿真

 

3.1指数处理模块(E_Adder)设计

32位浮点数格式如文献【2】中定义。由前述可知,浮点乘法的主要过程是两个尾数相乘,同时并行处理指数相加及溢出检测。对于32位的浮点乘法器而言,其指数为8位,因而本设计采用带进位输出的8位超前进位加法器完成指数相加、去偏移等操作,具体过程如下。

E_Adder模块负责完成浮点乘法器运算中指数域的求和运算,如下式所示:

其中,E[8]为MSB位产生的进位。Bias=127是IEEE754标准中定义的指数偏移值。Normalization完成规格化操作,因为指数求和结果与尾数相乘结果有关。在本次设计中,通过选择的方法,几乎可以在Normalization标志产生后立刻获得积的指数部分,使E_Adder不处于关键路径。

本设计收集三级进位信号,配合尾数相乘单元的Normalization信号,对计算结果进行规格化处理,并决定是否输出无穷大、无穷小或正常值。

根据E_Adder的时序仿真视图,可看出设计完全符合应用需求。

3.2改进的Booth编码器设计

由于整个乘法器的延迟主要决定于相加的部分积个数,因此必须减少部分积的数目才能进而缩短整个乘法器的运算延迟。本设计采用基4布思编码器,使得部分积减少到13个,并对传统的编码方案进行改进。编码算法如表1所示。

由于FPGA具有丰富的与、或门资源,使得该方法在保证速度和准确性的前提下,充分利用了FPGA内部资源,节省了面积,同时符合低功耗的要求。

3.3部分积产生与压缩结构设计

3.3.1部分积产生结构

根据布思编码器输出结果,部分积产生遵循以下公式【4】:

其中,PPi为部分积;Ai为被乘数。经过隐藏位和符号位的扩展后,26位的被乘数尾数将产生13个部分积。在浮点乘法器中,尾数运算采用的是二进制补码运算。因此,当NEG=1时要在部分积的最低位加1,因为PPi只完成了取反操作。而为了加强设计的并行性,部分积最低位加1操作在部分积压缩结构中实现。另外,为了完成有符号数相加,需对部分积的符号位进行扩展,其结果如图4所示。13个部分积中,除第一个部分积是29位以外,其余部分积扩展为32位。其中,第一个部分积包括3位符号扩展位“SSS”,第2至13个部分积的符号扩展位为“SS”,加一操作位为“NN”,遵循如下公式: 

其中,i为部分积的行数,sign(i)为第i行部分积的符号。

3.3.2部分积压缩结构

本设计混合使用4:2压缩器、3:2压缩器、全加器和半加器,实现了13个部分积的快速压缩,并保证了精度。本文部分积压缩结构的划分如图2所示。

图2中,虚线给出了传统部分积的压缩划分,而实线描述的是本文采用的部分积压缩结构划分,这样的划分有利于简化第二级的压缩结构,从而在保证速度的基础上,节省FPGA内部资源。从图2中可看出,有些位不必计算,因为这些位是由Booth编码时引入的乘数尾数的符号位产生的,48位足以表达运算结果。

3.3.3改进的4:2压缩器

本设计采用广泛使用的4:2压缩器,并针对FPGA内部资源特点,对其进行了改进。如图3所示。传统的4:2压缩器即两个全加器级联,共需要四个异或门和8个与非门。而改进的4:2压缩器需要四个异或门和两个选择器(MUX)。8个与非门需要36个晶体管,而两个MUX需要20个晶体管。同时,FPGA内部集成了大量的异或门和选择器资源,这种设计方法也是对FPGA的一个充分利用。

由于压缩部分积需要大量的4:2压缩器,所以改进的电路能在一定程度上减小版图的面积,也为该乘法器的ASIC后端设计带来了优势。另外,改进的压缩器的4个输入到输出S的延时相同,都是3级XOR门延时。

 

432位浮点乘法器的实现与仿真

 

图4显示了本设计的FPGA时序仿真结果,时序仿真环境为QuartusII7.0,目标芯片为Cyclone系列的EP1C6Q240C8,功能仿真环境为Modelsim6.0b。整个设计采用VHDL语言进行结构描述,综合策略为面积优先。由仿真视图可看出,该浮点乘法器可稳定运行在80M及以下频率,在延时5个周期后,以后每一个周期可稳定输出一级乘法运算结果,实现了高吞吐量。如果采用全定制进行后端版图布局布线,乘法器的性能将更加优越。


5结语

 

本文作者创新点:针对FPGA器件内部资源特性,独创地提出了一种适合FPGA实现的5级流水高速浮点乘法器。该乘法器支持IEEE754标准32位单精度浮点数,采用了基4布思算法、改进的布思编码器、部份积压缩结构等组件,从而在保证高速的前提下,缩小了硬件规模,使得该乘法器的设计适合工程应用及科学计算,并易于ASIC的后端版图实现。该设计已使用在笔者设计的浮点FFT处理器中,取得了良好效果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

8b10b编码作为数字通信领域中的一项重要线路编码方案,其核心理念在于将每8位数据映射到10位编码中。这个映射过程严格按照特定规则进行,旨在保证编码中的电平转换足够,以维持信号的直流平衡,并提供足够的时钟信息,使接收端能...

关键字: FPGA 8b/10b编码 IC设计

在FPGA和IC设计领域,经常会面临一个挑战:多个端口同时竞争一个端口的数据。在这种情况下,采用RR调度策略可能是一种解决方案。

关键字: FPGA 嵌入式系统 IC设计

2024 年5月13日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 是英特尔®产品的全球授权代理商。英特尔®宣布正式成立Altera™,作为其独立运营的全...

关键字: FPGA 人工智能 以太网

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人
关闭
关闭