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.

[参考译文] DAC3161:DAC3161内部 FIFO 所需的指导

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/611844/dac3161-guidance-needed-on-internal-fifo-of-the-dac3161

器件型号:DAC3161
主题中讨论的其他器件:LMK01000

你好

我的客户设计要求 DAC3161的输出与其他信号严格时间同步。 DAC 直接连接到生成所有其他时间关键型信号的 FPGA。 这两款器件均由同一时钟驱动器(LMK01000)提供500MHz 时钟。 他们希望避免使用 DAC FIFO、但数据表中的状态

注意:当 FIFO 被旁路时、DACCCLK 和 DATACLK 必须被绕过

对齐、否则可能会出现时序错误;事实并非如此

建议用于实际应用。

还有一些混合基准可作为 LVDS 或 LVPECL 进行对齐和同步。 FPGA 具有 LVDS 驱动器、但不具有 LVPECL。 以下是他们的问题

绕过 FIFO 时的时序问题/建议是什么

2.您能否给出一些示例时序波形以获得使用 FIFO 的最佳方式

3.符合驱动信号电平以进行对齐和同步的任何建议

我有此部分的客户模块、请向我发送电子邮件、我将直接发送给您。 非常感谢

Faizul Bacchus

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

    您好!

    当我询问设计团队关于绕过 FIFO 所需的时序时、我被告知此模式没有特性、因此我没有时序数据来支持此运行模式。  这是可能的、但不建议这样做。  或至少特性数据不支持。

    FIFO 用于将数字数据时钟从 DACCLK 去耦、以便使数字采样总线不必具有与 DACCLK 相关的任何特定相位要求。   然后、DACCLK 可以是来自干净时钟源的干净、低抖动、大摆幅时钟、而 DATACLK 可以只是来自 FPGA 的数字信号。   但是、FIFO 的存在会导致通过 FIFO 的延迟出现一些不确定 因素、这正是您的客户需要避免的。   可以通过一些方法来解决这一问题。

    有关处理 DAC 时钟和 FIFO  的非常全面的文档,请参见文档 www.ti.com/.../slaa584.pdf。  这是一个不同的器件型号、但 FIFO 的处理基本相同。  请记住、某些器件将调用信号来复位 FIFO 的写入指针 SYNC 或 ISTROBE (用于输入选通)。  某些器件将调用信号来复位 FIFO 的输出侧 ALIGN 或 OSTROBE。   不过、这些是相同的信号。

    复位 FIFO 的最简单方法是使用 SYNC 输入作为信号来复位 FIFO 的两侧。   SYNC 将复位进入 FIFO 的指针、然后还将来自 FIFO 的指针复位、以便在 FIFO 中滞后4个样本。  SYNC 信号必须满足相对于 DATACLK 的设置和保持时间、因此 FIFO 写入侧的复位是确定性的、 但是、与 DACCLK 相关的同一同步输入的时序未知、因此 FIFO 读取侧的复位会有一个或多个周期的可变性。  对于使用单个 DAC 器 件的许多应用来说、这是很好的、但对于要保持彼此同步的一系列 DAC 来说、这是不好的。    对于此应用、还将使用对齐信号。   系统中的所有 DAC 都将获得与 DATACLK 相关的相同同步输入、满足设置和保持时间要求、因此所有 DAC 同时复位 FIFO 的写入侧。   系统中的所有 DAC 都将获得与 DACCLK 相关的相同的对齐输入、从而满足设置和保持时间要求、以便所有 DAC 同时复位 FIFO 的读取侧。  这样、通过系统中所有 DAC 的延迟可以相同。

    当使用对齐信号时、生成对齐信号的一种常见方法是让时钟器件(例如我们的 LMK 系列时钟器件之一)将 DACCLK 驱动到器件、并使用8、16或24的时钟分频器驱动对齐信号。    如果信号的周期是8个样本的倍数、则可以在对齐时使用重复信号。  后续的对齐脉冲将每次重新设置 FIFO、但由于信号的周期为8、因此不管怎样、它都会将 FIFO 重置为已经具有的指针位置。    因此、如果驱动 DACCLK 的时钟芯片也可以驱动适当的对齐信号、那么我们可以控制对齐的时序。    如果驱动 DATACLK 的 FPGA 也驱动 SYNC 信号、那么 SYNC 的时序也可以称为。   为了控制通过 FIFO 的延迟以实现已知的同步行为、这就是必须执行的操作-控制相对于 DATACLK 的 SYNC 时序并相对于 DACCLK 进行对齐。  同样、我相信该应用手册 将对这种成熟的情况进行详尽的处理。

    DATACLK 和 SYNC 输入的驱动电平为标准 LVDS。   标准 LVDS 驱动器可以是其中每种驱动器的源。  在大约1.2V 的正常 VCM 下、+/-350mV 的标称 LVDS 摆幅很好。  

    DACCLK 和 ALIGN 的驱动电平预计会更大、例如典型的 LVPECL 驱动器。  预计 DACCLK 会出现较大的摆幅、例如 LVPECL 驱动器的典型+/-800mV 摆幅(1600mv p-p diff)。   但 DACCLK 的共模要求是 LVPECL 信号的*非*典型要求。   DACCLK 被偏置至大约0.9V 或 DAC 电源电压与接地之间的大约中间值。   (数据表编辑器对共模应约为 CLKVDD/2的说法感到困惑 、该短语变为"约为 CLKVDD18和 CLKVDD2"。  他不理解斜杠意味着除法。  这将在以后的修订中修复。)  DACCLK 输入有一个内部自偏置电路、这样、如果时钟是交流耦合的、那么异常偏置会自行处理、并且时钟可由标准 LVPECL 驱动器驱动。   由于如果使用 ALIGN 输入、则预期会满足相对于 DACCLK 的时序要求、因此它是通过一个输入缓冲器实现的、该缓冲器是 DACCLK 输入的副本、如果信号是交流耦合、则具有相同的自偏置。 如果对齐信号如前面所述是周期性的、则对齐信号上的交流耦合是可能的。   FPGA 驱动 DACCLK 并不是正常的做法、因为从具有足够低相位噪声或抖动的 FPGA 获取时钟并不常见。   一种更常见的方法是为 DAC 提供一个非常干净的时钟源、通常是 LVPECL、该时钟的副本会传送到 FPGA、以便 FPGA 返回该时钟、以用于 DATACLK 输出。    DAC FIFO 的存在意味着时钟从源到 FPGA 以及通过 FPGA 返回到 DAC 的往返计时并不重要- FIFO 吸收任何相位不匹配。  但是、要控制通过 FIFO 的延迟、需要使用 SYNC 和 ALIGN 信号。

    如果 FPGA *必须*提供 DACCLK 源, 并且该时钟的纯度足以保证 DAC 的交流性能,那么 FPGA 和 DAC 之间的 LVPECL 缓冲器可能是最好的。  同样、对于对齐信号、但对齐信号需要相对于 DACCLK 进行相移、以满足进入 DAC 的设置/保持时间。

    此致、

    Richard P.

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

    您好 Richard、

    非常感谢您的详细回答。 我已将此论坛帖子发送给客户、他将根据需要发布任何后续问题。 感谢您的及时帮助。

    Faizul Bacchus