一种基于fpga的高速任意波形发生器的制作方法

文档序号:6563363阅读:239来源:国知局
专利名称:一种基于fpga的高速任意波形发生器的制作方法
技术领域
本发明涉及一种波形发生器,特指是一种基于FPGA的高速任意波形发生器。
背景技术
基于DDS(Direct Digital Synthesis)技术的任意波形发生器用高速存储器作为查找表,通过高速DAC合成出存储在存储器内的波形。所以它不仅能产生正弦、余弦、方波、三角波和锯齿波等常见波形,而且还可以利用各种编辑手段,产生传统函数发生器所不能产生的真正意义上的任意波形。
虽然DDS系统的结构有很多种,但其基本的电路原理可用图1表示。
DDS技术是建立在采样定理的基础上的,它首先对需要产生的波形进行采样,将采样值数字化后存入存储器作为查找表,然后再通过查表将数据读出,经过DAC转换器转换成模拟量,把存入的波形重新合成出来。
图1中的频率字(FSW-Frequency Setting Word)实际就是相位增量值(二进制编码),作为相位累加器的累加值。相位累加器在每一个参考时钟脉冲输入时,把频率字累加一次,其输出相应地增加一个步长的相位增量。由于相位累加器的输出连接在波形存储器的地址线上,因此其输出的改变就相当于进行查表。这样就可把存储在波形存储器内的波形抽样值经查找表查出。波形存储器的输出送到DAC转换器,经DAC转换器转换成模拟量后输出。
在系统时钟脉冲的作用下,相位累加器不停地累加,也即不停地查表,把波形数据送到DAC转换器转换成模拟量输出,从而把波形重新合成出来。一般在DAC后还会添加模拟滤波器,通过模拟滤波器则进一步平滑DAC转换器输出的近似正弦波的锯齿阶梯波,同时衰减不必要的杂散信号。
由于相位累加器字长的限制,相位累加器累加到一定值后,其输出将会溢出,这样波形存储器的地址就会循环一次,即意味着输出波形循环一周。故改变频率字即相位增量,就可以改变相位累加器的溢出时间,在时钟频率不变的条件下就可以改变输出频率。
例1,假设在波形存储器内存储了1024个波形数据,系统的时钟频率为1.024MHz,相位累加器的位宽N为10,频率字(FSW)的值D为1。在时钟脉冲的作用下,相位累加器累加1024个时钟周期后溢出,即经过1024个系统时钟周期,输出波形循环一周,系统的输出频率f0=1.024×1061024=1KHz]]>例2,若将D值改变为2,则相位累加器在512个系统时钟周期后溢出,系统的输出频率就将变为f0=1.024×106512=1KHz]]>
由此,我们可推出DDS系统的输出频率f0与系统时钟频率fs之间的关系为f0=D2Nfs]]>由上式可以看出,为了提高系统的输出频率f0就需要提高系统时钟频率fs。随着科技的发展,DAC的工作频率已经可以超过1GHz。但是数字电路的工作频率却依然只能达到几百MHz,也就是说数据相位生成电路和波形存储器的工作频率远远达不到DAC的工作频率。如何更快的为DAC提供数据则成为提高整个系统时钟频率的关键。

