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.

[参考译文] LMK04828:使用 FPGA HDL 模型仿真 LMK04828

Guru**** 2587365 points
Other Parts Discussed in Thread: LMK04828, TICSPRO-SW, LMK04828BEVM

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/740511/lmk04828-simulating-lmk04828-with-fpga-hdl-model

器件型号:LMK04828
主题中讨论的其他器件: TICSPRO-SW

大家好、

lmk04828是否有任何 HDL 行为测试台模型?

我想知道我的 SPI 状态机是否正确设置了寄存器。

我基本上想将 oscout/CLKIN (2)分配为我的输入时钟、该时钟为 sdclkout (3)和 dclkout (4)提供反馈。

此外、我希望获取3GHz VCO 并在 clkout (0)、(8)和(10)上输出1.5GHz。

关于引脚59和58 (CLKIN_SEL)、我不知道是什么选择 CLKIN (2)。

是的

ACTIVE_CLK <= CLKIN_SEL ="00"时的 CLKIN (0);如果 CLKIN_SEL ="01"、则 CLKIN (1);如果 CLKIN_SEL="10"、则 CLKIN (2);

是不是

ACTIVE_CLK <= CLKIN (0)当 CLKIN_SEL ="01"时、否则 CLKIN (1)当 CLKIN_SEL ="10"时、CLKIN (2)当 CLKIN_SEL ="11"时、CLKIN (2);

我在某个位置读取到、如果线路处于非活动状态、器件将更改 CLKIN、这让我想知道 CLKIN_SEL 是否必须为00才能允许时钟自动分配。

非常感谢您帮助连接到 FPGA。 请向我指出任何视频

