本发明涉及一种互相关运算结构,尤其涉及一种基于比较器和fpga的的多通道高速实时互相关运算装置。
背景技术:
在许多微波毫米波测量系统中,相关器是其核心器件,相关器的数目与需要进行两两互相关运算的模拟通道个数的平方成正比。对于大带宽的微波毫米波多通道实时干涉测量系统,相关器数量庞大,采用通用高阶量化模数转换器的相关运算结构在实现过程中面临成本、功耗和体积的难题。因此,低成本、小功耗和高集成度的实时互相关运算结构,对于微波毫米波干涉测量系统具有重要意义。
技术实现要素:
本发明技术解决问题:克服现有技术的不足,提供一种基于比较器和fpga的多通道高速实时互相关运算装置,解决了fpga内部逻辑工作时钟频率低于采样时钟频率的问题,降低了采样电路的成本、体积和功耗,同时提高了多通道同步数据接收的速率。
本发明技术解决方案:一种基于比较器和fpga的实时相关运算装置,其特征在于包括:使用比较器进行低阶量化采样,使用fpga进行实时相关运算处理。时钟电路生成相对延迟可调的同步采样时钟与数据接收时钟,同步采样时钟提供给比较器,数据接收时钟提供给fpga。fpga通过对接收到的高速串行数据进行实时延迟校正,提高多通道同步数据接收的速率。fpga将接收到的高速串行数据转换为并行数据进行互相关运算,解决fpga内部逻辑工作时钟频率低于采样时钟频率的问题。相关运算的累加器使用两级累加结构,降低逻辑资源的消耗量。并行数据相关运算的累加器通过截断部分低有效位,降低累加器的工作时钟频率。
本发明与现有技术相比的优点在于:
(1)本发明使用比较器对输入模拟信号进行低阶量化,由于比较器结构简单,其成本、功耗和体积远低于普通高阶量化模数转换器,并能够满足采样速率的的要求。
(2)本发明在fpga芯片中对接收到的高速串行数据进行实时延迟校正,提高多通道同步数据接收的速率。
(3)本发明在fpga芯片中将接收到的高速串行数据转换为并行数据进行互相关运算,解决了fpga内部逻辑工作时钟频率低于采样时钟频率的问题。
附图说明
图1为本发明装置的基本框图;
图2为时钟电路的基本结构;
图3为边沿锁存比较器的基本结构;
图4为串并转换与数据延迟校正的原理框图;
图5参考数据比原始数据延迟时间长半个比特周期时的延时调整方法;
图6参考数据比原始数据延迟时间短半个比特周期时的延时调整方法;
图7为使用并行数据进行相关运算的原理框图;
图8为二阶量化相关运算真值表;
图9为三阶量化相关运算真值表;
图10为两级累加运算的结构框图;
图11为低位截断的累加器结构。
具体实施方式
下面结合附图进一步说明本发明。
如图1所示,本发明的组成结构,使用比较器阵列进行低阶量化采样,使用fpga进行实时相关运算处理。时钟电路生成同步采样时钟与数据接收时钟,采样时钟提供给比较器,数据接收时钟提供给fpga。fpga通过对接收到的高速串行数据进行实时延迟校正,提高多通道同步数据接收的速率。fpga将接收到的高速串行数据转换为并行数据进行互相关运算,解决fpga内部逻辑工作时钟频率低于采样时钟频率的问题。
参见图2,在一个大规模系统中,单个时钟生成器芯片一般没有足够多的输出来驱动所有的模数转换器和处理器芯片,本发明采用多级结构的时钟树来同步驱动各个器件。
参见图3,比较器采用边沿锁存结构,数据输出具有两级锁存结构。比较器的输出将锁定在采样时钟的上升沿时刻的输入信号状态并保持不变,直到下一个采样时钟上升沿到来更新其输出。边沿锁存比较器可以在整个时钟周期内保持稳定。
参见图4,输入fpga芯片的数据接收时钟由外部时钟电路产生,该时钟直接作为串行转并行模块中的串行数据接收时钟,在fpga芯片内对其分频得到的低速时钟用于驱动与并行数据相关的逻辑。fpga芯片的数据接收时钟与比较器的采样时钟的相位关系(相对时延)将在下文具体讨论。输入fpga芯片的高速串行数据通过串行转并行模块转换为低速并行数据,并行数据通过异步fifo(first-in/first-out)传递给内部逻辑以避免增加内部逻辑的时序复杂度。为了尽可能提高串行转并行模块接收串行数据的速率,在串行数据输入串行转并行模块前对其进行时间延迟,通过调整延迟时间的大小使串行数据接收时钟在最佳位置,即每一个比特周期的中点,进行采样。本发明采用的延时调整方法需要一路额外的数据作为参考,该路数据的延迟时间与原始数据相差半个比特周期,其仅用于调整数据延迟而不传递到内部运算逻辑。为方便以下描述,将最终传递到内部运算逻辑的串行数据称为原始数据,将只用于延时调整的串行数据称为参考数据。由于延时调整模块使用fpga芯片的内部逻辑资源来实现,其最高工作时钟频率低于高速采样时钟频率,只能使用并行数据进行延时调整,参考数据也必须进行串行转并行操作。原始数据与参考数据的串行转并行模块使用相同的时钟配置。
参见图5和图6,延时调整模块基于二进制鉴相器的原理来判断串行数据接收时钟在原始数据比特周期中的采样点相对于比特周期中点的位置,通过增加或减少输入参考数据的延迟时间使采样点不断向比特周期的中点靠近,并最终稳定在比特周期的中点。当参考数据比原始数据的延迟时间长半个比特周期时,在一次数据发生变化后,若原始数据与参考数据的采样结果相同,则数据接收时钟在原始数据的采样点位于后半比特周期,应当增加原始数据的延迟时间,如图5中的(a)所示;若原始数据与参考数据的采样结果不同,则数据接收时钟在原始数据的采样点位于前半比特周期,应当减少原始数据的延迟时间,如图5中的(b)所示。当参考数据比原始数据的延迟时间短半个比特周期时,在一次数据发生变化后,若原始数据与参考数据的采样结果相同,则数据接收时钟在原始数据的采样点位于前半比特周期,应当减少原始数据的延迟时间,如图6中的(a)所示;若原始数据与参考数据的采样结果不同,则数据接收时钟在原始数据的采样点位于后半比特周期,应当增加原始数据的延迟时间,如图6中的(b)所示。上述延时调整方法需要输入的数据存在动态变化,如果输入数据一直为0或者一直为1,则延迟时间会保持初始值不变。由于实际应用中延迟调整的分辨率不可能做到无穷小,最终数据接收时钟在的采样点不一定能够准确落在比特周期的中点,而是会在比特周期的中点左右摆动,处于一个动态平衡状态。
参见图7,使用并行数据进行相关运算时,首先对并行数据分别进行相乘运算,然后将相乘结果相加,最后对加法器输出结果进行累加。
参见图8,对于二阶量化乘法运算,由于相乘结果只含有“0”和“1”,其累加运算可以使用输入位宽为1的单向累加器实现。
参见图9,对于三阶量化乘法运算,乘法运算的输入数据采用三阶量化结果的原始二进制编码方式,不需要额外的编码器对量化结果进行编码。乘法运算的输出结果采用二进制的补码形式,其累加运算可以采用输入位宽为2的单向累加器实现。
参见图10,累加器采用两级累加结构来降低累加运算的逻辑资源使用量。设输入数据位宽为n0,在该两级累加结构中,第一级累加器用于完成短点数累加运算,输出位宽为n1,当达到最大累加次数2n1后,将累加结果进行锁存,然后第一级累加器清零,开始新的累加周期;第二级累加器读取第一级累加器的锁存结果,通过对第一级累加结果继续进行累加运算来获得更长的积分时间。由于第一级累加器达到最大累加次数后才会更新一次锁存结果,在一个积分周期内所需执行的第二级累加运算次数远小于第一级累加运算次数,因此多个第一级累加器可以共用一个第二级累加器。为了实现第二级累加器的复用,使用一块双端口随机存取存储器(randomaccessmemory,ram)作为第二级累加器的累加结果的缓存器。第二级累加器工作时,由地址生成器生成第一级累加器的编号及对应的ram地址,在首次读取第一级累加器的锁存结果时将其写入ram,之后每次读取第一级累加器的锁存结果时,将双端口ram当前存储的结果通过一个端口读取出来,并与对应的第一级累加器锁存结果相加,最后将相加结果写回ram。当一个积分周期结束后,相关运算结果从双端口ram的另一个端口中读出。由于双端口ram需要参与整个运算过程,导致没有足够时间读取双端口ram中的相关运算结果。为了解决这个问题,双端口ram采用了乒乓结构,其内部存储区域等分为两部分,这两部分存储区域轮流处于数据运算状态和数据读取状态,系统可以在进行相关运算的同时读取上一个积分周期的相关运算结果。当m个第一级累加器共用一个第二级累加器时,单个第二级累加器需要的双端口ram的深度为2m。
参见图11,当图10中的两级累加结构的工作时钟不能达到要求的频率时,可以将第一级累加器进行拆分为两个串联的累加器。第一个累加器的输出位宽为n11,第二个累加器的输出位宽为n12,且n11+n12=n1。第一个累加器只将其最高位的进位输出作为第二个累加器的输入,第二个累加器退化为一个计数器,为方便下文描述,将第一个累加器称为进位输出累加器,将第二个累加器称为计数器。进位输出累加器的进位输出的更新时间为2n11-n0×t1,因此计数器的工作时钟周期可以增加至2n11-n0×t1,即计数器的工作时钟频率可以降至进位输出累加器的1/2n11-n0,相应的后续结构的工作时钟频率也按比例降低。该结构降低了fpga芯片中高速时钟区域的面积,因此有助于提升高密度累加器阵列的工作频率。需要注意的是,此时计数器相当于以2n11为单位进行计数,其输出结果需要乘以2n11才是原来的结果,而且最终的累加结果会与原来的结果存在误差,该误差最大值为(2n11-1)。由于通常满足2n11<<2n2,该误差可以忽略。
总之,本发明使用比较器对模拟输入信号进行高速低阶量化采样,相比于通用高阶量化模数转换器,降低了采样电路的成本、体积和功耗;fpga通过对接收到的高速串行数据进行实时延迟校正,提高了多通道同步数据接收的速率;同时,fpga将接收到的高速串行数据转换为并行数据进行互相关运算,解决了fpga内部逻辑工作时钟频率低于采样时钟频率的问题。由于本发明使用fpga作为运算处理器,具有较强的可重构性,可广泛应用于各种微波毫米波测量系统中。
上面结合附图对本发明的具体实施方式进行了描述,主要阐述了一种基于比较器和fpga的多通道高速实时互相关结构的设计思路和设计原理,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。