沥血之作,32位单精度浮点除法器
历经一年开发,沥血之作--32位单精度浮点除法器,寻IC厂商合作或**出售,欢迎评估和咨询。联系方式:短消息留言
32位单精度浮点除法器
遵循浮点规范:IEEE-754
算法:R8并行运算,每次迭代计算产生3位商,8拍完成迭代计算,第10拍完成数据输出,目前在FPGA验证平台运行时最大时钟频率为110M左右。
算法拓展:可根据本算法结合实际需求开发出R4/R8--32位单精度浮点除法器/64位双精度浮点除法器,采用R4算法可降低近半的资源消耗但需增加4个迭代节拍。
除法例外支持:支持被除数为0例外、除数为0例外、商正/负无穷大例外、除数尾数为0例外(如0.5,1,2,4,8,16...),所有例外在2拍内完成处理并输出结果。
硬件描述语言:verilog HDL,代码长度140行左右。
FPGA开发环境Quatus II9.1
综合器:Quatus II9.1/Synplify Pro 9.6.1
仿真环器:modelSim-Altera 6.5
FPGA型号:EP2C50F484C7
模块资源消耗:700LE左右,无须硬件乘法器。相比较,在Quartus中自带的浮点除法器速度大于100M的计算过程多至14拍,并需要16个9*9硬件乘法器,另加消耗400多LE。
带顶层实体设计的资源消耗如图1所示
图2和图3中dataa为被除数,datab为除数,re为浮点商,result为过程商,remain为过程余数,step为除法计算的迭代节拍数, 图4为时序分析结果图 当 dataa= 0x4280_8437; //64.2_5823 datab= 0x48925c57; //29_9746.7 re =dataa/datab=0x3960c9e1; //0.00_0214_3751 当 dataa= 0x4980c321; //105_4820. datab= 0xd092c123; //-1.9_6970*10^10 re =dataa/datab=0xb8609d3b; //-5.35_5219*10^5 当 dataa= 0x5280c447; //2.76_5244*10^11 datab= 0x5092cc57; //-1.97_0292*10^10 re =dataa/datab=0x41608e18; //14.0_3469
|