此致

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

    您好!

    我对 HDL 不是很熟悉、但从我快速阅读的内容中、我不确定它在这方面会有什么帮助?

    要生成寄存器映射以执行所需的操作、我建议下载 TICS Pro 软件(TICSPRO-SW)。  它用于对 EVM 进行编程或为您自己的实现生成寄存器映射。

    [引用 user5854578"]我基本上想将 oscout/CLKIN (2)分配为我的输入时钟、该时钟向 sdclkout (3)和 dclkout (4)提供反馈。

    我对向 SDCLKout3和 DCLKout4应用反馈的含义有点困惑。  当器件运行在双环路模式中时、OSCOUT/CLKin2可被用作第一个 PLL 的输入。  请参阅数据表的第9.4.1节。

    [引用 user5854578"]此外,我还想获取3GHz VCO,并在 clkout (0)、(8)和(10)上输出1.5GHz。

    您将需要提供对 OSCin 的引用。  如果您使用的是单环路。  在 TICS Pro 中...

    在 CLKIN 和 PLL 页面上。。。

    • 将 OSCin Source 更改为 Independent。 [尽管根据您的描述、您可能需要使用双环路模式?  因此、您可能需要外部 VCXO ]
    • 键入您的 OSCin 频率。
    • 设置倍频器/R 分频器以产生小于155MHz 的相位检测器频率。
    • 设置 PLL2 N 分频器和 N 预分频器以启用3GHz。  您还可以在右侧的 VCO/时钟分配频率框中键入3000。
    • 如果您为 VCO 频率键入3000MHz、则它将变为非3000MHz 数字。  您需要调整倍频器、PLL2 R 分频器或 PLL2 N 预分频器(PLL2_P)、以使此处的等式得到3000MHz 的解算: OSCin Freq /*(倍频器为1或2)/ PLL2 R * PLL2_N * PLL2_P = 3000MHz 的 VCO 频率。
    • 确保为您的有源 VCO 选择 VCO1、以实现3000MHz 范围。

    现在、在"时钟输出"页面中、您可以根据需要配置输出格式和输出分频器。

    如果您需要双环路模式、您基本上会重复此过程、但从 CLKIN 频率开始、并求解 VCXO 频率、该频率将是 PLL1的反馈(通过 PLL1 N)、但也是对 PLL2的参考。

    [引用 user5854578"]关于引脚59和58 (CLKIN_SEL),我不知道选择 CLKIN (2)的是什么。

    如果您要为双环路 PLL 的输入选择 CLKin2、它可以像设置 CLKIN_SEL_MODE = 0 (CLKin0手册)一样简单。  如果要使用引脚控制、必须设置(CLKIN 和 PLL 页面的右上角)

    • CLKIN_SEL_MODE =(0x03)引脚选择模式
    • CLKIN_SEL0和1作为输入(具有或不具有上拉或下拉)。  未为输入配置的任何 CLKIN_SEL 引脚均视为0。
    • 或者、您可以使用 CLKIN_SEL_POL 反转输入极性。
    • 由于软件不知道输入引脚的状态、因此您可以将"Selected Clock Input for PLL1"设置为 CLKin2、以便软件中的频率计算正确。

    第9.3.5节"输入时钟开关"包含表4、其中显示了 CLKin1_SEL =高电平、CLKin0_SEL =低电平、从而使 CLKin2成为有效时钟。

    (笑声)

    如果要将输入信号直接传递到输出、CLKin1支持分布模式。  如果您希望在使用单环路或双环路模式时将输入直接传递到输出。  如数据表的图13所示、可以将 CLKin0直接路由到 SYNC/SYSREF 路径上的 SDCLKoutY 输出。  通过单击 CLKin0 DRIVES SYNC/SYSREF Direct 按钮、可从 LMK04828的设置模式页面自动设置后一种模式。  请务必阅读有关 SYNC/SYSREF 的第9.3.1节、了解有关使用 SYNC/SYSREF 路径的其他详细信息、以免无意中同步输出时钟输出分频器。

    73、
    Timothy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Timothy、
    感谢您的全面回答。
    为什么将相位检测器设置为155MHz?
    我正在尝试使用 lmk04828bevm 评估板。 我发现 reg 138要求 oscout 多路复用器被切换/断电。 这是通过 clkout 选项卡实现的。
    在开发板上、我能够生成~2400的 vco0、当通过16分频器馈送时、该值将提供~150MHz。
    我现在遇到的问题是
    在将 VCO mux 设置为 vco1的情况下加载器件、然后在 pll1锁定到 vco0后进行更改时、一切都正常、但是如果我将 VCO mux 设置为 vco0并尝试加载器件、lmk04828bevm 会从170MHz (而不是150MHz)中泵出。
    我很困惑,因为我本来应该从0到顶部寄存器进行编程,而不需要返回并对其他寄存器进行调整。
    此致、
    WES
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    规格表明、根据电气特性、PLL1相位检测器频率最大值为40MHz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wes、

    [引用 user5854578"]为什么要将相位检测器设置为155MHz?您不一定要设置155MHz、因为 VCO 频率必须是155MHz 的整数倍、当然 VCO 也需要是所需输出时钟频率的整数倍。

    您设置高相位检测器频率的原因是为了降低 PLL 的噪声贡献。  相位检测器频率越高、PLL 的噪声贡献就越低。  请看 E2E 时钟和计时文件部分中 e2e.ti.com/.../664163.aspx 上的选择 PLL 环路带宽的演示。  我认为幻灯片17显示了假设是理想基准、不同相位检测器频率下的12kHz 至20MHz 优化 RMS 抖动值。

    [引用 user5854578]user5854578

    规格表明、根据电气特性、PLL1相位检测器频率最大值为40MHz

    [/报价]

    这用于 PLL1。  对于 PLL2、它是155MHz。  当使用 PLL1进行抖动消除时、我们通常选择较小的频率、例如1MHz 相位检测器频率、因为我们正在设计具有窄环路带宽(例如10Hz 至200Hz)的环路滤波器、较低的相位检测器频率有助于减小电容器尺寸。  PLL 由于相位检测器频率较低而产生的任何噪声均由双环路架构的 VCXO 清除。

    [报价 USER="user5854578"]在开发板上,我能够生成~2400的 vco0,通过16分频器馈送时,该值将提供~150MHz。[/QUERPLET]

    这听起来不错。  2400MHz 位于 LMK04828的 VCO0频段中。

    user5854578 说:
    我感到困惑的是,我本来应该从0到 Top reg 进行编程,而不需要返回并在后面对其他寄存器进行调整。

    这是建议的编程过程,但您需要先根据需要配置所有内容。  然后进行编程。  关键是、在将0x166编程为0x168之前、应根据需要设置所有内容、因为这些寄存器会开始 VCO 校准。  请注意、根据9.5.1中的建议编程序列、有几个寄存器应该被移动到0x166的头以获得最佳性能。

    此外、要启用 JESD204B 等特定功能、需要执行一些后续编程。  由于 SYNC/SYSREF 是共享的、因此无法一次性对所有内容进行编程。  请参阅9.3.2中启用 SYSREF 的 JESD204B 示例。

    [引用 user5854578"]当加载 VCO 多路复用器设置为 vco1的器件并随后更改 pll1锁定为 vco0后,一切正常,但是如果我将 VCO 多路复用器设置为 vco0并尝试加载器件, 则 lmk04828bevm 将输出170MHz,而不是150MHz。[/quot]

    传统上、PLL1与连接到 OSCin 的外部 VCXO 搭配使用。  CLKinX 将通过 OSCin 为 PLL1和 VCXO 提供反馈基准。  这是双环路模式下的抖动消除 PLL。

    传统上、PLL2与其中一个内部 VCO (也可以与外部 VCO 一起使用)。  OSCin 将在内部或通过 CLKin1 (如果使用外部 VCO)为 PLL2和所选的 VCO 反馈提供基准。  它提供了一个纯净的基准、它执行频率乘法以获得所需的频率。  请注意、如果您可以通过 VCXO 频率实现所需的所有频率、则可以在外部 VCO 模式下运行 PLL2、并参考 OSCin 以获得最佳性能。

    因此、为了更好地回答您的问题、我需要知道您的输入是什么以及您的单环路或双环路意向、在这种情况下、我需要知道您的 VCXO 频率。

    但是、通常情况下、如果您更改 VCO_MUX、则需要对分频器进行重新编程、以使输入频率将 VCO 锁定在适当的频率范围内。  至少应在0x166、0x167和0x168中对 PLL2_N 寄存器进行编程、以触发重新校准。

    73、
    Timothy