This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 关于:通过FMC-ADC适配器连接ADS5400和Virtex 6

Guru**** 1828310 points
Other Parts Discussed in Thread: ADS5294
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/581909/re-interfacing-ads5400-with-virtex-6-via-a-fmc-adc-adapter

在“线程:ADS5294”中讨论的其它部件

大家好,

我正在使用ADS5294 EVM作为我的ADC,使用Zynq (ZC-7020)作为FPGA进行14位高速串行LVDS ADC数据(DDR)捕获。 让我向你们解释一下我的要求和问题。

我开发了硬件和软件部件,能够通过ADC发送和接收简单的位模式,并在FPGA上接收。 主要是移动版本,即如果我发送了11111110000000,我将收到00111111100000或此版本的任何其他版本。 但当我发送信号时,无论是移位信号还是正确信号,我都无法正确接收。 就像如果我发送斜面(在ADC板内部生成),接收信号的整体形状就像斜面,但有些位会丢失或跳过。  

我遵循的方案是设计用于捕获的硬件。  

我正在按照本指南进行设计:  

我已经制作了精确的数字3-1。然后我将DDR输出组合成14位的样本。  

现在我面临的问题是:

  • 本指南第10页图3-1显示在IDEAY之后应使用BUFIO将位时钟转发给IDDR。但当我使用BUFIO时,在路由过程中收到错误。  错误:"[DRC 23-20]规则违规(RTSTAT-1)未路由网络- 1个网络未路由。 有问题的总线和/或网络为DESIGIND_1_I/iddr2_IP_0/inst/cBufferedIO。"   是否有必要在此处使用BUFIO?
  • 以及没有正确接收斜坡的问题是什么。

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    高速数据转换器论坛中不支持ADS5294,因为医疗组在其论坛中支持该设备-即使该设备的最终应用程序可能并不真正是医疗应用程序。  他们是了解设备的人。   我将把这一部分拆分,并将其移至该论坛。

    我想说,您应该使用FPGA供应商推荐的任何缓冲器来为IDDR单元计时。   FPGA提供了IDDR单元,专门用于锁定上升和下降边缘上的数据, 此外,它们还在每个输入上提供IDELAY单元格,以便能够根据需要延迟时钟或数据,以满足IDDR单元的设置和保持时间。   无论FPGA供应商建议采用何种方法将时钟连接到IDDR单元,我都要这样做。   

    现在,图3-1简单地显示了将数据锁定到FPGA的最基本电路。  在具有并行数据总线的ADC中,IDDR单元中的数据是样本数据,而时钟的缓冲版本是FPGA结构中的样本时钟,用于传输数据。   对于具有序列化数据的ADC (如您正在查看的设备),在IDDR单元格之后,您还没有完整的样本-只有序列化样本的两位。   此时,您仍必须保持锁定更多数据,直到您获得整个样本,并有办法将该串行数据流划分为整个样本流。  图2-1就是这样一种机制,但使用帧时钟来锁定整个样本很难实现正确的计时,如图所示。  其他人可能使用ISERDES元素而不是IDDR。  为了使反序列化数据锁定到整个样本中,我所做的操作就像在附加的草图中一样-我使用了帧时钟的锁存副本,将每个帧时钟通过反序列化器传输的数据多路复用到样本寄存器中一次。   但之后,您仍然必须将帧时钟缓冲到FPGA结构中,以便使用 FPGA工具允许您使用的任何缓冲器(可能不是bufio)来成为您的样品时钟。  您必须确保您的设计将使用FPGA供应商的静态计时分析器工具关闭计时,以满足您希望运行的采样率。

    此致,

    Richard P.