一种fpga进行数据处理的方法

文档序号:6630524阅读:1182来源:国知局
专利名称:一种fpga进行数据处理的方法
技术领域
本发明涉及数据处理方法,特别涉及一种FPGA进行数据处理的方法。
背景技术
现场可编程门阵列(FPGA)芯片在许多领域均有广泛的应用,尤其是在无线通信领域里,由于具有极强的实时性和并行处理能力,使其对信号进行实时处理成为可能。而 FPGA内部一般都包含逻辑单元(查找表/触发器)、存储单元(BRAM)、乘加单元(MAC)和一些其它的时钟、引脚单元等。现代数字信号处理的一个主要发展趋势是,算法结构日趋复杂,计算量大,实时性要求高,并且包含大量的三角函数、开方、对数等复杂函数的计算。当利用FPGA进行数据处理时,也越来越多的涉及到上述复杂函数的计算。但是,FPGA内部的乘加单元并不适合直接进行此类复杂函数的计算,需要把各种复杂函数分解为简单的移位、加法和乘法结构,进而在FPGA中实现。当前,在FPGA上实现三角函数、开方、对数等复杂函数的计算,技术领域最多被介绍的是除法的计算,其次为开方和三角函数,对于对数和其它复杂一些的函数的计算普遍没有涉及。而在FPGA中进行数据处理时,除法运算一般采用直接查表法或幂级数展开法, 对于三角函数和开方的计算,也会采用CORDIC的计算方法,但这三种方法的应用都有一定的局限性。以下进行详细说明。首先,对于在FPGA上采用直接查表来实现前述复杂函数计算的方法,优点是通用性强、结构简单,但是随着输入位宽的增加,对于FPGA内部存储量的消耗呈指数性增长。在表1中给出了不同输入输出位宽所需要的存储单元(BRAM)。表1不同输入输出位宽所需要的存储单元
权利要求
1.一种FPGA进行数据处理的方法,其特征在于,该方法包括提取输入数据的高Iog2M个比特位的数据,作为高有效位,根据预先设置的目标函数的计算表格,查找所述高有效位对应的目标函数值y (η)以及高有效位+1对应的目标函数值 y(n+l);提取输入数据的剩余比特位数据,作为低有效位,并将所述低有效位与y(n)和y(n+l) 的差值相乘,得到偏移值off (η),将该偏移值与所述高有效位对应的目标函数值y (η)相加,将计算结果作为所述输入数据对应的目标函数值。
2.根据权利要求1所述的方法,其特征在于,当所述输入数据的最高N位为零时,该方法进一步包括预先将所述输入数据左移,左移的位数为min (A-Iog2M,使左移后数据的最高第N位为非零时的移位位数),并将移位后的数据作为所述输入数据,进行后续操作;在将该偏移值与所述高有效位对应的目标函数值y (η)相加后,进一步将相加结果右移,将移位后的结果作为所述输入数据对应的目标函数值;其中,所述右移的位数与所述左移的位数相同;所述N为预设的自然数,且小于FPGA中目标函数计算的输入位宽。
3.根据权利要求2所述的方法,其特征在于,根据目标函数确定所述输入数据左移的位数。
4.根据权利要求1到3中任一所述的方法,其特征在于,当所述目标函数为随数据的增大而误差增大的函数时,在所述预先设置的目标函数的计算表格中,输入数据的步长为 (A-Iog2M),起始输入数据为0,其中,A为目标函数计算时的输入位宽,M为所述计算表格的深度;在根据所述计算表格查找目标函数值y(η)和y(n+l)时,将所述高有效位以及高有效位+1补零至输入位宽,再在所述计算表格中查找补零后的数据对应的目标函数值,作为所述 y(n)和 y(n+l)。
5.根据权利要求1到3中任一所述的方法,其特征在于,当所述目标函数为随数据的增大而误差减小的函数时,在所述预先设置的目标函数的计算表格中输入数据的步长为1 ;在根据所述计算表格查找目标函数值y(η)和y(n+l)时,在所述计算表格中查找所述高有效位以及(高有效位+1)对应的目标函数值,作为所述y (η)和y(n+l)。
全文摘要
本发明提供了一种FPGA进行数据处理的方法,包括提取输入数据的高log2M个比特位的数据,作为高有效位,根据预先设置的目标函数的计算表格,查找所述高有效位对应的目标函数值y(n)以及高有效位+1对应的目标函数值y(n+1);提取输入数据的剩余比特位数据,作为低有效位,并将所述低有效位与y(n)和y(n+1)的差值相乘,得到偏移值off(n),将该偏移值与所述高有效位对应的目标函数值y(n)相加,将计算结果作为所述输入数据对应的目标函数值。应用本发明,控制简单,结构规则,单运算周期,计算精度较高,适合于FPGA的数据处理实现。
文档编号G06F7/48GK102566963SQ20101061491
公开日2012年7月11日 申请日期2010年12月21日 优先权日2010年12月21日
发明者张慧欣, 满小明, 苏宇 申请人:普天信息技术研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1