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:LMK#39的±1 VCO 周期误差;执行多个 LMK同步 时输出器件时钟对齐

Guru**** 2540720 points
Other Parts Discussed in Thread: LMK04828

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1168381/lmk04828-1-vco-cycle-error-for-lmks-output-device-clock-aligning-when-performing-multiple-lmk-synchronization

器件型号:LMK04828

你(们)好。

我有两个要同步的 LMK04828。 但是 、在下电上电后、LMKs 的输出器件时钟(DCLKout2)会出现±1 VCO 周期误差。  

我没有在 LMK04828上使用任何 PLL。 因此、同步中只涉及分频器复位。

外部1GHz 时钟分配给具有相同路径长度的 LMK1端口。

同步是通过以相同长度同时切换 LMKs 上的 SYNC 引脚来执行的。

对于同步操作、我使用了正常同步模式。 对于 SYSREF 操作、我使用了 SYSREF 脉冲发生器模式。

以下是我的寄存器配置:

(0x0000,0x90)
(0x0000,0x10)
(0x0000,0x10)
(0x0100,0x61)
(0x0101,0x22)
(0x0103,0x02)
(0x0104,0x20)
(0x0106,0xf0)
(0x0107,0x55)
(0x0108,0x64)
(0x0109,0x22)
(0x010b,0x07)
(0x010c,0x20)
(0x010e,0x80)
(0x010f,0x11)
(0x0110,0x61)
(0x0111,0x22)
(0x0113,0x02)
(0x0114,0x20)
(0x0116,0xf0)
(0x0117,0x57)
(0x0118,0x61)
(0x0119,0x22)
(0x011b,0x02)
(0x011c,0x20)
(0x011e,0xf0)
(0x011f,0x57)
(0x0120,0x62)
(0x0121,0x22)
(0x0123,0x05)
(0x0124,0x20)
(0x0126,0xb0)
(0x0127,0x11)
(0x0128,0x68)
(0x0129,0x22)
(0x012c,0x20)
(0x012e,0xf7)
(0x012f,0x01)
(0x0130,0x61)
(0x0133,0x02)
(0x0134,0x20)
(0x0136,0xf7)
(0x0138,0x40)
(0x0139,0x00)
(0x013a,0x01)
(0x013b,0x00)
(0x013c,0x00)
(0x013d,0x08)
(0x013e,0x02)
(0x0140,0xf0)
(0x0143,0x91)
(0x0143,0x91)
(0x0143,0x11)
(0x0144,0x49)
(0x0145,0x7f)
(0x0146,0x00)
(0x0147,0x10)
(0x0148,0x33)
(0x0149,0x40)
(0x014a,0x02)
(0x014b,0x05)
(0x014c,0xff)
(0x0150,0x00)
(0x0156,0x78)
(0x015f,0x0b)
(0x0161,0x01)
(0x0162,0x44)
(0x016e,0x13)
(0x0171,0xaa)
(0x0172,0x02)
(0x0173,0x60)
(0x017c,0x15)
(0x017d,0x33)
(0x1ffd,0x00)
(0x1ffe,0x00)
(0x1fff,0x53)
Toggle SYNC pins on LMKs simultaneously
(0x0144,0xff)
(0x0143,0x12)
(0x0139,0x02)

我的问题是、对于 LMK'输出器件时钟对齐、是否预计会发生±1 VCO 周期误差? 我是否错过了同步 LMKs 的任何内容? 我是否应该使用零延迟模式来消除 VCO 周期误差?

谢谢、祝您一切顺利、

