技术应用论点ARGUMENT73基金课题:深圳市科技计划项目(JCYJ20180307123857045);深圳信息职业技术学院科技项目(SZIIT2019KJ026);深圳信息职业技术学院科技项目(LHPY-2021005)。基于Gold-Schmidt算法的高精度低延迟浮点平方根运算单元的VLSI实现文/刘明,佳沐,许志良,傅文佳,张霆廷一、平方根算法简述目前常见的开方算法有以下几类。(1)数字递归法。该方法操作简单,易于实现,但延迟较长,这点在精度较大的浮点数运算过程中表现得尤为明显。(2)函数迭代法。如Newton–Raphson法、Householders法和Gold-Schmidt迭代算法,此类算法需要更多的硬件成本,却不能保证运算结果的完全准确,此类算法的优点是快速、可扩展、易于流水线化。(3)高基数运算法。该方法运算速度快,但实现起来较为复杂,且通常需要消耗相当大的硬件面积。(4)查表法。该方法简单、快速,但硬件成本较高,可扩展性较差。基于此,本文采用Gold-Schmidt法来设计并实现高精度、低时延的浮点平方根运算单元。Gold-Schmidt法的迭代公式如下:11111.5iiiiiiiiirxhxxrhhr−−−−=−×■|=×■|=×■(1)式(1)中,ri表示平方根变量;xi表示调变因子x变量;hi表示调变因子h变量。初始值设置如式(2)所示:基于Gold-Schmidt迭代算法,笔者采用IEEE-754(2008)标准中的128位浮点标准数据格式,模块化地实现了浮点平方根运算单元的VLSI电路设计。随后,笔者对实现的128位浮点平方根运算单元进行了仿真测试,结果表明,本文设计的硬件运算单元满足全浮点域的精度要求。接着,笔者使用TSMC65nm标准工艺库对该硬件运算单元做了逻辑综合,结果表明,本文设计的硬件运算单元工作频率可达800MHz,完成一次完整的128位浮点计算需要4个时钟周期,最大计算误差小于1比特位,硬件电路面积为0.8216mm2,硬件功耗为13.87MW。论点ARGUMENT技术应用740000010.5rXxXrhr■≈|||=×■|=||■(2)其中,r0≈1/X1/2是1/X1/2的近似值(查表获取)。经过n次迭代,笔者得到xn=X1/2。此时,笔者结合式(1),得到Gold-Schmidt法的迭代示意图,如图1所示。二、浮点平方根运算单元的VLSI实现基于Gold-Schmidt法的浮点平方根运算单元的结构如图2所示。如图2所示,sqrt_preconfig模块主要负责对输入的128位浮点数data进行异常检测与预处理。首先,该模块会将输入的data分解为符号data_in_sign、指数data_in_exp以及尾数data_in_m,并计算指数偏差值exp_out;随后,进行异常检测,输出异常检测旗帜...