发明内容
本发明提供了一种基于FPGA的高速任意波形发生器,整个系统的工作时钟可以达到1GHz以上。
为了实现提高整个系统的工作频率,就需要提高数字电路的工作频率。对于大多数利用FPGA来实现数字电路的DDS系统来说,FPGA的工作频率最多也只能达到几百MHz,这远远低于DAC的工作频率,不能满足要求。
本发明的关键就是采用特有的并行相位生成电路,可以在一个时钟周期内同时生成多个数据的相位,然后同时查表多个波形存储器获得多个数据。在传统的DDS系统中,相位生成电路在第一个时钟生成第一个数据相位,在第二个时钟生成第二个数据相位。而本发明的并行相位生成电路不仅能够在第一个时钟内将第一个数据相位生成,还可以预先将第二个、第三个、甚至第N个数据相位同时生成。这些在一个时钟内同时生成的数据相位,同时查表N个波形存储器,则可以同时获得N个数据。由于在一个时钟内可以获得原来N个时钟获得的数据,所以数据相位生成电路和波形存储器的工作频率,可以降低为原来的N分之一,即FPGA的工作频率可以降低N倍。也就是说通过并行的产生数据相位,在相同的FPAG工作频率下,其提供的数据N倍其工作频率,从而可以满足DAC的工作频率。
同时获得N个数据后,利用FPGA的并串转换电路,则可以将获得的N个数据依次串行输出到DAC。举例来说,如果同时获得4个数据,则并串转换电路就以4倍频的速率将数据依次串行输出到DAC。由于FPGA的并串转换电路现在已经可以工作在1GHz以上,甚至更高,所以完全可以满足DAC的工作频率。
并行相位生成电路产生的数据相位个数N与FPGA的工作频率、DAC的工作频率关系如下数据相位个数N=DAC的工作频率/FPGA的工作频率其中上式中FPGA的工作频率是指FPGA内部的工作频率,即并行数据相位生成电路和波形存储器的工作频率。而FPGA的并串转换电路的工作频率则和DAC的工作频率一致。
综上所述,利用本发明的并行相位生成电路,完全可以使FPGA的内部电路工作在200MHz以下,甚至更低。而FPGA的并串转换电路和DAC则同时工作在1GHz以上。这样就完全解决了DAC和FPGA工作频率不匹配的问题。
同时本发明还具有插值电路,通过插值也可以进一步的降低FPGA的工作时钟。在插值电路后,本发明还包括有数字滤波电路,通过由CPU配置相关的系数寄存器,可以灵活的改变滤波电路的截止频率,进一步提高输出信号的频谱纯度。