Yilun

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

    您好、Yilun、

    除了同步操作外、您的寄存器设置看起来不错。 您如何切换 SYNC 引脚?  能否探测两个 LMKs SYNC 引脚上的同步输入(脉冲)? 两个器件应该同时看到同步上升沿、并且它将使用同步上升沿输入来复位分频器。

    谢谢!

    此致、
    Ajeet Pal

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

    您好、Ajeet、

    为了进行同步引脚切换、我在 Verilog 顶层有一个名为"lmksync"的寄存器。

    assign hw.fmc1.lmk_sync=lbreg.lmksync;
    assign hw.fmc2.lmk_sync=lbreg.lmksync;

    "hw.fmc1.lmk 同步"和"hw.fmc2.lmk 同步"分别通过 OBUF 连接到 FPGA 引脚。 相应的 FPGA 引脚通过 FMC 连接器连接到 LMK04828 SYNC 引脚。

    可通过写入以太网寄存器映射来访问"lbreg.lmksync"。

    regmap.write((('lmksync',1),))
    regmap.write((('lmksync',0),))

    我探测了 LMK04828同步引脚、并看到了同步上升沿(下图左侧)。 下图是两个 LMK IC 中的 DCLKout2。

    我还有另一个"+1 VCO 周期误差"探针结果、如下所示。

    两个同步上升沿之间似乎存在800ps 的差异。 但是、"+0 VCO 周期误差"和"+1 VCO 周期误差"之间的差异是确定性的和恒定的。 即使两个同步信号的差值为800ps、确定性差也不会导致 DCLKout2的两种模式? 我是否理解正确?

    对于 LMK04828的寄存器0x143位6 (SYNC_1SHOT_EN)、我将其设置为0 (这意味着"SYNC 是电平敏感型、并且在 SYNC 被置位时输出保持同步")。 我们如何理解电平敏感?

    期待您的回复。

    谢谢、祝您一切顺利、

    Yilun

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

    您好、Yilun、

    多器件的输出分频器复位可通过 SYNC 引脚或 CLKin0引脚上的外部 SYNC 输入来执行。 为了实现相位对齐复位、输入 SYNC 信号必须被重新定时至 VCO 周期/分配时钟周期。 因此、输入同步信号应满足设置时间要求。 此外、由于同步输入中的延迟与时钟周期重新计时、因此在分频器输出中的延迟可能不完全相同。

    但由于 SYNC 引脚路径中的 CMOS 可变性、SYNC 引脚时序存在3-5ns 不确定性、这使得在时钟周期为1ns 的1GHz 时钟输入下几乎无法通过 SYNC 引脚同步输出分频器。 这将提供多个 VCO 周期误差。  

    而通过 CLKin0输入引脚的 SYNC 具有精确的设置时序(≤150ps)、并且应该可以进行相位对齐分频器复位。 但需要使上升沿对齐同步输入到多个设备。

    谢谢!

    此致、
    Ajeet Pal  

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

    您好、Ajeet、

    我尝试在 CLKin0引脚上执行外部同步。 我似乎获得了更多 DCLKout2的输出模式(超过±1 VCO 周期误差)。

    同步切换通过"lbreg.lmksync"发送、该同步通过 OBUFDS 连接到差分 FPGA 引脚。  

    assign hw.fmc1.lmk_clkin0=lbreg.lmksync;
    assign hw.fmc2.lmk_clkin0=lbreg.lmksync;

    然后 FPGA 引脚直接连接到 LMK CLKin0 (*)引脚。

    以下是我的寄存器设置:

    (0x0000,0x90)
    (0x0000,0x10)
    (0x0000,0x10)
    (0x0100,0x61)
    (0x0101,0x22)
    (0x0103,0x02)
    (0x0104,0x20)
    (0x0106,0xf0)
    (0x0107,0x55)
    (0x0108,0x64)
    (0x0109,0x22)
    (0x010b,0x07)
    (0x010c,0x20)
    (0x010e,0x80)
    (0x010f,0x11)
    (0x0110,0x61)
    (0x0111,0x22)
    (0x0113,0x02)
    (0x0114,0x20)
    (0x0116,0xf0)
    (0x0117,0x57)
    (0x0118,0x61)
    (0x0119,0x22)
    (0x011b,0x02)
    (0x011c,0x20)
    (0x011e,0xf0)
    (0x011f,0x57)
    (0x0120,0x62)
    (0x0121,0x22)
    (0x0123,0x05)
    (0x0124,0x20)
    (0x0126,0xb0)
    (0x0127,0x11)
    (0x0128,0x68)
    (0x0129,0x22)
    (0x012c,0x20)
    (0x012e,0xf7)
    (0x012f,0x01)
    (0x0130,0x61)
    (0x0133,0x02)
    (0x0134,0x20)
    (0x0136,0xf7)
    (0x0138,0x40)
    (0x0139,0x00)
    (0x013a,0x01)
    (0x013b,0x00)
    (0x013c,0x00)
    (0x013d,0x08)
    (0x013e,0x02)
    (0x0140,0xf0)
    (0x0143,0x91)
    (0x0143,0x91)
    (0x0143,0x11)
    (0x0144,0x49)
    (0x0145,0x7f)
    (0x0146,0x00)
    (0x0147,0x10)
    (0x0148,0x33)
    (0x0149,0x40)
    (0x014a,0x02)
    (0x014b,0x05)
    (0x014c,0xff)
    (0x0150,0x00)
    (0x0156,0x78)
    (0x015f,0x0b)
    (0x0161,0x01)
    (0x0162,0x44)
    (0x016e,0x13)
    (0x0171,0xaa)
    (0x0172,0x02)
    (0x0173,0x60)
    (0x017c,0x15)
    (0x017d,0x33)
    (0x1ffd,0x00)
    (0x1ffe,0x00)
    (0x1fff,0x53)
    Toggle CLKin0 on LMKs simultaneously
    (0x0144,0xff)
    (0x0143,0x12)
    (0x0139,0x03)

    寄存器设置或硬件设置中缺少什么?

    谢谢、祝您一切顺利、

    Yilun

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

    您好、Yilun、

    对于 CLKin0上的外部同步(精确的设置时序)、输入信号应该是直流耦合差分信号并且应该满足用于复位分频器的数字逻辑电平。

    寄存器配置看起来不错、似乎需要更新硬件设置以进行同步、并且两个器件的同步输入应该对齐。

    谢谢!

    此致、
    Ajeet Pal

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

    您好、Ajeet、

    CLKin0引脚直接连接到 FPGA 引脚、这是 LVCOMS18 I/O 标准(1.8V)。 它似乎不符合 V_CLKin0高输入电压要求(>2.0V)。 遗憾的是、无法在当前电路板上立即更新此硬件设置。

    我们是否会尝试其他解决方案? 我这边的灵活性是 CLKin1端口上的外部时钟。 如果我们使用100MHz 输入时钟、是否可以使用 SYNC 引脚同步多个 LMKs 的器件时钟输出? 要在我的电路板上生成的器件时钟为 DCLKout2 (250MHz)、DCLKout4 (1GHz)、DCLKout8 (500MHz)和 DCLKout10 (125MHz)。

    谢谢、祝您一切顺利、

    Yilun

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

    您好、Yilun、

    我对上述回答中的错误表示歉意。  

    双极型和直流耦合模式中所需的 CLKin0差分输入。

    如果硬件设置的更改至关重要、我建议尝试在0延迟嵌套双 PLL 模式下实现多器件同步之间的确定性偏斜。

    谢谢!

    此致、

    Ajeet Pal

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

    您好、Ajeet、

    我尝试在 LMK04828评估板上实现0延迟嵌套式沉闷 PLL 模式。 我认为我只能获得器件时钟(DCLKout6)的确定性相位、该时钟用作 PLL1输入的反馈信号(PLL1_NCLK_MUX 选择 FB 多路复用器、FB_MUX 选择 DCLKout6)。 但是、对于其他器件时钟(即 DCLKout2、DCLKout8)、它们仍然会因下电上电周期而异(即使从寄存器编程到寄存器编程)。  

    "多个 LMK0482X 器件的同步"的第6页中、它声称"只有一个输出必须反馈到相位检测器、因为所有其他输出都可以通过与 D2分频器同步来共享相位确定性。" 我希望 DCLKout2和 DCLKout8也从输入时钟获得确定性相位。 但在我的实验中、情况并非如此。 在图7中、D1分频器脱离反馈环路。 如果我们不对 D1分频器执行任何操作、则会导致相位不确定性。 如果我们使用带嵌套 PLL 的零延迟模式、我们还需要向所有分频器发送同步信号吗?

    让我在此附上我的寄存器设置供您参考。 LMK04828评估板的 VCXO 为122.88MHz。 我在 CLKin1的输入时钟为24.576MHz。  我的计划 是首先在 LMK04828评估板上成功实现0延迟嵌套式枯燥乏味 PLL 模式、然后将其移植到我的定制板。

    R0 (INIT)	0x000090
    R0	0x000010
    R2	0x000200
    R3	0x000306
    R4	0x0004D0
    R5	0x00055B
    R6	0x000600
    R12	0x000C51
    R13	0x000D04
    R256	0x010014
    R257	0x010155
    R258	0x010255
    R259	0x010301
    R260	0x010422
    R261	0x010500
    R262	0x0106F0
    R263	0x010755
    R264	0x010814
    R265	0x010955
    R266	0x010A55
    R267	0x010B00
    R268	0x010C22
    R269	0x010D00
    R270	0x010EF0
    R271	0x010F55
    R272	0x011008
    R273	0x011155
    R274	0x011255
    R275	0x011300
    R276	0x011422
    R277	0x011500
    R278	0x0116F0
    R279	0x011755
    R280	0x011814
    R281	0x011955
    R282	0x011A55
    R283	0x011B00
    R284	0x011C22
    R285	0x011D00
    R286	0x011EF0
    R287	0x011F33
    R288	0x012014
    R289	0x012155
    R290	0x012255
    R291	0x012300
    R292	0x012422
    R293	0x012500
    R294	0x0126F1
    R295	0x012703
    R296	0x012808
    R297	0x012955
    R298	0x012A55
    R299	0x012B00
    R300	0x012C22
    R301	0x012D00
    R302	0x012EF1
    R303	0x012F05
    R304	0x013006
    R305	0x013155
    R306	0x013255
    R307	0x013300
    R308	0x013422
    R309	0x013500
    R310	0x0136F1
    R311	0x013733
    R312	0x013805
    R313	0x013900
    R314	0x013A01
    R315	0x013BF4
    R316	0x013C00
    R317	0x013D08
    R318	0x013E03
    R319	0x013F09
    R320	0x01400F
    R321	0x014100
    R322	0x014200
    R323	0x014311
    R324	0x014400
    R325	0x01457F
    R326	0x014612
    R327	0x01471B
    R328	0x014802
    R329	0x014942
    R330	0x014A02
    R331	0x014B16
    R332	0x014C00
    R333	0x014D00
    R334	0x014EC0
    R335	0x014F7F
    R336	0x015003
    R337	0x015102
    R338	0x015200
    R339	0x015300
    R340	0x015478
    R341	0x015500
    R342	0x01560A
    R343	0x015700
    R344	0x015896
    R345	0x015900
    R346	0x015A32
    R347	0x015BD4
    R348	0x015C20
    R349	0x015D00
    R350	0x015E00
    R351	0x015F0B
    R352	0x016000
    R353	0x016101
    R354	0x016224
    R355	0x016300
    R356	0x016400
    R357	0x01650B
    R369	0x0171AA
    R370	0x017202
    R380	0x017C15
    R381	0x017D33
    R358	0x016600
    R359	0x016700
    R360	0x01680A
    R361	0x016959
    R362	0x016A20
    R363	0x016B00
    R364	0x016C00
    R365	0x016D00
    R366	0x016E13
    R371	0x017300
    R386	0x018200
    R387	0x018300
    R388	0x018400
    R389	0x018500
    R392	0x018800
    R393	0x018900
    R394	0x018A00
    R395	0x018B00
    R8189	0x1FFD00
    R8190	0x1FFE00
    R8191	0x1FFF53

    您能帮您找到我的设置中缺少的内容吗? 或者、您也可以使用 LMK04828评估板从自己的角度尝试一下吗?

    谢谢、祝您一切顺利、

    Yilun

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

    您好、Yilun、

    对于基于 "多个 LMK0482X 器件的同步" 应用手册的 ZDM、您应该遵循第 7页中提到的确定性相位的 ZDM 规则。 因此、您的输入频率应与最小输出频率相同、该输出频率应为 ZDM 的反馈。

    假设 评估板具有板载 VCXO 122.88MHz 和输入频率24.576MHz、您可以使用输出 频率与输入频率24.576MHz 相同的 SYSREF 反馈路径。 PLL1_R 和 PLL1_N 值"1"、反馈分频器路径为 SYSREF 分频器。

    请参阅以下更新的配置文件并尝试进行设置。

    e2e.ti.com/.../LMK04828_5F00_ZDM_5F00_SYSREF_5F00_24.576MCLKin1.tcs

    谢谢!

    此致、

    Ajeet Pal

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

    您好、Ajeet、

    感谢您的回复。 我将在明天尝试您的配置文件并将其返回给您。

    我在这里有两个简短的问题:

    对于双 PLL 设置、当我们讨论 ZDM 规则时、输入频率是 R 分频器的输入频率(在 PLL1之前)、输出频率是 D 分频器的输出频率(在 PLL2之后)。 我们在这里不考虑 PLL1和 PLL2之间的中间点。 我是对的吗?

    2.在应用手册(第6页)的图7中、"只有一个输出必须反馈到相位检测器、因为所有其他输出都可以通过与 D2分频器同步来共享相位确定性"。 为了与 D2分频器同步、我们仍然需要"分频器复位"来将分频器(D1和 D2)复位为一个公共起始值(可能使用同步切换)。 我是对的吗?

    谢谢、祝您一切顺利、

    Yilun

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

    您好、Yilun、

    [引用 userid="498005" URL"~/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1168381/lmk04828-1-vco-cycle-error-for-lmks-output-device-clock-aligning-when-performing-multiple-lmk-synchronization/4411009 #4411009]1. 对于双 PLL 设置、当我们讨论 ZDM 规则时、输入频率是 R 分频器的输入频率(在 PLL1之前)、输出频率是 D 分频器的输出频率(在 PLL2之后)。 我们在这里不考虑 PLL1和 PLL2之间的中间点。 我是正确的吗?

    是的、没错。 但是、PLL2的设置应锁定 PLL、到 PLL1的反馈路径将锁定 PLL1。 因此、在 ZDM 中、输入和输出信号之间没有分频器相位模糊性。

    [引用 userid="498005" URL"~/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1168381/lmk04828-1-vco-cycle-error-for-lmks-output-device-clock-aligning-when-performing-multiple-lmk-synchronization/4411009 #4411009"]2. 在应用手册(第6页)的图7中、"只有一个输出必须反馈到相位检测器、因为所有其他输出都可以通过与 D2分频器同步来共享相位确定性"。 为了与 D2分频器同步、我们仍然需要"分频器复位"来将分频器(D1和 D2)复位为一个公共起始值(可能使用同步切换)。 我是正确的吗?

    不需要、它不需要任何外部同步。 一旦、你遵循 ZDM 确定性规则、这意味着反馈频率应该是所有所需输出频率的 GCD、而这也是 PLL 环路中包含的分频器。 它将对齐所有输出。

    谢谢!

    此致、
    Ajeet Pal

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

    您好、Ajeet、

    我实现了嵌套双环路零延迟模式、并将 sysref 用作反馈时钟。 输入和输出频率之间最常见的分频值是输入频率。 需要确定性(sysref)的最低输出频率用于 ZDM 反馈。 我仍然可以看到器件时钟输出在功率周期中的不确定性。 这可以在 LMK04828评估板和我的定制板上观察到。

    但是、在 ZDM 配置后、如果我们执行"SYNC Dividers"、器件时钟生成将成为确定性的。 这在 LMK04828评估板和我的定制板上都经过了测试。 因此、在我的案例中、确定性时钟生成需要"ZDM +分频器复位"。

    感谢您迄今提出的建议。 它们很有帮助。

    最棒的

    Yilun