集成电路器件中的离散傅里叶变换制造技术

技术编号:8133917 阅读:232 留言:0更新日期:2012-12-27 12:03
执行离散傅里叶变换的电路。可以在固定逻辑器件中提供或者可以向诸如可编程逻辑器件之类的可编程集成电路器件中配置该电路。该电路包括:浮点加法级,用于将离散傅里叶变换运算的输入值的尾数相加;以及定点级,用于将浮点加法级的输出乘以旋转因子。定点级包括:存储器,用于存储多个旋转因子集合,那些集合中的每个集合包括被移位不同量的相应旋转因子的副本;以及电路,用于确定在浮点级的输出的指数之间的差值并且用于使用该差值作为索引以从每个集合中的该相应旋转因子的那些副本之中选择。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及在集成电路器件中执行离散傅里叶变换运算,并且具体地在诸如可编程逻辑器件(PLD)之类的可编程集成电路器件中执行离散傅里叶变换运算。
技术介绍
离散傅里叶变换(DFT)是可以在信号处理应用中用来分析采样信号中包含的频率、求解偏微分方程并且执行其它运算如卷积或者大整数相乘的傅里叶变换类型。DFT可以用来构造快速傅里叶变换(FFT)。此外,更小DFT可以用来构造更大DFT。这使DFT对于在集成电路器件如可编程逻辑器件(PLD)中的专用数字信号处理(DSP)电路块中计算FFT而言特别有用,因为可以在个别DSP块中计算个别更小DFT。
技术实现思路
本专利技术涉及通过用定点运算替换浮点乘法运算来减少为了执行DFT运算而需要的资源。这之所以可以完成是因为DFT计算中的旋转因子数目相对小,并且它们在彼此的小数目的位内。因此,可以使用定点乘法器而不是使用浮点乘法器计算DFT。通过存储每个旋转因子的多个副本而每个副本被移位不同量来获得所需精度。待相乘的值的指数之间的差值用作旋转因子储存器中的索引以取回适当移位的旋转因子。因此,根据本专利技术,提供一种用于执行离散傅里叶变换的电路。该电路包括浮点加法级,用于将离散傅里叶变换运算的输入值的尾数(mantissa)相加;以及定点级,用于将浮点加法级的输出乘以旋转因子。定点级包括存储器,用于存储多个旋转因子集合,那些集合中的每个集合包括被移位不同量的相应旋转因子的副本;以及电路,用于确定在浮点级的输出的指数之间的差值并且用于使用该差值作为索引以从每个集合中的该相应旋转因子的那些副本之中选择。也提供一种在可编程器件上配置这样的电路的方法、一种这样可配置的可编程器件和一种编码有用于执行该方法的软件的机器可读数据存储介质。附图说明在考虑与以下附图结合进行的下文具体描述后,将清楚本专利技术的更多特征、其性质和各种优点,在附图中,相似标号全篇指代相似部分,并且在附图中图I示出了基数为4的离散傅里叶变换的逻辑结构;图2示出了图I的逻辑结构的已知改进;图3示出了根据本专利技术的一个实施例的基数为4的离散傅里叶变换的逻辑结构;图4是根据本专利技术的一个实施例的图3的逻辑结构的一个实现方式的简化框图;图5是与图4的实现方式结合的地址偏移计算的一个实现方式的简化框图;图6示出了根据本专利技术的另一实施例的基数为4的离散傅里叶变换的逻辑结构;图7是用于执行根据本专利技术的方法的编码有机器可执行指令集的磁数据存储介质的截面图;图8是用于执行根据本专利技术的方法的编码有机器可执行指令集的光学可读数据存储介质的截面图;并且图9是例示性系统的简化框图,该系统运用并入本专利技术的可编程逻辑器件。具体实施例方式基数为4的DFT具有四个复输入(Rl,II)、(R2,12)、(R3,13)和(R4,14)。如图I中可见,在第一个仓(bin) ({1,1,1,1})的计算100中,使用加法器101、102、103将实部全部相加,并且使用加法器111、112、113将所有虚部全部相加。DFT的这一部分仅需要加法器。计算实输出104为实求和103与实旋转因子107的乘积106与虚求和113与虚旋转因子117的乘积116之间的差值105。计算虚输出114为实求和103与虚旋转因子117的乘 积126与虚求和113与实旋转因子107的乘积136的求和115。除了乘法器106、116、126、136之外,可以使用加法器来实现运算。通过将{I, -j, -I, j}、{1,-1,1, -1}和{I, j, -I, -j}应用于输入值来计算基数为4的DFT的附加仓。在浮点运算中,容易实施(例如,通过反转符号位)取非(negation)。类似地,通过交换数的实分量和虚分量来实现与j相乘,这可以使用乘法器以及异或函数来实施。因此,可以在添加这些附加函数(未示出)时用与图I相似的结构实现附加仓。在基数为16的DFT中,将需要两个基数为4的级。在第一级的输出上的复乘法器将具有应用的有限数目的复旋转因子——WpWpWyWyWpWpWg,其中Wx = e_2〃x/16。图I中所示算符可以是根据用于浮点计算的IEEE754-1985标准的浮点算符。图2示出了如何可以如在于2007年I月22日提交的、共同未决的、共同转让的第11/625,655号美国专利申请中描述的那样通过使用浮点算符来使用更少资源计算图I的计算,在该专利申请中,大部分时间以非规格化形式维持浮点数,(a)为了根据前述IEEE754-1985标准的输出或者(b)当精度损失可能出现时才为规格化的。因此,加法201、202、203、211、212、213是浮点算符,但是在那些运算期间值未被规格化。然而,在乘法级205之前,在206、216处规格化所得的求和。在乘法级205内,乘法器215、225、235、245、加法器255和减法器265是浮点算符,但是在那些运算期间值未被规格化。然而,在207、217处规格化结果以用于在204、214处的输出。这与图I的实现方式相比可以导致资源使用减少约50%。可以观察到,在规格化块206、216之后,实尾数和虚尾数二者在因子二或者彼此内,但是它们的指数可以不同。在下一 DFT块之前用于复乘法的旋转因子也将可能具有小数目的值。例如,对于具有两个基数为4的DFT级的、基数为16的DFT而言,组成实旋转因子和虚旋转因子的值的十进制量值是1、0. 9239,0. 7071和O. 3827,它们在表达为二进制数时都在彼此的两位内。因而,如果比浮点尾数的精度更大一些的乘法器可用,则可以主要使用定点算术来实施复乘法从而节省附加资源。在根据本专利技术的一个实施例中,常用于单精度浮点乘法的36位乘法器与用于存储多个旋转因子的存储器一起可用。根据本专利技术的这一实施例,可以通过存储每个旋转因子为被移位不同量的多个定点副本来将用于DFT计算的旋转因子转换成定点数。DFT输入向计算仅保持浮点输入。在输入与旋转因子之间的指数差值被确定并且用作索引以从旋转因子存储器查找适当移位的旋转因子而不损失任何精度。在图3中示出了这一逻辑构造300。如在图2的情况下那样,加法201、202、203、211、212、213是浮点算符,但是在那些运算期间值未被规格化。同样,在乘法级305之前,在206,216处规格化所得的求和。在乘法级305中,乘法器315、325、335、345、加法器355和减法器365是定点算符。乘法器315、325、335、345的输出让它们的相对值相互对准,从而它们可以由加法器355和减法器365相加或者相减。可以通过对旋转因子移位来实现乘法器输出的对准。每个旋转因子的移位量将是乘法器输入的指数之间的差值。在一个实施例中,对于每个乘法器对(即生成实输出的对和生成虚输出的对)而言,一个旋转因子将不被移位而另一旋转因子将被移位。虽然这在逻辑上可以由图3中所示的移位器代表,但是如下文讨论的那样在图4中示出了一个物理实现方式。 较大输出值将是与接近一(即在一的两位量值内)的旋转因子相乘的规格化数据值。因此,将有在输出上需要的可能的规格化,但是在如上文讨论的那样分解成基数为4的子段(subsection)的、基数为16的DFT的情况下,将有最多为3位的规格化。可以在规格化206、216之后根据本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.03.02 US 12/715,7111.一种用于执行离散傅里叶变换运算的电路,所述电路包括 浮点加法级,用于将所述离散傅里叶变换运算的输入值的尾数相加;以及 定点级,用于将所述浮点加法级的输出乘以旋转因子,所述定点级包括 存储器,用于存储多个旋转因子集合,所述集合中的每个集合包括被移位不同量的相应旋转因子的副本,以及 电路,用于确定在所述浮点级的所述输出的指数之间的差值并且用于使用所述差值作为索引以从所述集合中的每个集合中的所述相应旋转因子的所述副本之中选择。2.根据权利要求I所述的电路,其中所述浮点加法级包括用于将所述尾数的实部相加的至少一个加法器和用于将所述尾数的虚部相加的至少一个加法器。3.根据权利要求2所述的电路,其中 所述用于将所述尾数的实部相加的至少一个加法器和所述用于将所述尾数的虚部相加的至少一个加法器执行非规格化加法;并且 所述浮点加法级还包括规格化级,所述规格化级用于规格化所述用于将所述尾数的实部相加的至少一个加法器和用于将所述尾数的虚部相加的至少一个加法器的非规格化输出。4.根据权利要求3所述的电路,其中所述规格化级包括 第一规格化模块,用于规格化所述用于将所述尾数的实部相加的至少一个加法器的输出;以及 第二规格化模块,用于规格化所述用于将所述尾数的虚部相加的至少一个加法器的输出。5.根据权利要求3所述的电路,其中所述规格化级包括 第一移位器,用于所述用于将所述尾数的实部相加的至少一个加法器的输出; 第二移位器,用于所述用于将所述尾数的虚部相加的至少一个加法器的输出; 第一前导零计数模块,用于确定所述用于将所述尾数的实部相加的至少一个加法器的输出上的前导零的第一数目; 第二前导零计数模块,用于确定所述用于将所述尾数的虚部相加的至少一个加法器的输出上的前导零的第二数目;以及 比较器,用于确定前导零的所述第一数目和所述第二数目中的哪个数目较小并且用于将前导零的所述第一数目和所述第二数目中的所述较小者应用于所述第一移位器和所述第二移位器中的每个移位器作为所述用于将所述尾数的实部相加的至少一个加法器的所述输出和所述用于将所述尾数的虚部相加的至少一个加法器的所述输出被移位的位置数目。6.根据权利要求2所述的电路,其中 所述旋转因子包括实旋转因子和虚旋转因子;并且 所述定点级还包括 第一乘法器,用于将所述用于将所述尾数的实部相加的至少一个加法器的输出乘以实旋转因子; 第二乘法器,用于将所述用于将所述尾数的虚部相加的至少一个加法器的输出乘以虚旋转因子;减法器,用于从所述第一乘法器的输出减去所述第二乘法器的输出; 第三乘法器,用于将所述用于将所述尾数的实部相加的至少一个加法器的输出乘以虚旋转因子; 第四乘法器,用于将所述用于将所述尾数的虚部相加的至少一个加法器的输出乘以实旋转因子;以及 加法器,用于将所述第四乘法器的输出与所述第三乘法器的输出相加。7.根据权利要求I所述的电路,其中 所述存储器包括存储被移位不同量的所述多个旋转因子的两端口存储器; 所述两端口存储器的第一地址输入选择所述相应旋转因子中的一个旋转因子;并且所述差值是所述两端口存储器的第二地址输入,所述第二地址输入选择所述相应旋转因子中的所述一个旋转因子的所述移位的副本之一。8.一种将可编程集成电路器件配置为用于执行离散傅里叶变换运算的电路的方法,所述方法包括 将所述可编程集成电路器件的逻辑配置为用于将所述离散傅里叶变换运算的输入值的尾数相加的浮点加法级;并且 将所述可编程集成电路器件的逻辑配置为用于将所述浮点加法级的输出乘以旋转因子的定点级,所述定点级包括 存储器,用于存储多个旋转因子集合,所述集合中的每个集合包括被移位不同量的相应旋转因子的副本,以及 电路,用于确定在所述浮点级的所述输出的指数之间的差值并且用于使用所述差值作为索引以从所述集合中的每个集合中的所述相应旋转因子的所述副本之中选择。9.根据权利要求8所述的方法,其中 所述将所述可编程集成电路器件的逻辑配置为浮点加法级包括将所述可编程集成电路器件的逻辑配置为用于将所述尾数的实部相加的至少一个加法器和用于将所述尾数的虚部相加的至少一个加法器。10.根据权利要求9所述的方法,其中 所述将所述可编程集成电路器件的逻辑配置为用于将所述尾数的实部相加的至少一个加法器和所述用于将所述尾数的虚部相加的至少一个加法器包括配置所述可编程集成电路器件的逻辑以执行非规格化加法;并且 所述将所述可编程集成电路器件的逻辑配置为浮点加法级包括将所述可编程集成电路器件的逻辑配置为规格化级,所述规格化级用于规格化所述用于将所述尾数的实部相加的至少一个加法器和用于将所述尾数的虚部相加的至少一个加法器的非规格化输出。11.根据权利要求10所述的方法,其中所述将所述可编程集成电路器件的逻辑配置为规格化级包括 将所述可编程集成电路器件的逻辑配置为第一规格化模块,所述第一规格化模块用于规格化所述用于将所述尾数的实部相加的至少一个加法器的输出;并且 将所述可编程集成电路器件的逻辑配置为第二规格化模块,所述第二规格化模块用于规格化所述用于将所述尾数的虚部相加的至少一个加法器输出的。12.根据权利要求10所述的方法,其中所述将所述可编程集成电路器件的逻辑配置为规格化级包括 将所述可编程集成电路器件的逻辑配置为第一移位器,所述第一移位器用于所述用于将所述尾数的实部相加的至少一个加法器的输出; 将所述可编程集成电路器件的逻辑配置为第二移位器,所述第二移位器用于所述用于将所述尾数的虚部相加的至少一个加法器的输出; 将所述可编程集成电路器件的逻辑配置为第一前导零计数模块,所述第一前导零计数模块用于确定所述用于将所述尾数的实部相加的至少一个加法器的输出上的前导零的第一数目; 将所述可编程集成电路器件的逻辑配置为第二前导零计数模块,所述第二前导零计数模块用于确定所述用于将所述尾数的虚部相加的至少一个加法器的输出上的前导零的第二数目;并且 将所述可编程集成电路器件的逻辑配置为比较器,所述比较器用于确定前导零的所述第一数目和所述第二数目中的哪个数目较小并且用于将前导零的所述第一数目和所述第二数目中的所述较小者应用于所述第一移位器和所述第二移位器中的每个移位器作为所述用于将所述尾数的实部相加的至少一个加法器的所述输出和所述用于将所述尾数的虚部相加的至少一个加法器的所述输出被移位的位置数目。13.根据权利要求9所述的方法,其中 所述旋转因子包括实旋转因子和虚旋转因子;并且 所述将所述可编程集成电路器件的逻辑配置为定点级还包括 将所述可编程集成电路器件的逻辑配置为第一乘法器,所述第一乘法器用于将所述用于将所述尾数的实部相加的至少一个加法器的输出乘以实旋转因子; 将所述可编程集成电路器件的逻辑配置为第二乘法器,所述第二乘法器用于将所述用于将所述尾数的虚部相加的至少一个加法器的输出乘以虚旋转因子; 将所述可编程集成电路器件的逻辑配置为减法器,所述减法器用于从所述第一乘法器的输出减去所述第二乘法器的输出; 将所述可编程集成电路器件的逻辑配置为第三乘法器,所述第三乘法器用于将所述用于将所述尾数的实部相加的至少一个加法器的输出乘以虚旋转因子; 将所述可编程集成电路器件的逻辑配置为第四乘法器,所述第四乘法器用于将所述用于将所述尾数的虚部相加的至少一个加法器的输出乘以实旋转因子;并且 将所述可编程集成电路器件的逻辑配置为加法器,所述加法器用于将所述第四乘法器的输出与所述第三乘法器的输出相加。14.根据权利要求8所述的方法,其中 所述存储器包括存储被移位不同量的所述多个旋转因子的两端口存储器; 所述将所述可编程集成电路器件的逻辑配置为定点级包括将所述可编程集成电路器件的逻辑配置为所述两端口存储器的第一地址输入以选择所述相应旋转因子中的一个旋转因子;并且 所述将所述可编程集成电路器件的逻辑配置为定点级包括配置所述可编程集成电路器件的逻辑以使用所述差值作为所述两端口存储器的第二地址输入,所述第二地址输入选择所述相应旋转因子中的所述一个旋转因子的所述移位的副本之一。15.一种可编程集成电路器件,包括 可配置为用于将离散傅里叶变换运算的输入值的尾数相加的浮点加法级的逻辑;以及 可配置为用于将所述浮点加法级的输出乘以旋转因子的定点级的逻辑,所述定点级包括 存储器,用于存储多个旋转因子集合,所述集合中的每个集合包括被移位不同量的相应旋转因子的副本,以及 电路,用于确定在所述浮点级的所述输出的指数之间的差值并且用于使用所述差值作为索引以从所述集合中的每个集合中的所述相应旋转因子的所述副本之中选择。16.根据权利要求15所述的可编程集成电路器件,其中 可配置为浮点加法级的所述逻辑包括可配置...

【专利技术属性】
技术研发人员:M·朗哈默
申请(专利权)人:阿尔特拉公司
类型:
国别省市:

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

1