欢迎访问半岛BOB·「中国」官方网站

预约上门| 联系半岛BOB

全国24服务热线

400-123-4567
行业新闻 半岛BOB新闻
半岛·综合体育利用FPGA进行基本运算及特殊函数定点运算
时间:2024-07-22 08:33:07        点击量:【 】次

  半岛·综合体育利用FPGA进行基本运算及特殊函数定点运算结构和开发特性使得其对很多算法不友好,之前本人零散地总结和转载了些基本的数算在FPGA中的实现方式,今天做一个系统的总结归纳半岛BOB

  Xilinx 7系列的FPGA中有DSP Slice 半岛BOB,叫做“DSP48E1”这一专用硬件资源,这是一个功能强大的计算单元,单就用于基本运算的部分有加减单元和乘法器半岛BOB。详见参考文献1.

  因此可以直接用HDL语言中的加、减、乘符号实现变量与常量间运算操作以及变量与变量间操作。而四则运算中的除法没有基本的逻辑计算单元可以对应,因此计算除法需要调用除法器IP核。

  首先讨论结果位宽问题。在FPGA中往往采用定点运算替代浮点运算来降低硬件资源占用率和计算延迟,其中的精髓就是精度与资源的权衡。若按照保留计算结果的全部精度,N bit数与Mbit数相加结果需要N+1bit(N>

  M)。N bit数与M bit数相乘之积需要N+M bit半岛BOB。而减法可以转化为加法,除法则转换为乘法和加减法的组合半岛·综合体育。如果操作数是定点小数,则在满足以上准则的前提下,A与B相加(A小数点位数>

  B小数点位数),结果小数点位数与A相同;A与B相乘(小数点位数分别为p和q),结果小数点位数是p+q半岛BOB·中国官方网站

  然而(话锋一转),在大多数场合下bob半岛半岛·综合体育,不需要以上这么多位来保留计算结果,因为我们在进行数算时,已经知道输入数据的大致范围,一个数除以1000和除以1结果数据所需最小位宽能一样么?加减运算的操作步骤是先对齐小数点位数bob半岛半岛·综合体育,后加减。而乘法是先计算后取小数点。这实际上与十进制运算一致,我们看看具体的计算步骤:

  整数之间加减以及乘法的统一步骤:预估结果位宽N -->

  按照结果位宽扩展操作数符号位以防止溢出 -->

  运算取低N位。

  定点小数加减运算步骤:预估结果位宽N -->

  得到结果小数点后位数 -->

  对齐操作数整数位和小数位半岛·综合体育,确定扩展位宽M(M≥N) -->

  加减运算取低M位。

  定点小数乘法运算步骤:预估结果位宽N -->

  得到结果小数点后位数 -->

  扩展操作数位宽 -->

  相乘取低N位

  以上讨论的均是两变量之间的运算规则半岛BOB·中国官方网站,当然结果位宽及格式准则是适用的。变量与常量的运算的优势在于,可以将乘除法转换成加减以及移位运算实现,从而降低计算复杂度和延迟。当常数项C为2的整数次幂(C = 2^p),则乘C等于变量左移p位,除以C等于变量右移p位半岛·综合体育。几个在书中看到的几个简单示例:A*16 = A1A除以3 = A*(0.25+0.0625+0.0156) = A>

  2+A>

  4+A>

  6A除以5 = A*(0.125+0.0625+0.0156) = A>

  3 + A>

  4 + A>

  6.其中乘法完全等价对应的移位相加操作,而除法的移位代替会损失精度。

  FPGA内部的DSP Slice可以直接进行最基本的加法和乘法运算,但是对于其他比如对数、指数、三角函数半岛BOB、开根号等特殊函数就无能为力了。这时需要借助算法对这些特殊函数进行变换和简化。FPGA实现复杂函数的常用手段一个是级数展开,再一个就是CORDIC算法。关于CORDIC的理论知识和具体内容详见参考文献2,这里主要阐述CORDIC的IP核调用以及应用示例半岛BOB。CORDIC算法就是通过一定的手段,将很多复杂的特殊函数变为相加移位运算半岛BOB,这一点对于硬件芯片实现来说非常友好bob半岛。CORDIC分为旋转模式和矢量模式,配合圆周坐标、线性坐标和双曲线坐标会有六种组合,具体见下表:

半岛·综合体育利用FPGA进行基本运算及特殊函数定点运算(图1)

半岛·综合体育利用FPGA进行基本运算及特殊函数定点运算(图2)

  常见的函数计算需求基本都能满足,虽上述变换式对自变量定义域有限制,但同样可以分析输入数据的取值范围并利用简单的数学变换得到想要的结果。Xilinx同时提供了浮点IP核以及CORDIC IP核,前者调用简单但占用资源大,延迟高,因此利用CORDIC算法计算函数是个较好的选择。

  要计算e^x数值需要让CORDIC工作在双曲坐标的旋转模式下,通过e^x = sinhx+coshx关系式间接求得。首先看下sinh和cosh函数的曲线,有个直观认识半岛·综合体育

半岛·综合体育利用FPGA进行基本运算及特殊函数定点运算(图3)

  以及数据输出通道半岛·综合体育。该IP核有两种结构:串行和并行,可根据数据吞吐量需求选择,并行结构可以每个时钟输出一个计算结果。如果计算sinh和cosh,要向phase通道输入相位信息,X_OUT是cosh(phase),Y_OUT是sinh(phase).输入phase必须满足数据范围,否则出现不可预计结果。输出帧结构及数据范围如下:

  其中输入数据格式为2QN,输出则是1QN。由于均是有符号数半岛BOB,也就是输入整数部分3bit,输出整数部分2bit。接下来对IP核进行配置半岛·综合体育,重点是第一页半岛·综合体育,此处将其配置为计算sinh和cosh模式,采用并行优化的流水线结构。相位以角度为单位,输入输出位宽设置成16bit。

  欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师半岛BOB·中国官方网站、学生、老师半岛BOB、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!点个

Copyright © 2012-2025 半岛BOB·「中国」官方网站 版权所有HTML地图 XML地图         鲁ICP备18053584号-2

x
现在留言,无需等待!

收到你的留言,我们将第一时间与你取得联系