基于FPGA+DSP导引头信号处理中FPGA设计的关键技术
果一个足够长的信号毛刺正好满足建立一保持时问的要求,则同步器的第一级触发器会将其放行,给新时钟域的后续逻辑送出一个虚假的信号。
图3同步器示意
一个经同步后的信号在两个时钟沿以后就成为新时钟域中的有效信号。信号的延迟是新时钟域中的一到两个时钟周期。一种粗略的估算方法是同步器电路在新时钟域中造成两个时钟周期的延迟,设计者需要考虑同步延迟将对跨时钟域的信号时序造成的影响。
2)对于跨越时钟域的数据总线,要通过FIFO或RAM达到同步的目的。
数据在时钟域之间的传递是多个随机变化的控制信号在时钟域之间传递的一种实例。这种情况下,用同步器米处理同步问题往往不能收到满意的效果,因为多位数据的变化将会使同步器的采样错误率大大增加。常用的数据同步方法有两种:一种是用握手信号;另一种是用FIFO,一个时钟存数据。另一个时钟取数据。
时钟域之间的数据传输用得最多的是FIFO,采用Xilinx自带的FIFO核来实现比较简单方便,图4足Xilinx提供的FIFO核的一个简单的示意图.wclk为写时钟,rclk为读时钟,FIFO深度通过读写使能wen和ren控制。
图4 FIFO核示意图
3.2、FPGA与DSP数据交互
实际应用过程中,DSP和FPGA程序设计往往是由不同的设计人员分工完成,在最后系统联调时,这两者之间的数据传输经常占用大量的调试时间,成为约束工程进度的关键凶素。因此,DSP与FPGA间接口和传输方式的选择与设计,是系统设计中必须要考惑的问题。
导引头信号处理的一个特点是,FPGA要传输给DSP的数据比较多,需要传递幅度信息,和差支路数据等十几组数据.每组数据长度在512~2K,而且读取速度要求也比较高,一般要求百兆以上的读取频率。经过工程实践表明,采用通过EDMA通道同步读取FIFO的方式实现通信是非常有效的方法。但是接口处的FIFO比较多,而且读取速度有比较高,这势必导致FPGA内部对接口处资源的竞争,甚至会导致时序的不满足。在实际工程调试中表现在DSP接收到的数据乱序,周期循环甚至乱码。
要解决好FPGA和DSP的数据交互问题,要注意以下两个方面。
3.2.1 三态门的设计
在本设计中,DSP和FPGA的互连采用了总线连接的方式,数据交互是通过一个32位的双向数据总线来完成的,而要实现双向总线,就需要使用FPGA构造三态总线了,使用三态缓冲器实现高、低电平和高阻三个状态。
图5双向数据总线的三态门设计
本设计当中,FPGA给DSP发中断信号,DSP在中断信号到来时,根据系统要求,将不同的控制字写入数据总线,然后通过数据总线从FPGA中不同的FIFO中读取数据,这一切都通过DSP在地址线上给出不同的地址来完成。为了合理分配总线的使用,设计当中使用这样的策略:利用片选信号aace3,地址aaea[9:0]作为三态缓冲器的控制信号,由于DSP对FPGA的读写地址都不同,当片选信号aace3有效时,FPGA根据地址来确定凑写方式以及读写那些信息,否则置为高阻态,这样就避免了可能产生的的总线阻塞现象,使DSP和FPGA之间的数据交互能够顺利进行,示意图如图5所示。
3.2.2 加有效的时序约束
由于接口FIFO比较多,为了合理分配FPGA内部接口处的资源,满足系统的时序要求,需要加必要的时序约束。因为本设计采用Xilinx公司芯片,所以需要加偏移约束2。
偏置约束可以优化以下时延路径:从输入管脚到同步元件偏置输入;从同步元件到输出管脚偏置输出。为了确保芯片数据采样可靠和下级芯片之间正确交换数据,需要约束外部时钟和数据输入输出引脚问的时序关系。偏置约束的内容告诉综合器,布线器输入数据到达的时刻或者输出数据稳定的时刻,从而保证与下一级电路的时序关系。更多关于约束的内容请参阅文献。
4 结束语
FPGA+DSP是同前导引头信号处理器中运用的最广泛的系统组成形式,对速度以及灵活性的要求都能够很好的满足,文中所涉及到的跨时钟域设计以及数据接口方面的问题是这样的系统中FPGA设计存在的关键技术,文中提出了详实的解决方法,而且工程应用已经证明了其有效性。
本文作者创新点:依据工程实践经验,总结了在FPGA+DSP结构的雷达导引头信号处理中FPGA的关键问题,并提出了详细的解决方案,并得到了工程验证。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)