图1为现有的DDS信号源结构和输出波形的示意图。
图2为本发明的结构框图。
图3为并行数据相位生成电路和相应波形存储器的结构示意图。
具体实施例方式
本发明并不局限于下面所述或是图示的结构和实施细节,本发明还可以有其他的具体实施例。
图2给出来了本发明的结构框图,包括CPU、FPGA和DAC等。其中CPU可以是ATMEL公司的AT91RM9200或是其他。而FPGA可以是altera公司的stratixII系列的FPGA,也可以是xilinx公司的FPGA,下面所述以altera公司的EP2S30为例。图2中的DAC可以是美信公司的高速DAC,也可以是AD公司的DAC,如AD9736。
图2中的CPU主要是用来配置FPGA中的频率字、波形存储器中的数据和数字滤波电路的参数等。通过修改FPGA中的频率字寄存器,系统可以获得任意频率的输出,而通过修改波形存储器中的数据,系统则可以获得任意波形的输出。
图2中的FPGA主要由并行数据相位生成电路、波形存储器、插值电路、滤波电路和并串转换电路等五部分组成。其中并行的数据相位生成电路需要并行多少路,由DAC的工作频率和FPGA的工作频率决定。一般而言,为了使FPGA可以工作在200MHz以下,并行的路数N大多可以取4~8路。
其中并行的数据相位生成电路结构如图3所示。第一路频率字寄存器的值为D,第二路频率字寄存器的值为第一路值的2倍即2D,第三路频率字寄存器的值为第一路的3倍即3D,则第n路频率字寄存器的值为第一路的n倍即nD。第一路相位生成电路的输出,即相位寄存器的值为最后一路相位寄存器的值和第一路频率字寄存器D的相加值,第二路相位生成电路的输出为最后一路相位寄存器的值和第二路频率字寄存器2D的相加值,依此类推。在最后一路,其输出为本路频率字寄存器的累加值。
图3中的相位寄存器的输出即作为波形数据存储器的地址,当寄存器的输出变化时,波形存储器就会输出相应的数据。
在EP2S30中包含有144个4Kbit的嵌入式RAM块,完全可以根据需要将其组合成4~8个波形存储器。通过CPU则可以将任意波形的数据写入这些波形存储器,然后再查表将其中的数据读出。
对于FPGA中的波形存储器可以将其设计成为双口RAM。这样对于一个波形存储器而言就会有两路地址和数据输出,从而可以同时将两路数据相位寄存器作为地址,接在同一个波形存储器,减少所用的RAM块。
通过查表获得的并行数据可以根据CPU的配置,被送入插值电路。通过插值则可以进一步的降低FPGA的工作频率。插值后的数据可以根据CPU的配置,被送入滤波电路,对数据进行滤波,从而可以获得更高的频谱纯度。
对于插值和滤波电路,可以根据需要由选择器将其旁路,从而直接把并行数据送入到并串转换电路,由并串转换电路将数据依次串行输出,送入DAC。
对于EP2S30而言,利用QUARTUS设计软件中megafunction函数的ALTLVDS生成相应的并串转换电路,其最多可以将10路并行数据变为串行数据依次输出,最大的工作频率则可以达到1.3GHz。
本发明的高速任意波形发生器,经过实测其FPGA内部电路的工作频率为150MHz,并行的相位生成电路并行8路,DAC的工作频率为1.2GHz,并且通过CPU改变波形存储器中数据从而可以产生任意波形。
权利要求
1.一种基于FPGA的高速任意波形发生器,其特征在于包括CPU、并行的数据相位生成电路,波形存储部分、插值与滤波电路、并串转换电路和DAC等部分。其中并行的数据相位生成电路,可以同时生成多个数据的相位;由多个数据相位通过查表波形存储器,可以同时获得多个数据;插值和滤波电路,可以对输出的数据进行插值和数字滤波;并串转换电路可以将并行的多个数据串行依次输出到DAC;DAC则将数据转变成模拟信号。
2.根据权利要求1所述的基于FPGA的高速任意波形发生器,其特征在于并行的数据相位生成电路;所述的并行相位生成电路包含有多路相位生成电路,每路相位生成电路包括一个加法器和一个频率字寄存器。其中第一路频率字寄存器的值为D,第二路频率字寄存器的值为2D,第三路频率字寄存器的值为3D,则第n路频率字寄存器的值为nD。第一路相位生成电路的输出为最后一路相位和第一路频率字寄存器D的相加值,第二路的输出为最后一路相位和第二路频率字寄存器2D的相加值,依此类推。在最后一路,其输出为本路频率字寄存器的累加值。
3.根据权利要求1所述的基于FPGA的高速任意波形发生器,其特征在于对应于多个并行的数据相位生成电路存在多个波形数据存储器。并行的数据相位生成电路所生成的每路数据相位,都可以通过查表波形数据存储器获得数据,从而在一个时钟内系统可以同时获得多个数据。
4.根据权利要求1所述的基于FPGA的高速任意波形发生器,其特征在于利用FPGA具有的并串转换电路将系统生成的多路数据串行的依次输出到DAC。
全文摘要
本发明涉及一种基于FPGA的高速任意波形发生器,采用DDS技术,数据采样率可以超过1GHz。该系统主要包括CPU、并行数据相位生成部分、波形存储部分、插值与滤波部分、并串转换电路和DAC等组成。其中并行数据相位生成采用并行处理,可以在一个时钟内同时生成多个数据的相位,获得多个数据,然后再利用FPGA中的并串转换电路将数据依次输出到DAC,由DAC将数据转换成模拟量。本发明由于采用并行的数据相位生成电路,在一个时钟内能同时生成多个数据,从而突破了FPGA工作频率的限制,可以向DAC提供超过1GHz以上的数据采样率。
文档编号G06F1/02GK101017383SQ20061015445
公开日2007年8月15日 申请日期2006年11月1日 优先权日2006年11月1日
发明者王文华 申请人:王文华
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1