您好!
我想问一下 ADS4245 ADC LVDS DDR (双倍数据速率)输出的时序。
在数据表中、给出了160MSPS 的 tsu 和 TH 值。
给定的 tsu_min = 1.5ns、th_min=0.3ns 值对于160MHz 输入时钟非常有意义。 (时钟周期的一半为3.25ns)
在此频率下、在 FPGA 输入端正确捕获 ADC 数据必须有点复杂。
正如我所知、为了正确捕获 ADC 数据、我们必须考虑一些设计架构、如下面所示:
**数据路径上的 IBUFDS + IDELAY + IDDR primitevs。
** IBUFDS + IDELAY +(基于 BUFIO/BUFR/BUFG 和 MMCM 的时钟架构的正确组合)
**选择正确的时钟来馈入 IDDR 的时钟输入
**更改数据 IDELAY 或时钟 IDELAY 基元(静态或动态)的延迟值,以便在数据眼图上的确切安全点捕获数据
**在 HDL 设计的限制文件中正确地限制 tsu 和 th 值
(SET_INPUT_DELAY 限制可在 Xilinx Vivado 中用于此目的。
和 SET_INPUT_DELAY 值取决于 ADC 的时钟周期和 tsu/th 值)
**可能使用同步 FIFO 将 ADC 数据馈送到设计的用户逻辑部分
我的主要问题是关于较低的采样频率。
我们使用10MHz 采样频率的 ADS4245 ADC。 数据表中没有该频率的确切值。
在数据表中、有一个较低频率的采样时序值部分、 在该部分中、给定的值如下所示:
65MHz:Tsu_min = 5.9ns、th_min = 0.35ns
80MHz: Tsu_min = 4.5ns、th_min = 0.35ns
125MHz: Tsu_min = 2.3ns、th_min = 0.35ns
当 tsu 值变得更长时、为什么 TH 值是相同的? 这是数据表勘误表还是所有频率的值都相同?
在10MHz 采样频率下、DDR 数据与输出时钟的关系如何?
我们是否仍要关注较短的 tsu 和较短的 TH 值?
乍一看、我决定不使用分片式设计、直接从 IDDR 基元中捕获数据。
IDDR 的时钟输入通过 位于 FPGA 中心的 BUFG 提供。 BUFG 的输入是 ADC 的输出时钟。
为了在 正确的位置调整采样的偶数/奇数部分、IDDR 被设置为同边沿流水线模式。
我认为时钟周期的一半是50ns。 我将输入延迟值设置为大约15-20ns。
在该配置下、它似乎可以正常工作。 在 Vivado 的 ILA 调试内核中分析捕获的 ADC 数据时、似乎是正确的。
当我 决定对设计进行审查时、我会考虑更改或不更改设计。
我是否需要进行复杂的设计、因为即使在使用10MSPS 应用时、也会给出更短的 tsu 和 th 值?
最后、10MHz 输入时钟的确切 tsu/th 值对我来说是可以的、我可以确定设计架构。
如果10MHz 输入时钟的 tsu 和 TH 值仍然较短、则有效数据位置前后的数据会发生什么情况。
(我认为数据必须保持其最后的价值、直到变化时间到来。)
如果确切的 tsu/th 值不适用于10MHz 输入时钟、有人可以建议使用哪种设计架构来实现10MHz 采样频率?
任何建议和意见对我来说都是可以的。
谢谢。
穆斯塔法。