当前位置: 首页 > 专利查询>浙江大学专利>正文

一种开方运算的方法及其装置制造方法及图纸

技术编号:2919067 阅读:389 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种开方运算的方法及其装置。在控制模块发出的控制信号协同下,数据输入装置以组的形式短时集中地将待开方数据写入数据缓存模块;在开方模块中首先计算待开方数据算术根倒数的近似值,再通过复用迭代部分的硬件资源,计算更为精确的待开方数据算术根倒数的近似值,最后将该近似值与待开方数据相乘完成指定精度的开方运算;控制模块通过对数据输入装置输出的可读标志和开方模块输出的读使能标志的读取分析以及对数据缓存模块相应的读写操作,解决了因精度要求造成的开方模块不同处理时间的影响。该方法和装置适用于信号处理相关算法特别是包络检测以及其他类似应用的开方运算实现,具有资源消耗少,配置灵活的优点。

【技术实现步骤摘要】

本专利技术涉及一种开方运算的方法及其装置
技术介绍
开方运算是许多信号处理算法中重要的单元模块,特别是在包络检测的过程中。目前常用的开方运算硬件实现方法包括逐位循环开方算法和牛顿迭代开方算法。两种方法的流水实现都需要众多的乘法器资源,严重制约了开方运算在信号处理中的应用。在实时的信号处理中,包络检测往往是在相关运算结束后进行,需要开方的数据到达具有短时集中的特征,这样的特征在其他的应用也是存在的,这使得我们可以考虑用处理时间来换取资源空间。事实上,开方运算硬件实现过程中如果采用迭代算法,其中的迭代部分所用到的资源完全重复,通过重复使用资源可以达到用处理时间来换取资源空间的目的。
技术实现思路
本专利技术的目的是提供一种开方运算的方法及其装置。开方运算器的方法以批处理的方式完成开方运算,包括独立的数据缓存模块存储待开方的数据组,开方模块迭代运算部分循环复用硬件资源。具体步骤包括如下1)数据输入装置产生数据组写入数据缓存模块,并向控制模块置出可读标志;2)开方模块从数据缓存模块中读取一组数据,在开方模块中首先计算待开方数据算术根倒数的近似值,再通过复用迭代部分的硬件资源,计算更为精确的待开方数据算术根倒数的近似值,最后将该近似值与待开方数据相乘完成指定精度的开方模块的运算;完成一组数据的处理后,将结果写到数据输出装置,同时向控制模块置出读使能标志;3)控制模块监控数据输入装置的可读标志和开方模块的读使能标志,当可读标志有效时,可读组计数器加一,当读使能标志有效时,可读组计数器减一;开方模块在控制模块的控制信号作用下通过节点FIFO(先入先出寄存器)完成基于资源复用的开方运算。所述的开方运算包括如下步骤1)获得作为需要开方的数据A; 2)求出1/sqrt(A)的近似值赋给x1,其中sqrt(A)是计算待开方数据的算术根;3)根据精度要求反复多次进行hn=1-A×xn2]]>xn+1=xn+xn×hn/2两式的迭代运算,其中xn是第n次迭代计算前待开方数据算术根倒数的近似值,xn+1是第n次迭代计算后待开方数据算术根倒数的近似值,hn是第n次迭代计算中的中间变量;4)将A与xn相乘获得开方运算的结果。开方运算的装置数据缓存模块与开方模块相接,控制模块与数据缓存模块相接,开方模块与控制模块相接。所述的开方模块的电路为数据组预处理模块与迭代运算模块、结果生成模块相接。迭代运算模块的电路为所述的迭代运算模块的电路为XnI FIFO与平方模块相接,平方模块相接、A FIFO与乘法模块相接,乘法模块与Hn计算模块相接,Hn计算模块相接、XnII FIFO与三路计算模块相接,三路计算模块与XnI FIFO、XnII FIFO相接。本专利技术具有的有益效果包括开方模块的迭代运算部分循环复用硬件资源,按照不同的精度要求,只需要对控制模块进行不同的迭代次数配置,而不需要另外增加硬件的开销;数据缓存模块隔开了开方模块和数据输入装置,将待处理的数据进行缓存,由于在信号处理及其他的一些场合,待处理的数据往往是以短时集中的形式申请开方运算,同时后端开方模块根据精度要求而确定的不同迭代次数改变了批数据的处理时间,数据缓存模块的设置去除了前端数据输入装置应答开方模块处理时间的要求,降低了前端模块的设计复杂度,使整个开方运算器具有更强的可配置能力。附图说明图1是开方运算装置的电路方框图;图2是本专利技术的开方模块的电路方框图;图3是本专利技术的迭代运算模块的电路方框图。具体实施例方式本专利技术实现开方运算。在控制模块的控制下数据缓存模块暂存需要开方的数据组,开方模块中首先计算待开方数据算术根倒数的近似值,再通过复用迭代部分的硬件资源,计算更为精确的待开方数据算术根倒数的近似值,最后将该近似值与待开方数据相乘完成指定精度的开方模块的运算。如图1所示,数据缓存模块102与开方模块104相接,控制模块103与数据缓存模块102相接,开方模块104与控制模块103相接。本专利技术中,数据输入装置产生突发型确定个数的批数据,写入到数据缓存模块102中,同时置出可读标志。数据缓存模块102是一个深度为批数据个数若干倍的FIFO(先入先出寄存器),其深度大小由确定的前端数据产生时间和开方模块的处理时间决定,根据确定的精度,控制模块103置出迭代次数控制信号,处理时间随着精度要求的提高而提高。在实施例中,开方模块处理8路,每路256个的批数据,根据前端数据产生时间、开方模块所需要的处理时间和预留为精度提升的余量,我们采用2048深度的FIFO。开方模块104从数据缓存模块102中读取批数据后,进行开方运算。如图2所示,开方模块104的电路为数据组预处理模块201与迭代运算模块202、结果生成模块203相接。数据组预处理模块201将获得的待开方数据A经过简单的操作获得其算术根倒数的近似值1/sqrt(A)。在实施例中,对开方结果采用Q18的精度,首先估计待开方数据A整数部分的比特宽度W,然后用将1左移18-W/2比特的二进制数来代表其算术根倒数的近似值1/sqrt(A),并将此近似值赋给x1。待开方数据算术根倒数的近似值进入迭代运算模块202,进行迭代处理,获得更精确的近似值。如图3所示迭代运算模块202的电路为XnI FIFO301与平方模块302相接,平方模块302相接、A FIFO304与乘法模块303相接,乘法模块303与Hn计算模块305相接,Hn计算模块305相接、XnII FIFO306与三路计算模块307相接,三路计算模块307与XnI FIFO301、XnII FIFO306相接。在实施例中,进入开方模块104的待开方数据A在控制模块103的控制下,(1)写入AFIFO304,而经过数据组预处理模块201处理获得的待开方数据算术根倒数的近似值xn在控制模块103的控制下,写入XnI FIFO301和XnII FIFO306。(2)当两个FIFO都准备好数据后,XnI FIFO301中的数据经过平方模块302的运算在控制信号的协同下与AFIFO304读出的数据在乘法模块303中逐个相乘,同时,AFIFO304读出的数据被再次写入AFIFO304;乘法模块303的结果进入Hn计算模块305完成hn=1-A×xn2]]>的运算;与此同时,在控制信号的协同下,XnII FIFO306中的数据读出,与Hn计算模块305中的计算结果在三路计算模块307中逐一完成xn+1=xn+xn×hn/2的计算,其结果重新写入XnI FIFO301和XnIIFIFO306。根据控制模块103置出的迭代次数控制信号,重复以上(2)的过程,完成迭代运算模块202的功能。从迭代运算模块202获得需要开方数据组算术根倒数精确的近似值数据组,通过结果生成模块203完成A×1/sqrt(A)的过程,得到所要求的开方运算结果,同时向控制模块103置出读使能标志。控制模块103监控数据输入装置101的可读标志和开方模块104的读使能标志,当可读标志有效时,可读组计数器加一,当读使能标志有效时,可读组计数器减一,可读组计数器用来指示待处理数据组的个数;控制模块103根据可读组计数器的计数和指定的迭代次数控制从数据缓存模块102中读入新的待开方本文档来自技高网...

【技术保护点】
一种开方运算的方法,其特征在于,以批处理的方式完成开方运算,包括独立的数据缓存模块存储待开方的数据组,开方模块迭代运算部分循环复用硬件资源;具体步骤包括如下:1)数据输入装置产生数据组写入数据缓存模块,并向控制模块置出可读标志; 2)开方模块从数据缓存模块中读取一组数据,在开方模块中首先计算待开方数据算术根倒数的近似值,再通过复用迭代部分的硬件资源,计算更为精确的待开方数据算术根倒数的近似值,最后将该近似值与待开方数据相乘完成指定精度的开方模块的运算;完成一组数 据的处理后,将结果写到数据输出装置,同时向控制模块置出读使能标志;3)控制模块监控数据输入装置的可读标志和开方模块的读使能标志,当可读标志有效时,可读组计数器加一,当读使能标志有效时,可读组计数器减一;开方模块在控制模块的控制信号作 用下通过节点FIFO(先入先出寄存器)完成基于资源复用的开方运算。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵民建徐亮许峰王锐徐永兵
申请(专利权)人:浙江大学上海埃威航空电子有限公司
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1