CN1900927A - 可重构数字信号处理器 - Google Patents

可重构数字信号处理器 Download PDF

Info

Publication number
CN1900927A
CN1900927A CN 200610086398 CN200610086398A CN1900927A CN 1900927 A CN1900927 A CN 1900927A CN 200610086398 CN200610086398 CN 200610086398 CN 200610086398 A CN200610086398 A CN 200610086398A CN 1900927 A CN1900927 A CN 1900927A
Authority
CN
China
Prior art keywords
data
output
module
complex multiplication
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200610086398
Other languages
English (en)
Other versions
CN100594491C (zh
Inventor
洪一
郭二辉
赵斌
洪灏
彭勇俊
陈风波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui core Century Technology Co., Ltd.
Original Assignee
CETC 38 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 38 Research Institute filed Critical CETC 38 Research Institute
Priority to CN200610086398A priority Critical patent/CN100594491C/zh
Publication of CN1900927A publication Critical patent/CN1900927A/zh
Application granted granted Critical
Publication of CN100594491C publication Critical patent/CN100594491C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种可重构数字信号处理器(DSP),器件内部的硬件资源可根据不同的应用需求进行结构重组,从而能够实现多种形式的滤波运算。本发明兼具了传统专用集成电路(ASIC)与通用数字信号处理器的优点。它具有超大规模专用器件的运算能力,而且能适应快速傅立叶变换(FFT)、快速傅立叶逆变换(IFFT)、FIR脉组处理、相关处理等不同的数字信号实时处理场合,同时使用简单,价格低廉。

Description

可重构数字信号处理器
所属技术领域
本发明公开了一种用于快速傅立叶变换(FFT)、快速傅立叶逆变换(IFFT)、FIR脉组处理、相关处理等数字信号实时处理的可重构数字信号处理器(DSP)。
背景技术
20世纪60年代以来,随着计算技术和信息技术的迅速发展,数字信号处理作为一个独立学科迅速发展并在诸多领域得到广泛应用。随着大规模集成电路技术和半导体技术的快速发展以及各种实时处理需求的不断提高,数字信号处理能力也以指数级的速度飞速提升,并在科研、军事以及民用等领域发挥着越来越重要的作用,数字信号处理器件已成为支撑这些领域高速发展的重要条件。在数字信号实时处理中,快速傅立叶变换(FFT)、快速傅立叶逆变换(IFFT)、FIR脉组处理、相关处理等滤波运算的应用最为广泛。硬件的实现方式目前主要有基于通用数字信号处理器、基于现场可编程门阵列(FPGA)/大规模可编程逻辑器件(CPLD)和基于专用集成电路(ASIC)三种。一方面,三种器件各有局限,通用数字信号处理器的优势在于编程的灵活性和普适性,但其运算能力有限。大容量的FPGA/CPLD内部硬件资源较多,但需要针对具体应用单独开发固件逻辑,人力成本高,且大容量FPGA/CPLD价格昂贵。传统的专用集成电路架构与硬线连接固定,功能较单一,其应用范围大受局限。另一方面,数字信号处理的技术要求却在不断提高,随着宽带运用场合不断扩大、阵列处理的数目不断增大、合作及非合作数目目标处理涉及的运算量不断加大,对信号处理的速度在不断加码。如复数1024点FFT运算速度要求在100MHz以上,有些场合需要为500MHz以上。上述三种器件在功能、价格、适应性、易用性上越来越难满足数字信号实时处理的要求。
发明内容
本发明所要解决的技术问题是提供一种应用于数字信号实时处理的可重构数字信号处理器,它具有专用大规模集成电路的运算能力,而且能适应快速傅立叶变换(FFT)、快速傅立叶逆变换(IFFT)、FIR脉组处理、相关处理等不同的数字信号实时处理场合,同时使用简单,价格低廉。
本发明所采取的技术方案是:
可重构数字信号处理器内部的硬件架构和硬件连线可通过配置控制字进行结构重组,从而实现快速傅立叶变换(FFT)/快速傅立叶逆变换(IFFT)、FIR脉组及相关处理等多种形式的滤波运算。
主体架构包括输入单元、输出单元、数据交换单元和4个基本单元,其基本单元中包含160个实数浮点乘法累加器,而且它们平均分布于4个基本单元中。
硬件的组织形式可以通过配置控制字重组:通过控制字和控制信号的配置,可以改变所述160个实数浮点乘法累加器以及数据交换单元的组织形式,使之选择不同的工作模式,以适应三种不同的运算任务:FFT/IFFT、FIR脉组处理、相关运算。
硬件调度方案采取集中式与分布式相结合的两级调度方法:即控制字先由全局模块进行一级译码,再由各基本单元进行二级译码。
总体架构采用两级控制架构,全局控制模块用于协调4个基本单元,每个基本单元内部有其自身的本地控制逻辑。介于4个基本单元之间的数据交换单元负责把每个基本单元中的数据按照不同的控制要求送入其他3个基本单元。
输入单元接收控制字、对控制字进行一级译码、分配控制字到各单元。控制字与系数入口1复用同一个端口,控制字接收模块接收控制字,然后送入一级译码模块译码,一方面产生全局控制信号用于产生片内时序、为系数和数据提供同步,另一方面通过控制字分配模块分别向片内其他单元发射。系数同步模块对系数入口1与系数入口2进行同步。数据同步模块对数据入口1和数据入口2进行同步。
数据交换单元是一组多输入、多输出的开关组合,在4个基本单元之间交换数据。
输出单元对各个基本单元的运算结果进行排序,并且按照不同的格式输出。基本单元输出结果排序模块在FFT/IFFT和FIR脉组处理时将基本单元的输出按照频道顺序排列;当工作于相关处理运算模式时将来自各个基本单元的、按帧输出的数据调整为与输入数据率相同的连续数据流。求模模块完成实部/虚部的输出格式到模值/相角的输出格式的转换。取对数模块将输入的模值转换为对数表示。浮点/定点转换模块可以将实部/虚部模块的或者求模模块的输出由浮点格式转换为定点格式。指数归一化模块通过对尾数作相应移位将浮点格式的运算结果的指数统一为固定值。上述4种格式转换模块分别有两套,每个输出端口对应一套,保证两个输出端口可以独立地以任意一种格式输出。
基本单元中,数据存储器包括8个512×40的双端口RAM,用于运算数据的输入缓存、运算中间结果暂存和运算结果输出缓存。数据缓存可以同时把数据加到每个复数乘法累加器和复数乘法累加器子阵。系数存储器包括10个256×32的双端口RAM,用于存储相关处理和FIR滤波器系数以及FFT运算时的加权系数。FFT迭代运算的系数是一个固定的、以专用逻辑实现的一个表。每个复数乘法累加器对应4个实数浮点乘法累加器,每个复数乘法累加器子阵包括16个实数浮点乘法累加器,相当于4个复数乘法累加器。两个复数乘法累加器子阵和复数乘法累加器按照不同的方式搭配组合,用于完成不同的运算。实数浮点乘法累加器的结构分为5个部分:定点乘法部分、截位部分、指数调整部分、定点加法部分、指数判断部分。
在三种滤波运算时采取相应的组织形式为:
做FFT/IFFT运算时,复数乘法累加子阵A和复数乘法累加子阵B分别作为基8算法的一个迭代运算的节点,子阵中的4个复数乘法累加器用于完成一级基8迭代运算。子阵前面的那个复数乘法累加器A及复数乘法累加器B作为加窗运算器,对数据进行加窗处理。加窗之后的数据进入复数乘法累加子阵进行一级基8迭代运算。每一级迭代运算的输出首先导入数据缓存,然后再通过数据交换单元送到相应的另外一个复数乘法累加子阵,以进行下一级迭代运算。
在做FIR脉组处理时,基本单元内部的2个复数乘法累加器模块和2个复数乘法累加器子阵模块中的乘法累加器并联使用,每个复数乘法累加器对应FIR脉组的一个频道。共轭运算时对应2个频道。
做相关运算时,复数乘法累加器和复数乘法累加器子阵串联使用,相当于串联10个复数乘法累加器,此时基本单元内部的乘法累加器被构造成级联的形式。
所采用的硬件调度方案是:
通过控制字和控制信号对硬件资源的调度采用全局控制和基本单元内本地控制相结合的两级调度模式,控制字与控制信号首先进入全局控制模块进行一级译码与控制字分配。在这个模块内,首先接收控制字,然后根据控制字产生一些全局控制信号。这些全局控制包括:协调4个基本单元的动作,决定运算结果的输出格式,对片内主时钟的设置。全局控制模块的第二个作用,是向各基本单元的本地控制模块发射控制信息。这些被发射的信息包括:工作模式、工作模式的子类型、运算点数、频道数目、处理通道的数目。
各基本单元内的本地控制模块在收到全局控制模块发射的信息之后,对这些信息进行二级译码,将其转换为硬件调度控制信号的细节。
本发明具有显著的技术进步和积极效果:
本发明兼具了传统专用集成电路与通用数字信号处理器的优点。
高速处理能力:本发明采用可重构专用数字信号处理器方案,片内含有大量硬件资源,浮点乘法累加器多达160个,在处理能力上与传统专用集成电路相比犹有过之。由于器件内部算法全部用硬件实现,因而具有通用数字信号处理器芯片所无法比拟的高速运算性能。器件内部运算格式为浮点,单片完成快速傅立叶变换(FFT)运算的最大点数为4096点,完成4096点FFT运算时间为25.6us,完成同点数FFT+IFFT时间为51.2us;FIR脉组处理最大频道数为128,80个频道以下最大滤波长度为256,80个频道以上最大滤波长度为128;相关处理运算单片单通道最大运算长度为4000,最多可并行处理16个通道,各通道数据与各组系数之间的对应关系非常灵活。
功能可重构:有别于传统意义上的专用集成电路芯片的是,器件内部的资源根据不同的应用需求可以进行结构重组,从而能够实现FFT、IFFT、FIR脉组及相关处理等多种形式的滤波运算。增强了器件使用灵活性,拓展了器件的应用范围。
便捷的使用方式:本发明在一定程度上结合了通用数字信号处理器的灵活性,采用了独有的64bit功能控制字对器件进行配置,以满足不同的应用需求。使用非常简便,没有繁琐的编程和调试,也不需要象FPGA那样需要进行逻辑设计和时序分析,只需送出64位控制字,运算数据按照标准时序输入即可。只要改变控制字,器件内部的资源结构就进行了重组,器件也就按照另外一种模式工作。
附图说明
图1  硬件架构框图一
图2  基本单元结构框图
图3  实数乘法累加器结构框图
图4  FFT运算的基本单元配置结构框图
图5  FIR脉组运算的基本单元配置结构框图
图6  相关运算的基本单元配置结构框图
图7  硬件资源两级调度框架
图8  硬件架构框图二
图9  输入单元实现框图
图10 输出单元实现框图
图11 32位控制字输入实序图
图12 16位控制字输入实序图
具体实施方式
下面结合附图对本发明作进一步说明。
本发明的主体为160个乘法累加器,平均分布于4个基本单元(basic unit)中。通过控制字和控制信号的配置,可以让这160个乘法累加器以及存储器、数据交换单元等硬件资源工作于不同的组织形式,这些组织形式就决定了器件的不同工作模式类型。另外,本发明对硬件资源的调度采用两级调度方法,在控制上采用集中式控制与分布式控制相结合的办法。
本发明的具体实施方式分为3个层次,第一层是器件硬件架构;第二层是硬件组织方式;第三层是对硬件资源调度方法。下面对这三个层次分别加以说明。
一、硬件的主体架构
本发明的硬件架构如图1和图8所示。
本发明采用全同步设计,即整个芯片只有一个时钟域。从功能划分、逻辑字资源的均衡等角度考虑,整个器件的顶层设计为7个部分,即以4个基本单元为主体,外加输入单元、输出单元、数据交换3个部分。
器件采用两级控制架构,全局控制模块用于协调4个基本单元,每个基本单元内部有其自身的本地控制逻辑。这4个基本单元为器件的主体,完成数据缓存、运算、地址产生等主要功能。介于4个基本单元之间的数据交换单元负责把每个基本单元中的数据按照不同的控制要求送入其他3个基本单元。为满足不同应用,器件内部集成了若干专用功能模块,包括:求模电路、取对数电路、指数归一化电路、浮点-定点转换电路等。这些专用的功能模块可以将基本单元的运算结果以不同方式输出,而且两个输出端口完全独立,互不影响。另外,器件内部还集成了一个用于倍频的锁相环,这样使得内部运算时钟既可以直接从外部输入,也可以先由外部输入一个低速时钟,再由内部锁相环倍频之后作为运算时钟。
输入单元的具体实现如图9所示。除用于可测性设计的测试输入管脚之外,所有功能性的输入管脚首先进入输入单元。输入单元担负如下任务:接收控制字、对控制字进行一级译码、分配控制字到各单元、对输入系数进行同步、对输入数据进行同步、产生片内所需的全局时序信号等。下面就对输入单元中的各个模块一一简要说明。控制字与系数入口1复用同一个端口(coeff_in[31:0]),因此必须将输入的控制字首先接收下来,这是控制字接收模块的任务。控制字接收模块内部主要是一组寄存器,根据片外输入的使能信号将64位控制字分2次或4次打入这组寄存器中。在接收到控制字之后,一级译码模块将部分控制字译码为全局控制信号,这些全局控制信号用于产生片内时序、为系数和数据提供同步等。控制字分配模块的任务是,将64位控制字译码后分别向片内其他单元发射。因为系数入口1同时担负输入控制字的任务,而系数入口2不担负此任务,因此系数入口1与系数入口2延时不同,故必须用一个同步模块对系数入口1与系数入口2进行同步。类似地,数据入口1和数据入口2在功能上不尽相同,故这两个数据入口的数据必须按照工作模式和数据类型同步。
输出单元的具体实现如图10所示。本单元的主要作用是对各个基本单元的运算结果进行排序,并且按照不同的格式输出。滤波运算是在基本单元中完成的,且4个基本单元各自输出其结果,因此必须将4个基本单元的输出结果进行排序,以保证最终输出结果有序输出。“基本单元输出结果排序”模块的作用为:当器件工作于FFT/IFFT和FIR脉组处理时,此模块将基本单元的输出按照频道顺序排列;当工作于相关处理运算模式时,基本单元按照每10点为一帧的格式输出,两个数据帧之间存在间隔,此时此模块将基本单元的输出数据格式进行调整,将来自各个基本单元的、按帧输出的数据,调整为与输入数据率相同的连续数据流。求模模块主要完成实部/虚部的输出格式到模值/相角的输出格式的转换。取对数模块可以将输入的模值转换为对数表示。浮点/定点转换模块可以将实部/虚部模块的或者求模模块的输出由浮点格式转换为定点格式。指数归一化模块的作用类似于浮点/定点转换模块,它通过对尾数作相应移位,从而将浮点格式的运算结果的指数统一为某个固定值。上述的4种格式转换模块分别有两套,芯片的每个输出端口对应一套,这样保证了两个输出端口可以独立地以任意一种格式输出。
数据交换单元实际上是一组多输入、多输出的开关组合。它接收来自4个基本单元的8组输入,然后通过选择开关将任意一组输入切换到任意一组输出。这样,数据可以在4个基本单元之间自由传输,在实现特定算法时,为4个基本单元之间的配合提供了数据路径的保障。
4个基本单元是本发明的主体部分,完成数据缓存、运算、地址产生等大部分的功能。其结构如图2所示。4个基本单元具有统一的架构。“数据存储器”包括了8个512×40的双端口RAM,用于运算模式的数据输入缓存、FFT运算中间结果暂存和FFT运算结果输出缓存。由图可见,“数据缓存”可以同时把数据加到每个“复数乘法累加器”和“复数乘法累加器子阵”。“系数存储器”包括了10个256×32的双端口RAM,用于存储相关处理运算、FIR滤波运算的滤波器系数和FFT运算的加权系数。“FFT迭代运算系数”用一个固定的、以专用逻辑实现的表,用于提供FFT/IFFT运算的迭代运算系数。图中每个“复数乘法累加器”对应4个实数的浮点乘法累加器,而每个“复数乘法累加器子阵”则包括16个实数的浮点乘法累加器,相当于4个“复数乘法累加器”。两个“复数乘法累加器子阵”和“复数乘法累加器”按照不同的方式搭配组合,即可完成不同的运算。
在做FFT/IFFT运算时,“复数乘法累加器”作为加权乘法器,对需要多级运算的输入数据进行加权,然后送入“复数乘法累加子阵”进行基8迭代运算。也就是说,在做FFT/IFFT运算时,基本单元中的“复数乘法累加器A”和“复数乘法累加器子阵A”组成一个基8运算核,“复数乘法累加器B”和“复数乘法累加器子阵B”组成另一个基8运算核,这样整个芯片就有8个这样的运算核,在运算时将FFT/IFFT的运算分解到这8个运算核并行处理。
在做FIR脉组处理时,基本单元内部的2个“复数乘法累加器”模块和2个“复数乘法累加器子阵”模块中的乘法累加器并联使用,每个复数乘法累加器对应FIR脉组的一个频道。如果采用共轭运算,则每个复数乘法累加器对应2个频道,如果再复用一次,可以对应更多频道的运算。
做相关运算时,“复数乘法累加器”和“复数乘法累加器子阵”串联使用,相当于串联了10个复数乘法累加器;做FIR滤波运算时,“复数乘法累加器”和“复数乘法累加器子阵”并联使用,对应着滤波运算的10个频道;做FFT运算时,“复数乘法累加器”作为加权乘法器,对数据进行加权后再送给“复数乘法累加器子阵”做迭代运算。
本发明采用浮点数据格式进行复数运算,而复数运算是由4个实数运算所组成,因此实数浮点乘法累加器是器件的核心运算部件。实数浮点乘法累加器的结构框图如图3所示,分为5个部分:定点乘法部分、截位部分、指数调整部分、定点加法部分、指数判断部分。
器件的待运算数据共20位,格式为4位无符号指数+16位有符号尾数,所能表示的动态范围是-215×215~215×215-1。系数为16位有符号定点数,所能表示的动态范围是-215~215-1。对于运算的中间数据,折衷考虑运算的精度因素和硬件实现的面积、速度因素,采用24位浮点数据格式,即4位无符号指数+20位有符号尾数。乘法累加器的运算过程有如下5个步骤。
①、定点乘法部分,用于数据的16位有符号尾数与16位有符号的系数进行定点相乘。
②、截位部分,用于最大限度地保留定点乘法结果的精度。根据定点乘法之后的32位乘法结果的冗余符号位的位数,来确定所要保留的24位中间运算数据的20位尾数和这个尾数所对应的4位指数。如果32位的定点乘法结果带有k个冗余符号位,而又只能保留20位,那么显然,为了获得最大精度,最好是截掉这k位的冗余符号(左移k位)并同时在指数上减k。这样尾数变成了一位符号位和其后的19位数据位的形式。这就相当于对一个32位定点乘法结果a31a30a29……a2a1a0×2e同时进行如下操作:
去冗余符号位并截位:
Figure A20061008639800171
Figure A20061008639800172
指数在原来基础上减k:
Figure A20061008639800173
对于e>k>12的情况,即左移超过12位之后,应该在低位补0。同时应该注意到,不能使减了k以后的指数小于0。这样,在截位的时候就要综合考虑冗余符号位的位数和指数的大小,假如原指数小于冗余符号位的位数,即e<k,那么就只能截掉e位的冗余符号位,同时把指数减为0:
去冗余符号位并截位:
Figure A20061008639800182
指数在原来基础上减k:
③、对于浮点数的加法,须加数和被加数的指数相同二者的尾数才能相加。指数调整部分正是起调整加数或被加数的指数以使二者相等的作用。假定A1=a1×2e1、A2=a2×2e2两数相加,且e1<e2,那么就要把A1的指数e1调整到与e2相同的数值,同时把A1的尾数作e2-e1位符号位扩展并右移e2-e1位。
④、经过指数调整之后,加数和被加数指数已经统一,就可以将二者的经调整之后的尾数在符号位扩展之后定点相加,得到21位的定点加法结果。
⑤、因为在③指数调整过程中总是将较小的指数调整为较大的指数,故在定点相加之后要对21位的定点和去除冗余符号位,同时判断相加之后的指数的值,这就是指数判断的作用。
二、硬件资源的组织方式
本发明是一款可重构专用数字信号处理器,所谓“可重构”,即可以通过配置不同的控制字来组织硬件资源,使硬件资源工作在不同的模式之下。本发明可以配置为三类工作模式:FFT/IFFT、FIR脉组处理、相关处理运算。这三类工作模式的每一类又可通过控制字调节其关键参数,来满足不同的处理需求。下面结合附图分别说明这三类工作模式下硬件资源的组织方式。
1、FFT/IFFT
离散傅里叶变换(DFT)的基本公式为:
其中w(i)为DFT加权因子,x(i)为输入数据, 为旋转因子。N为DFT运算的点数。如果N是一个复合数,则一个长点数的DFT运算可以被转化为两个短点数(N1、N2)的DFT运算。若N1、N2能够继续分解,则这种分解可以一直进行下去,运算量会进一步下降。
按照不同的分解方法,FFT有基2、基4、基8、混合基等等算法。本发明的FFT/IFFT采用基8运算,这种工作模式可以细分为FFT、IFFT、FFT+IFFT三种类型,而其处理点数可以是256点、512点、1024点、2048点、4096点等,而且在点数小于等于2048时,还可以同时对两路数据进行FFT或IFFT处理。不管FFT/IFFT的处理点数是多少,在此类工作模式下,器件的4个基本单元(basic_unit)都将被配置成如图4所示的方式。此时图2所示的“复数乘法累加子阵A”和“复数乘法累加子阵B”分别作为基8算法的一个迭代运算的节点,子阵中的4个复数乘法累加器用于完成一级基8迭代运算。子阵前面的那个“复数乘法累加器A”及“复数乘法累加器B”作为加窗运算器,对数据进行加窗处理。加窗之后的数据进入“复数乘法累加子阵”进行一级基8迭代运算。每一级迭代运算的输出首先导入数据缓存,然后再通过图1中的数据交换单元送到相应的另外一个“复数乘法累加子阵”,以进行下一级迭代运算。下面针对单个基本单元来描述FFT/IFFT模式下的硬件组织方式。
GA3816器件进行FFT变换时,如果运算点数大于256,器件内部以分时复用方式工作,处理点数越大,复用次数越多。数据存储器配置成乒乓结构的数据缓存,器件内总的数据存储容量为32×256×40bits,分配到每个基本单元内的数据缓存为2×4×256×40bits。每个基本单元数据缓存划出一半的地址空间,即4×256×40bits,作为数据输入缓存。这样,单个器件4个基本单元可完成最大4096点FFT运算。
在进行FFT运算时,为了抑制副瓣,需要对输入数据进行加窗处理。在GA3816器件内部有40×256×32bit的双口RAM作为系数存储器,分配到每个基本单元有10×256×32bits。在每一个基本单元中,取8×256×32bits用作窗函数缓存,并且此缓存还被分成两组,每一组寻址深度为1024,分别向每一个“复数乘法累加器子阵”之前的加窗运算器提供窗函数。
因为FFT/IFFT运算的旋转因子具有规律性,因此本发明将基8FFT运算的旋转因子存储于一个固定的表中。本发明单片可完成的最大FFT/IFFT点数为4096,芯片内部共有8个512×32bit的这个旋转因子系数表,并被平均分配在四个基本单元(basic_unit)中。如果运算点数小于4096,则旋转因子就从这个表中抽取。另外我们还设计了4×8×32bits的系数表,用于存储基8运算时的系数。
当FFT点数小于等于2048时,本发明针对FFT/IFFT设计了第二种硬件资源组织方式:双路同时进行FFT运算。双路进数据模式中,basic_uint0、basic_unit2两个基本单元为一组,用于完成第一路运算;basic_uint1、basic_unit3两个基本单元为另一组,用于完成另外一路运算。虽然硬件资源分为两组,但是两组硬件基8运算的原理不变。两路数据同时从数据输入1、数据输入2端口输入,运算所得两组结果同时从输出端口1、输出端口2并行输出。此模式可用于两组独立的数据同时做FFT/IFFT或一组数据做二维FFT/IFFT。
2、FIR脉组处理
FIR脉组处理完成的基本功能为一个矩阵运算,其基本公式为:Y=H*X
其中:
Figure A20061008639800212
上式的矩阵运算在实现上可看作乘法累加运算。如果单独观察H矩阵(以下也称为“系数矩阵”)的一行和X矩阵(以下也称为“数据”)一列的运算且运算数据为复数时,其基本运算形式就是乘法累加,表达式为:
可见,FIR脉组处理事实上共有i组乘累加运算,每组包括j次相乘和j-1次累加。
除了FIR脉组处理的基本形式之外,本发明提出了FIR脉组处理几种扩展形式:滑动FIR脉组处理、两组数据并行的FIR脉组处理、FIR脉组处理的两频道相加形式等。不管基本形式还是扩展形式,在FIR脉组处理这类工作模式下,4个基本单元(basic_unit)内的硬件资源都将被配置成图5所示的组织形式。
图5所示的组织形式中,“复数乘法累加子阵A”中4个复数乘法累加器连同“复数乘法累加器A”一起组成“并联乘法累加阵列1”;“复数乘法累加子阵B”中4个复数乘法累加器连同“复数乘法累加器B”一起组成“并联乘法累加阵列2”。在“并联乘法累加阵列”中,1个复数乘法累加器用于FIR脉组处理1个频道(共轭情况2个频道)运算,这样一个“并联乘法累加阵列”可以并行处理5个频道(共轭情况下处理10个频道),所以1个基本单元能够并行处理10个频道(共轭情况下处理20个频道)。因此,当输入数据率等于芯片运算时钟时,4个基本单元最多可以并行完成80个频道FIR脉组处理。如果“并联乘法累加阵列”复用,则最多可以完成128个频道FIR脉组处理。
FIR脉组处理的系数存储于图2所示的系数存储器中。每个基本单元有10个256×32bits的双口RAM存储系数,每个乘法单元配备一个双口RAM,固定地向“并联乘法累加阵列”中的某一个复数乘法累加器提供系数,这样一个乘法累加器连同那个向它提供系数的双口RAM构成FIR脉组处理的一个频道。
每个基本单元(basic_unit)中有8个512×40bits的双口RAM用作数据存储器。FIR脉组处理时,此8个双口RAM全部用于数据缓存。在每个基本单元中,数据缓存从数据输入口接收相同的数据。并加到各个乘法累加器数据输入端与不同频道的系数进行乘法累加运算。
FIR脉组处理的第二种硬件资源组织形式为两组并行数据的FIR脉组处理。在这种组织形式下,第一个基本单元(basic_uint0)和第三个基本单元(basic_uint2)划分为一组,第二个基本单元(basic_uint1)和第四个基本单元(basic_uint3)划分为另一组。第一组基本单元中的“并联乘法累加阵列”用于对“数据输入1”端口输入的数据进行处理,第二组的“并联乘法累加阵列”则用于对“数据输入2”端口进入的数据处理。第一组基本单元中的数据存储器和系数存储器用于存储第一组数据和系数;第二组基本单元中的数据存储器和系数存储器则用于存储第二组数据和系数。这样一来,单片器件就可以并行地对两组不同数据进行FIR脉组处理。
上面介绍了两组数据并行运算的模式,在那种模式下,把整个芯片的硬件资源分为两组,每一组单独处理一组数据。类似地,当频道数小于等于40而滤波长度大于等于80时,为了提高运算速度,可以将待处理数据按照滤波长度的1/2平均分为两段,前一段从数据输入端口1进入,后一段从数据输入端口2进入,然后利用片内的两组硬件资源同时与各自的系数相乘、累加,然后再将各自乘累加的结果相加,得到完整的处理结果。这就是FIR脉组处理工作模式下的第三种硬件资源组织方式。
3、相关处理运算
相关处理运算指从一个连续采样的数据序列中以滑动方式从中连续截取N个数据进行滤波运算。它的运算特点是相邻两组滤波运算中有N-1个数据相同。其数学表达式为:其中N为滤波器运算长度。xi为输入信号,hi为滤波器对应的系数。
相关处理运算工作模式时基本单元内的硬件资源配置见图6所示。此时基本单元内部的乘法累加器被构造成级联的形式。每个基本单元包含10个浮点复数乘累器。第一个复数乘法累加器的输出作为第二个复数乘法累加器输入,同第二个乘法累加结果进行相加运算,相加结果作为第二个复数乘法累加器的输出,输入到第三个复数乘法累加器中,作为第三个加法运算的一个加数……以此类推,10个复数乘法累加器级联使用。这样,每个基本单元(basic_unit)能够组织成10个复数乘累器级联的运算结构,通过对这个“级连乘法累加阵列”不同次数的复用,可以完成10*N点(N=1、2、3…100)滤波长度的相关运算。同理,4个基本单元之间也采用级连方式,前一个基本单元得到相关运算的部分乘法累加和,送到下一个基本单元,作为下一个基本单元“级连乘法累加阵列”中第一个复数乘法累加器的加数。这样4个基本单元依次级连累加,最终的相关运算结果在第四个基本单元(basic_unit3)中产生。
器件的每个基本单元内有相同容量的数据存储器:8个512×40bits的双口RAM。在相关运算模式下,每个基本单元内的数据存储器被统一编址,作为数据缓存。在数据输入时,每个基本单元的数据缓存存储相同的数据。运算时,同一时个钟节拍,由数据缓存向同一基本单元内的10个级连复数乘法累加器提供相同的数据。
相关运算的系数暂存于每个基本单元内的10个256×32bits的双口RAM中。在基本单元内,每个32bit的双口RAM对应着级连乘法累加阵列中的一个复数乘法累器,固定地向那个复数乘法累加器提供系数。系数序列在这10个双口RAM中的存储特点是,系数按照hn,hn+1…hn+9的顺序依次存储于第1到第10个双口RAM中。也就是说,对于同一个双口RAM,其地址n和地址n+1位置所存储的系数的序号相差10。这是为了配合级连乘法累加阵列中的10个复数乘法累加器。因为在级连乘法累加阵列的流水线上,同一个时钟周期需要进行10次乘累加运算,这就要求系数缓存在同一个时钟周期提供10个连续的系数,所以系数以这种特点存储。
三、硬件资源的调度方法
本发明对硬件资源的调度采用两级调度框架,在控制方法上采用集中控制与分布控制相结合。图7为器件两级调度框架图。控制字与控制信号首先进入“全局控制”模块进行一级译码与控制字分配。在这个模块内,首先接收控制字,然后根据控制字产生一些全局控制信号。这些全局控制包括:协调4个基本单元的动作,决定运算结果的输出格式,对片内主时钟的设置等。“全局控制”模块的第二个作用,是向各基本单元的“本地控制”模块发射控制信息。控制信号和控制字首先进入“全局控制”模块,在此模块内,与运算控制的各种参数有关的控制字被译码,并向各基本单元发射。这些被发射的信息包括:工作模式、工作模式的子类型、运算点数、频道数目、处理通道的数目等等。
各基本单元(basic_unit)内的本地控制模块在收到全局控制模块发射的信息之后,会对这些信息进行二级译码,将其转换为硬件调度控制信号的细节。例如,根据工作模式及其类型决定一些选择开关的开合;根据处理通道的数目来决定系数如何存储,系数存储器地址如何产生;根据运算点数决定乘法累加阵列的复用次数,进而确定某个寄存器是否更新以及更新时间等等。将硬件资源的调度分为两级,主要是为了控制上的条理性和简约性。从实现的角度看,更加清晰和明了。
在基本单元内部,采用算术运算的方法来对关键参数进行译码。无论FFT/IFFT、FIR脉组还是相关处理运算,其数据和系数的存/取地址、乘法累加阵列的复用次数等都是具有规律性的,可以在这些规律的基础上,利用算术运算对控制字进行解码,得到所有的控制信息和时序信号。例如,在FIR脉组运算中,滤波阶数为40,点数也为40,则专用解码乘法器会计算出总共需要40×40=1600点的系数。那么在产生系数写地址时,会依次产生0~1599的写地址,将系数写入对应的缓存。采用算术运算解码方式的另一个原因,是出于调度的复杂程度和使用资源之间的折衷:首先,8×8的定点乘法器并不会占用太多资源;其次,如果将处理器所有工作状态列举出来,用查表方式实现解码的话,不但有繁琐而巨大的工作量,其存储单元和查找逻辑占用的资源也是很可观的。
本发明对硬件资源调度所采用的控制字共有64位,在FFT/IFFT、FIR脉组、相关运算的工作模式下,控制字的说明分别如表1、表2、表3
  控制字   名称                        意义及取值
  chip_id(3:0)   级连号   不使用,可恒置为0000。
  chip_num(3:0)   级连片数   不使用,可恒置为0000。
  chan_num(7:0)   通道数   不使用,可恒置为00000000。
work_model(4:0) 工作模式   FFT:取值为10000;IFFT:取值为10010;FFT+IFFT:取值为10011;双路进数据FFT:取值为10100;双路进数据IFFT:取值为10110。
  coeff_num(4:0)   系数组数   不使用,可恒置为00000。
  coeff_chan(4:0)   系数通道   不使用,可恒置为00000。
  conj   共轭选择   不使用,可置为‘0’。
length(7:0) 滤波长度       低四位length(3:0)表征的是FFT/IFFT运算的数据长度(也即一组加权系数的点数)。以2为底,length(3:0)对应的正整数值作为指数,所求出的幂就是运算的长度。目前所能处理的长度代码为:“1000”-256点:“1001”-512点;“1010”-1024点;“1011”-2048点;“1100”-4096点。length(6:4)对应的正整数值加1得到的值代表大点数FFT/IFFT运算拆分成小点数基八运算所需要的运算级数,其值与运算长度有关。256点~512点运算须三级,对应代码为:“010”;1024点~4096点运算须四级,对应代码为:“011”。最高位length(7)暂时不用,置为‘0’。
sel_coeff_ram(4:0) 系数基址       FFT/IFFT运算时,在运算过程中可更换系数组。sel_coeff_ram(4:0)对应的整数值表示要使用的系数存储器中对应某组系数。系数组数可选值与运算点数有关。4096点有2组系数可换,2048点有4组,1024点有8组,512点有16组,256点则有32组系数可换。即sel_coeff_ram取值范围在“00000”到“11111”之间。
  sel_data   是否加权   FIR脉组运算模式下,选择是否对输入数据加权。FFT模式恒设为‘0’。
  sel_coeff_pp   系数乒乓   双路进数据时系数是否乒乓写入。不乒乓,设置为‘0’;乒乓,设置为‘1’。
resultl_mod(1:0)   输出口1输出方式   最终结果输出端口1的结果输出方式可以有4种。此控制字取00:输出I/Q数据;取01:输出模值、相角;取10:输出对数、相角;取11:输出相关级联数据。
sel_AGC1(1:0) 输出口1增益控制   最终结果输出端口1既可以按照输入数据的格式,I/Q分别为20位浮点输出;也可以用控制字GAC1(3:0)的值作为标准取一个归一化的浮点值;还可以将I/Q都转化为20位的定点数输出。sel_AGC1(1:0)取00,11时,浮点输出;取01时,指数归一化输出;取10时,定点输出。
AGC1(3:0)   输出口1归一化电平   sel_AGC1=01,10时,都需要确定一个基准的指数值,而AGC1(3:0)即为此基准指数值,当指数归一化输出或定点输出时,都以此为基准。
result2_mod(1:0)   输出口2输出方式   类似于result1_mod(1:0)。取00:输出I/Q数据;取01:输出模值、相角;取10:输出对数、相角;取11:输出相关级联数据。
sel_AGC2(1:0)   输出口1增益控制   类似于sel_AGC1(1:0)。取00,11:浮点输出;取01:指数归一化输出;取10:定点输出。
AGC2(3:0)   输出口1归一化电平   类似于AGC1(3:0)。当sel_AGC2=01,10时,输出的浮点指数取AGC2值为基准,做指数归一化或浮点转定点处理。
                                                      表1
 控制字   名称                      意义及取值
 chip_id(3:0)   级连号   在FIR模式下恒置为0000。
 chip_num(3:0)   级连片数   在FIR模式下恒置为0000。
chan_num(7:0) 频道数   FIR脉组运算的频道数目。根据使用需要确定。如,并行50个频道运算,则chan_num+1=50。
work_model(4:0) 工作模式   FIR脉组运算模式下取值为01000;滑动FIR脉组运算模式下取值为00010;两组数据并行运算的FIR脉组模式下取值为00100;
  两频道相加的FIR脉组模式下取值为00001;FIR脉组实现DFT模式,取值同普通的FIR脉组运算模式,为01000,同时控制字sel_data必须设置为‘1’。
  coeff_num(4:0)   系数组数   在FIR脉组模式下恒置为00000。
  coeff_chan(4:0)   系数通道   在FIR脉组模式下恒置为00000。
conj 共轭选择   FIR脉组模式下系数是否共轭。若滤波器组采用频道间共轭的系数,则相当于运算速率提高一倍。设为‘0’,不共轭;设为‘1’,共轭。
  length(7:0)   滤波长度   FIR脉组模式下的滤波运算长度,滤波长度N=length+1。
  sel_coeff_ram(4:0)   系数基址   FIR脉组模式下运算过程系数更换基址。高2位恒置为00,低3位表示使用系数存储器当中哪个区域的系数。
sel_data 是否加权   FIR脉组运算模式下,选择是否对输入数据加权。‘0’,不加权;‘1’加权。当且仅当芯片工作于FIR脉组实现DFT运算时,此控制字为‘1’。
  sel_coeff_pp   系数乒乓   FIR脉组模式下,此处固定设为‘0’。
result1_mod(1:0)   输出口1输出方式   最终结果输出端口1的结果输出方式可以有4种。此控制字取00:输出I/Q数据;取01:输出模值、相角;取10:输出对数、相角;取11:输出相关级联数据。
sel_AGC1(1:0) 输出口1增益控制   最终结果输出端口1既可以按照输入数据的格式,I/Q分别为20位浮点输出;也可以用控制字GAC1(3:0)的值作为标准取一个归一化的浮点值;还可以将I/Q都转化为20位的定点数输出。sel_AGC1(1:0)取00,11时,浮点输出;取01时,指数归一化输出;取10时,定点输出。
AGC1(3:0)   输出口1归一化电平   sel_AGC1=01,10时,都需要确定一个基准的指数值,而AGC1(3:0)即为此基准指数值,当指数归一化输出或定点输出时,都以此为基准。
result2_mod(1:0)   输出口2输出方式   类似于result1_mod(1:0)。取00:输出I/Q数据;取01:输出模值、相角;取10:输出对数、相角;取11:输出相关级联数据。
sel_AGC2(1:0)   输出口1增益控制   类似于sel_AGC1(1:0)。取00,11:浮点输出;取01:指数归一化输出;取10:定点输出。
AGC2(3:0)   输出口1归一化电平   类似于AGC1(3:0)。当sel_AGC2=01,10时,输出的浮点指数取AGC2值为基准,做指数归一化或浮点转定点处理。
                                              表2
  控制字   名称                           意义及取值
chip_id(3:0) 级连号 多片级连使用时,本片在级连链上的位置。例如:本片为级连链上的第3片,则chip_id+1=3。若单片使用,则chip_id恒为0000。
Chip_num(3:0) 级连片数 多片级连使用时,表明级连链上共有几片器件。例如:有3片器件级连使用,则chip_num+1=3。若单片使用,则chip_num恒为0000。
Chan_num(7:0) 通道数 取值在00000000~00001111之间,根据使用需要确定。例如,需要并行运算7个通道,则chan_num+1=7。
  Work_model(4:0)   工作模式   相关运算模式下取值为11000
coeff_num(4:0) 系数组数   表明多通道运算时共需多少组系数。取值不得超过当前的通道数chan_num(7:0)。例如,共有3组系数,则coeff_num+1=3。
Coeff_chan(4:0) 系数通道   各组系数和各通道间的对应关系。配合系数组数coeff_num和通道数chan_num使用。三者间的关系为:coeff_chan+1=[(chan_num+1)/(coeff_num+1)]+1即,(coeff_chan+1)为(chan_num+1)除以(coeff_num+1)取整后加1。例如:chan_num+1=7,coeff_num+1=3,则coeff_num+1=3。Coeff_chan+1所表达的意义是:每一组系数所对应的通道数。以上例来说,7个通道,3组系数,系数通道加1为3,说明第1、2、3通道与第1组系数匹配,第4、5、6通道与第2组系数匹配,第7通道与第3组系数匹配。
  Conj   共轭选择   相关运算时恒置为0。
Length(7:0) 滤波长度   表征的是相关运算的滤波长度(也即一组系数的点数)。设窗口长度为X,则,X=40*(length+1)。
  Sel_coeff_ram(4:0)   读系数基址   相关运算时,系数存储器分为两个区域,在运算过程中可实时更换系数。Sel_coeff_ram(4:0)的高4位恒置为0000,最低位表示用哪个区域的系数。
  Sel_data   是否加权   相关运算模式下,此处固定设为‘0’。
  Sel_coeff_pp   系数乒乓   相关运算模式下,此处固定设为‘0’。
  Result1_mod(1:0)   输出1模式   00:result1直接输出I/Q;01:result1输出模值、相角;10:result1输出对数、相角;11:result1相关级联。
Sel_AGC1(1:0)   输出1增益控制选择   00,11:result1增益不作处理;01:result1结果进行指数归一化;10:result1结果由浮点转定点。
AGC1(3:0)   输出1增益   当sel_AGC1取值为01或10时,就把运算所得浮点结果1的指数按照AGC1的取值进行归一化。
  Result2_mod(1:0)   输出2模式   00:result2直接输出I/Q;01:result2输出模值、相角;10:result2输出对数、相角;11:result2相关级联。
Sel_AGC2(1:0)   输出2增益控制选择   00,11:result2增益不作处理;01:result2结果进行指数归一化;10:result2结果由浮点转定点。
AGC2(3:0)   输出2增益   当sel_AGC2取值为01或10时,就把运算所得浮点结果2的指数按照AGC2的取值进行归一化。
                                              表3
64位控制字通过系数输入端口coeff_in输入,输入方式分为32位输入和16位输入两种,由管脚control_en1、control_en2作为使能,在control_en1、control_en2各自为低时分别送入。32位输入时,功能控制字分两组,占用coeff_in(31:0)的全部32位,control_en1、control_en2的低电平分别持续1个coeff_en周期,在control_en1为低的coeff_en周期内送功能控制字的前32位,在control_en2为低的coeff_en周期内送控制字的后32位。16位输入时,功能控制字占用coeff_in(31:0)的高16位,control_en1、control_en2的低电平持续2个coeff_en周期,在control_en1为低的2个coeff_en周期内送功能控制字前32位,在control_en2为低的2个coeff_en周期内送功能控制字的后32位。32位控制字输入时序和16位控制字输入的时序图11、图12所示。
在以本发明为主处理器的通用信号处理板上,分别进行1024点FFT运算、10阶FIR脉组处理、360点线性调频信号的相关运算,其控制字设置分别如表4、表5、表6所示。
  控制字   名称                        意义及取值
  work_model(4:0)   工作模式   FFT:取值为10000;
length(7:0) 滤波长度   低四位length(3:0)表征的是FFT/IFFT运算的数据长度(也即一组加权系数的点数)。以2为底,length(3:0)对应的正整数值作为指数,所求出的幂就是运算的长度。此处取值“1010”,对应1024点。length(6:4)对应的正整数值加1得到的值代表大点数FFT/IFFT运算拆分成小点数基八运算所需要的运算级数,其值与运算长度有关。此处1024点运算须四级,对应代码为:“011”。最高位length(7)置为‘0’。
resultl_mod(1:0)   输出口1输出方式   最终结果输出端口1的结果输出方式可以有4种。此处控制字取01,输出模值、相角。
sel_AGC1(1:0) 输出口1增益控制   最终结果输出端口1既可以按照输入数据的格式,I/Q分别为20位浮点输出;也可以用控制字GAC1(3:0)的值作为标准取一个归一化的浮点值;还可以将I/Q都转化为20位的定点数输出。此处取10,定点输出。
AGC1(3:0)   输出口1归一化电平   当sel_AGC1=01,10时,都需要确定一个基准的指数值,而AGC1(3:0)即为此基准指数值,当指数归一化输出或定点输出时,都以此为基准。此处取基准为1011。
                                           表4
  控制字   名称                       意义及取值
chan_num(7:0) 频道数   FIR脉组运算的频道数目。规则为:频道数目=chan_num+1。此处为10阶FIR脉组运算,故chan_num为00001001
work_model(4:0) 工作模式   FIR脉组运算模式下取值为01000此处为FIR脉组运算模式,故设置为01000
conj 共轭选择   FIR脉组模式下系数是否共轭。若滤波器组采用频道间共轭的系数,则相当于运算速率提高一倍。此处设为‘1’,选择共轭。
length(7:0) 滤波长度   FIR脉组模式下的滤波运算长度,滤波长度N=length+1。此处为10阶FIR脉组运算,故length设置为00001001
result1_mod(1:0)   输出口1输出方式   最终结果输出端口1的结果输出方式可以有4种。此处取00:输出I/Q数据。
sel_AGC1(1:0) 输出口1增益控制   最终结果输出端口1既可以按照输入数据的格式,I/Q分别为20位浮点输出;也可以用控制字GAC1(3:0)的值作为标准取一个归一化的浮点值;还可以将I/Q都转化为20位的定点数输出。此处sel_AGC1(1:0)取10,定点输出。
AGC1(3:0) 输出口1归一化电平   sel_AGC1=01,10时,都需要确定一个基准的指数值,而AGC1(3:0)即为此基准指数值,当指数归一化输出或定点输出时,都以此为基准。此处基准GAC1取0111
                                             表5
  控制字   名称                     意义及取值
chip_id(3:0) 级连号   多片级连使用时,本片在级连链上的位置。此处单片使用,故chip_id设置为0000。
Chip_num(3:0) 级连片数   多片级连使用时,表明级连链上共有几片器件。此处单片使用,故chip_num设置为0000。
Chan_num(7:0) 通道数   通道数目,规则为:通道数=chan_num+1。此处一个通道,故chan_num设置为00000000
Work_model(4:0) 工作模式   相关运算模式下取值为11000此处为相关运算,work_model设置为11000
coeff_num(4:0) 系数组数   表明多通道运算时共需多少组系数。取值不得超过当前的通道数。此处只有一组系数,故coeff_num设置为00000
Coeff_chan(4:0) 系数通道   各组系数和各通道间的对应关系。此处一组系数对应一个通道,故coeff_chan设置为00000
Length(7:0) 滤波长度   表征的是相关运算的点数。设窗口长度为X,则,X=40*(length+1)。此处为360点相关运算,故length设置为00001001
Result1_mod(1:0)   输出1模式   表明result1输出端口以何中模式输出。此处result1_mod设置为10,result1输出对数、相角。
                                                 表6

Claims (5)

1、可重构数字信号处理器,其特征在于:
器件内部的硬件架构和硬件连线可通过配置控制字进行结构重组,从而实现快速傅立叶变换/快速傅立叶逆变换、FIR脉组及相关处理等多种形式的滤波运算。
2、如权利要求1所述的可重构数字信号处理器,其特征在于:
主体架构包括输入单元、输出单元、数据交换单元和4个基本单元,其基本单元中包含160个实数浮点乘法累加器,而且它们平均分布于4个基本单元中;
硬件的组织形式可以通过配置控制字重组:通过控制字和控制信号的配置,可以改变所述160个实数浮点乘法累加器以及数据交换单元的组织形式,使之选择不同的工作模式,以适应三种不同的运算任务:FFT/IFFT、FIR脉组处理、相关运算;
硬件调度方案采取集中式与分布式相结合的两级调度方法:即控制字先由全局模块进行一级译码,再由各基本单元进行二级译码。
3、如权利要求1或2所述的可重构数字信号处理器,其特征在于:
总体架构采用两级控制架构,全局控制模块用于协调4个基本单元,每个基本单元内部有其自身的本地控制逻辑。介于4个基本单元之间的数据交换单元负责把每个基本单元中的数据按照不同的控制要求送入其他3个基本单元;
输入单元接收控制字、对控制字进行一级译码、分配控制字到各单元:控制字与系数入口1复用同一个端口,控制字接收模块接收控制字,然后送入一级译码模块译码,一方面产生全局控制信号用于产生片内时序、为系数和数据提供同步,另一方面通过控制字分配模块分别向片内其他单元发射,系数同步模块对系数入口1与系数入口2进行同步,数据同步模块对数据入口1和数据入口2进行同步;
数据交换单元是一组多输入、多输出的开关组合,在4个基本单元之间交换数据;
输出单元对各个基本单元的运算结果进行排序,并且按照不同的格式输出:基本单元输出结果排序模块在工作于FFT/IFFT和FIR脉组处理模式时将基本单元的输出按照频道顺序排列,当工作于相关处理模式时将来自各个基本单元的、按帧输出的数据调整为与输入数据率相同的连续数据流,求模模块完成实部/虚部的输出格式到模值/相角的输出格式的转换,取对数模块将输入的模值转换为对数表示,浮点/定点转换模块可以将实部/虚部模块的或者求模模块的输出由浮点格式转换为定点格式,指数归一化模块通过对尾数作相应移位将浮点格式的运算结果的指数统一为固定值,上述4种格式转换模块分别有两套,每个输出端口对应一套,保证两个输出端口可以独立地以任意一种格式输出;
基本单元中,数据存储器包括8个512×40的双端口RAM,用于运算数据的输入缓存、运算中间结果暂存和运算结果输出缓存,数据缓存可以同时把数据加到每个复数乘法累加器和复数乘法累加器子阵,系数存储器包括10个256×32的双端口RAM,用于存储相关处理和FIR滤波器系数以及FFT运算时的加权系数,FFT迭代运算的系数是一个固定的、以专用逻辑实现的表,每个复数乘法累加器对应4个实数浮点乘法累加器,每个复数乘法累加器子阵包括16个实数浮点乘法累加器,相当于4个复数乘法累加器,两个复数乘法累加器子阵和复数乘法累加器按照不同的方式搭配组合,用于完成不同的运算,实数浮点乘法累加器的结构分为5个部分:定点乘法部分、截位部分、指数调整部分、定点加法部分、指数判断部分。
4、如权利要求1或2所述的可重构数字信号处理器,其特征在于做三种滤波运算时采取相应的组织形式,分别为:
做FFT/IFFT运算时,复数乘法累加子阵A和复数乘法累加子阵B分别作为基8算法的一个迭代运算的节点,子阵中的4个复数乘法累加器用于完成一级基8迭代运算:子阵前面的那个复数乘法累加器A及复数乘法累加器B作为加窗运算器,对数据进行加窗处理,加窗之后的数据进入复数乘法累加子阵进行一级基8迭代运算,每一级迭代运算的输出首先导入数据缓存,然后再通过数据交换单元送到相应的另外一个复数乘法累加子阵,以进行下一级迭代运算;
做FIR脉组处理时,基本单元内部的2个复数乘法累加器模块和2个复数乘法累加器子阵模块中的乘法累加器并联使用,每个复数乘法累加器对应FIR脉组的一个频道,共轭运算时对应2个频道;
做相关运算时,复数乘法累加器和复数乘法累加器子阵串联使用,相当于串联10个复数乘法累加器。
5、如权利要求1或2所述的可重构数字信号处理器,其特征在于所采用的硬件调度方案,分别是:
对硬件资源的调度采用全局控制和基本单元内本地控制相结合的两级调度模式:控制字与控制信号首先进入全局控制模块进行一级译码与控制字分配,在这个模块内,首先接收控制字,然后根据控制字产生全局控制信号,包括:协调4个基本单元的动作,决定运算结果的输出格式,对片内主时钟的设置,全局控制模块的第二个作用是向各基本单元的本地控制模块发射控制信息,包括:工作模式、工作模式的子类型、运算点数、频道数目、处理通道的数目;
各基本单元内的本地控制模块在收到全局控制模块发射的信息之后,对这些信息进行二级译码,将其转换为硬件调度控制信号的细节。
CN200610086398A 2006-07-14 2006-07-14 可重构数字信号处理器 Active CN100594491C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200610086398A CN100594491C (zh) 2006-07-14 2006-07-14 可重构数字信号处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200610086398A CN100594491C (zh) 2006-07-14 2006-07-14 可重构数字信号处理器

Publications (2)

Publication Number Publication Date
CN1900927A true CN1900927A (zh) 2007-01-24
CN100594491C CN100594491C (zh) 2010-03-17

Family

ID=37656814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610086398A Active CN100594491C (zh) 2006-07-14 2006-07-14 可重构数字信号处理器

Country Status (1)

Country Link
CN (1) CN100594491C (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010083723A1 (zh) * 2009-01-21 2010-07-29 上海芯豪微电子有限公司 可重构数据处理平台
CN101833540A (zh) * 2010-04-07 2010-09-15 华为技术有限公司 信号处理方法和装置
CN102043761A (zh) * 2011-01-04 2011-05-04 东南大学 一种基于可重构技术的傅立叶变换的实现方法
CN102122275A (zh) * 2010-01-08 2011-07-13 上海芯豪微电子有限公司 一种可配置处理器
CN102087640B (zh) * 2009-12-08 2013-06-05 中兴通讯股份有限公司 傅里叶变换的实现方法和装置
CN103390071A (zh) * 2012-05-07 2013-11-13 北京大学深圳研究生院 一种可重构算子阵列的层次化互连结构
CN103543984A (zh) * 2012-07-11 2014-01-29 世意法(北京)半导体研发有限责任公司 用于特殊相关应用的修改型平衡吞吐量数据路径架构
CN103543983A (zh) * 2012-07-11 2014-01-29 世意法(北京)半导体研发有限责任公司 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
CN103999039A (zh) * 2011-10-27 2014-08-20 Lsi公司 具有带有复数指数非线性函数的指令集的数字处理器
CN104932992A (zh) * 2015-07-08 2015-09-23 中国电子科技集团公司第五十四研究所 一种带宽粒度可变的微波数字柔性转发技术的设计方法
CN105206282A (zh) * 2015-09-24 2015-12-30 深圳市冠旭电子有限公司 一种噪音采集方法及装置
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN106951394A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用fft处理器
CN106959936A (zh) * 2016-01-08 2017-07-18 福州瑞芯微电子股份有限公司 一种fft的硬件加速实现装置及方法
CN109782661A (zh) * 2019-01-04 2019-05-21 中国科学院声学研究所东海研究站 基于fpga应用于水声定位实现可重配置和多输出的实时处理***及方法
CN110024345A (zh) * 2016-11-30 2019-07-16 美光科技公司 包含混合特定于处理模式选择的系数数据的实例的无线装置和***
CN110247872A (zh) * 2019-03-25 2019-09-17 南京南瑞微电子技术有限公司 一种用于电力线载波通信芯片的同步检测方法及装置
CN110674456A (zh) * 2019-09-26 2020-01-10 电子科技大学 一种信号采集***的时频转换方法
CN111064912A (zh) * 2019-12-20 2020-04-24 江苏芯盛智能科技有限公司 一种帧格式变换电路与方法
CN111158636A (zh) * 2019-12-03 2020-05-15 中国人民解放军战略支援部队信息工程大学 可重构计算结构及乘累加计算处理阵列的路由寻址方法、装置
CN111782581A (zh) * 2020-07-30 2020-10-16 中国电子科技集团公司第十四研究所 一种可重构信号处理运算单元及基于其的重组单元
US11115256B2 (en) 2016-11-30 2021-09-07 Micron Technology, Inc. Wireless devices and systems including examples of mixing input data with coefficient data
US11671291B2 (en) 2019-02-22 2023-06-06 Micron Technology, Inc. Mixing coefficient data specific to a processing mode selection using layers of multiplication/accumulation units for wireless communication

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010083723A1 (zh) * 2009-01-21 2010-07-29 上海芯豪微电子有限公司 可重构数据处理平台
CN102087640B (zh) * 2009-12-08 2013-06-05 中兴通讯股份有限公司 傅里叶变换的实现方法和装置
CN102122275A (zh) * 2010-01-08 2011-07-13 上海芯豪微电子有限公司 一种可配置处理器
WO2011082690A1 (en) * 2010-01-08 2011-07-14 Shanghai Xin Hao Micro Electronics Co. Ltd. Reconfigurable processing system and method
CN101833540A (zh) * 2010-04-07 2010-09-15 华为技术有限公司 信号处理方法和装置
CN101833540B (zh) * 2010-04-07 2012-06-06 华为技术有限公司 信号处理方法和装置
CN102043761A (zh) * 2011-01-04 2011-05-04 东南大学 一种基于可重构技术的傅立叶变换的实现方法
CN103999039B (zh) * 2011-10-27 2018-08-10 英特尔公司 具有带有复数指数非线性函数的指令集的数字处理器
CN103999039A (zh) * 2011-10-27 2014-08-20 Lsi公司 具有带有复数指数非线性函数的指令集的数字处理器
CN103390071A (zh) * 2012-05-07 2013-11-13 北京大学深圳研究生院 一种可重构算子阵列的层次化互连结构
CN103543983A (zh) * 2012-07-11 2014-01-29 世意法(北京)半导体研发有限责任公司 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
CN103543984A (zh) * 2012-07-11 2014-01-29 世意法(北京)半导体研发有限责任公司 用于特殊相关应用的修改型平衡吞吐量数据路径架构
CN103543984B (zh) * 2012-07-11 2016-08-10 世意法(北京)半导体研发有限责任公司 用于特殊相关应用的修改型平衡吞吐量数据路径架构
US9424033B2 (en) 2012-07-11 2016-08-23 Stmicroelectronics (Beijing) R&D Company Ltd. Modified balanced throughput data-path architecture for special correlation applications
CN103543983B (zh) * 2012-07-11 2016-08-24 世意法(北京)半导体研发有限责任公司 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
CN104932992B (zh) * 2015-07-08 2017-10-03 中国电子科技集团公司第五十四研究所 一种带宽粒度可变的微波数字柔性转发方法
CN104932992A (zh) * 2015-07-08 2015-09-23 中国电子科技集团公司第五十四研究所 一种带宽粒度可变的微波数字柔性转发技术的设计方法
CN105206282A (zh) * 2015-09-24 2015-12-30 深圳市冠旭电子有限公司 一种噪音采集方法及装置
CN105206282B (zh) * 2015-09-24 2019-12-13 深圳市冠旭电子股份有限公司 一种噪音采集方法及装置
CN106959936A (zh) * 2016-01-08 2017-07-18 福州瑞芯微电子股份有限公司 一种fft的硬件加速实现装置及方法
US11658687B2 (en) 2016-11-30 2023-05-23 Micron Technology, Inc. Wireless devices and systems including examples of mixing input data with coefficient data
US11695503B2 (en) 2016-11-30 2023-07-04 Micron Technology, Inc. Wireless devices and systems including examples of mixing coefficient data specific to a processing mode selection
CN110024345B (zh) * 2016-11-30 2022-01-25 美光科技公司 包含混合特定于处理模式选择的系数数据的实例的无线装置和***
CN110024345A (zh) * 2016-11-30 2019-07-16 美光科技公司 包含混合特定于处理模式选择的系数数据的实例的无线装置和***
US11115256B2 (en) 2016-11-30 2021-09-07 Micron Technology, Inc. Wireless devices and systems including examples of mixing input data with coefficient data
US11088888B2 (en) 2016-11-30 2021-08-10 Micron Technology, Inc. Wireless devices and systems including examples of mixing coefficient data specific to a processing mode selection
CN106951211B (zh) * 2017-03-27 2019-10-18 南京大学 一种可重构定浮点通用乘法器
CN106951394A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用fft处理器
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN109782661A (zh) * 2019-01-04 2019-05-21 中国科学院声学研究所东海研究站 基于fpga应用于水声定位实现可重配置和多输出的实时处理***及方法
US11671291B2 (en) 2019-02-22 2023-06-06 Micron Technology, Inc. Mixing coefficient data specific to a processing mode selection using layers of multiplication/accumulation units for wireless communication
CN110247872A (zh) * 2019-03-25 2019-09-17 南京南瑞微电子技术有限公司 一种用于电力线载波通信芯片的同步检测方法及装置
CN110247872B (zh) * 2019-03-25 2021-11-23 南京杰思微电子技术有限公司 一种用于电力线载波通信芯片的同步检测方法及装置
CN110674456A (zh) * 2019-09-26 2020-01-10 电子科技大学 一种信号采集***的时频转换方法
CN110674456B (zh) * 2019-09-26 2022-11-22 电子科技大学 一种信号采集***的时频转换方法
CN111158636A (zh) * 2019-12-03 2020-05-15 中国人民解放军战略支援部队信息工程大学 可重构计算结构及乘累加计算处理阵列的路由寻址方法、装置
CN111064912A (zh) * 2019-12-20 2020-04-24 江苏芯盛智能科技有限公司 一种帧格式变换电路与方法
CN111064912B (zh) * 2019-12-20 2022-03-22 江苏芯盛智能科技有限公司 一种帧格式变换电路与方法
CN111782581A (zh) * 2020-07-30 2020-10-16 中国电子科技集团公司第十四研究所 一种可重构信号处理运算单元及基于其的重组单元
CN111782581B (zh) * 2020-07-30 2024-01-12 中国电子科技集团公司第十四研究所 一种可重构信号处理运算单元及基于其的重组单元

Also Published As

Publication number Publication date
CN100594491C (zh) 2010-03-17

Similar Documents

Publication Publication Date Title
CN1900927A (zh) 可重构数字信号处理器
CN110058883B (zh) 一种基于opu的cnn加速方法及***
Nakahara et al. A deep convolutional neural network based on nested residue number system
CN106779060B (zh) 一种适于硬件设计实现的深度卷积神经网络的计算方法
CN109447241B (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN110276450A (zh) 基于多粒度的深度神经网络结构化稀疏***和方法
CN105534546B (zh) 一种基于zynq系列fpga的超声成像方法
CN110413254B (zh) 数据处理器、方法、芯片及电子设备
CN101937424A (zh) 基于fpga实现高速fft处理的方法
CN1226980A (zh) 相关器方法和设备
CN111401554A (zh) 支持多粒度稀疏与多模式量化的卷积神经网络的加速器
CN1020806C (zh) 使用跳跃阵列和变形***树的并行乘法器
CN112101517A (zh) 基于分段线性脉冲神经元网络的fpga实现方法
Wang et al. A well-structured modified Booth multiplier design
CN113283587B (zh) 一种Winograd卷积运算加速方法及加速模块
CN108304925A (zh) 一种池化计算装置及方法
Li et al. Fsa: A fine-grained systolic accelerator for sparse cnns
Li et al. A precision-scalable energy-efficient bit-split-and-combination vector systolic accelerator for NAS-optimized DNNs on edge
WO2023070997A1 (zh) 利用比特级稀疏性的深度学习卷积加速方法及处理器
CN109711542A (zh) 一种支持动态精度的dnn加速器及其实现方法
CN107368459A (zh) 基于任意维数矩阵乘法的可重构计算结构的调度方法
Angizi et al. Processing-in-memory acceleration of mac-based applications using residue number system: A comparative study
CN110825346A (zh) 一种低逻辑复杂度的无符号近似乘法器
CN1735857A (zh) 用于完成乘法运算的方法、***和设备
CN107256342A (zh) 用于电子病历知识约简效能评估的多种群协同熵级联方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20070124

Assignee: China Information & Electronice Development Inc., Ltd., Hefei

Assignor: No.38 Inst., China Electronic Sci. & Tech. Group Co.

Contract record no.: 2013340000054

Denomination of invention: Reconstructable digital signal processor

Granted publication date: 20100317

License type: Exclusive License

Record date: 20130422

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191119

Address after: 5 / F, airborne center, 38 new area, No. 199, Xiangzhang Avenue, hi tech Zone, Hefei City, Anhui Province 230000

Patentee after: Anhui core Century Technology Co., Ltd.

Address before: 230031 Hefei thirty-eighth Research Institute, 9023 mailbox, Anhui, China

Patentee before: No.38 Inst., China Electronic Sci. & Tech. Group Co.