体控制模块;SCLK为移位时钟,它控制A/D与FPGA之间数据串行传输的移位。在与DSP的接口部分中,data_out[15..0]用来输出FPGA运算的结果,与DSP的数据总线挂接在一起,在FPGA内部设置一个三态门,开门信号就是FPGA的片选信号CE。当CE不选通的时候,三态门输出为高阻状态,不会影响DSP的数据总线。在每一个样点间隔的时间内,FPGA运算出相关值的实部和虚部,将它们分别锁存在四个16bit锁存器中,并将与DSP相连的data_ready信号置高电平,表示数据已经准备好。DSP检测到data_ready为高后会进行读操作,用地址总线的高几位产生出片选信号将FPGA选通,通过地址总线的低两位A0、A1来选择四个锁存器的其中一个,依次读取实部和虚部两个32位数的高16位和低16位。FPGA内部会对DSP的读操作计数,确认数据分四次读出后,则将data_ready置低,直到下一次运算完毕后再抬高。
3 仿真和校验
各子模块设计好后,可以用图形方式或文本方式将各个模块连接起来,对顶层设计进行编译。这里选用的是Stratix系列中容量最小的一种:EP1S10F780C7,编译后产生的编译报告如图5所示。
无论是片内逻辑单元、片内RAM还是DSP嵌入块,所选的EP1S10F780C7芯片都还有相当一部分余量。但是,如果是选用其它系列的芯片,没有嵌入式的DSP模块,最后其所占用的片内逻辑单元会远不止这么多。
编译完成后即可进行仿真和校验,这部分可分为三个过程。对于同一块数据,先在Quartus下进行仿真,产生出一系列相关值。然后在MATLAB环境下利用其绘图方便的特性,完全按照FPGA中各模块处理数据的方法,编一段程序对数据进行处理,并画出处理结果的图形,如图6所示。理论上其处理结果应和Quartus的仿真结果完全一样,实际比较得出两者确实完全一样。最后在MATLAB中从理论上运用纯软件的方法编一段程序,对数据进行处理,并画出处理后的相关峰图,如图7所示。
可以比较出这两种图形所显示的相关峰的幅度与相对位置都基本一致。这就说明用FPGA对数据进行处理的结果和理论方法的处理结果是吻合的,这也就验证了FPAG设计的正确性。由于FPGA所进行的只是初相关,所以图7显示的相关峰幅度不大,数据送到DSP后要进行二次相关等处理,然后用于信号的捕获和同步。
本文阐述了短波扩频通信系统中用于信号同步捕获的数字相关器的FPGA实现,并对所选的Stratix系列器件进行了介绍。在384kbps的采样速率下,由外部提供40MHz的时钟,此相关器工作性能稳定,运算结果正确,能很好地配合DSP工作,完成对样点数据的希尔波特变换和相关处理。 |