
1. 项目概述与PLL核心价值在FPGA开发中时钟管理是决定系统性能、稳定性和可靠性的基石。一个设计精良的时钟网络不仅能确保数据在正确的时刻被采样和处理更能有效消除时钟偏移、降低抖动从而提升整个系统的时序裕量。Altera现为Intel PSG的Cyclone系列FPGA作为当时面向成本敏感型应用的主力军其内置的锁相环PLL功能为开发者提供了一个强大且灵活的片上时钟解决方案。它允许我们基于一个外部输入的参考时钟通过倍频、分频、相位偏移和占空比调整生成多个满足不同模块需求的内部时钟而无需在PCB上增加额外的时钟芯片这极大地简化了板级设计降低了BOM成本和布局复杂度。我接触过不少项目从简单的逻辑控制到复杂的视频处理时钟设计往往是调试阶段最令人头疼的部分。外部时钟芯片配置复杂走线要求苛刻而Cyclone的PLL则将这一切集成到了FPGA内部。通过Quartus II软件中的MegaWizard工具我们可以像搭积木一样直观地配置PLL参数软件会自动完成底层硬件的例化和约束。但这并不意味着可以随意配置理解PLL的硬件结构、工作模式以及背后的时序原理是避免项目后期出现诡异时序违例的关键。本文将基于Cyclone器件的PLL深入拆解其硬件原理、配置方法、实战技巧以及那些官方手册可能不会明说但却在实际项目中反复验证过的“坑”与应对策略。2. Cyclone PLL硬件架构深度解析要玩转Cyclone的PLL不能只停留在软件配置层面必须对其内部的“五脏六腑”有个清晰的认识。这就像开车知道油门和刹车在哪固然重要但了解发动机的工作原理才能在复杂路况下游刃有余。2.1 PLL核心模块与信号流Cyclone的每个PLL本质上是一个模拟-数字混合的闭环控制系统。它的核心目标是将一个内部产生的时钟VCO输出的相位和频率与一个外部输入的参考时钟进行同步和锁定。图1所示的PLL框图是其灵魂我们可以将其分解为几个关键部分来理解输入分频器N计数器外部输入的时钟f_IN首先经过一个可编程的预分频计数器N。这个N值范围是1到32。它的作用是将可能较高的输入频率降低到一个适合后续相位频率检测器PFD工作的频率f_REF。f_REF f_IN / N。选择合适的N值是让PLL工作在其最佳比较频率区间的第一步。相位频率检测器PFD与电荷泵CP这是PLL的“大脑”和“执行机构”。PFD持续比较参考时钟f_REF和反馈回来的时钟f_FB的上升沿。如果f_FB滞后于f_REFPFD会产生一个“向上”脉冲指示系统时钟慢了反之则产生“向下”脉冲。这些脉冲控制电荷泵向或从环路滤波器注入或抽取电流。环路滤波器LF这是一个低通滤波器通常由片外或片内的电阻电容网络构成在Cyclone中部分集成。它将电荷泵输出的电流脉冲转换为一个平滑的控制电压V_CTRL。环路滤波器的带宽和阻尼特性至关重要它决定了PLL锁定速度、对输入抖动高频噪声的抑制能力以及输出时钟的抖动性能。带宽太宽锁定快但抑噪差带宽太窄抑噪好但锁定慢且可能无法跟踪输入时钟的慢漂移。压控振荡器VCO这是PLL的“心脏”。其振荡频率f_VCO由环路滤波器输出的控制电压V_CTRL线性控制。PFD/CP/LF的整个闭环调节最终都是为了调整V_CTRL使得f_VCO精确等于f_REF的M倍即f_VCO f_REF * M f_IN * (M/N)。M是反馈回路中的倍频计数器范围也是1到32。VCO的频率范围如Cyclone的300-800 MHz是PLL能合成时钟范围的硬性限制。反馈分频器M计数器与后分频器G0, G1, EVCO输出的高频时钟f_VCO一路经过M计数器分频后产生f_FB送回PFD完成闭环。另一路则通过三个独立的后分频计数器G0, G1, E产生最终的输出时钟。c0和c1输出对应G0和G1驱动FPGA内部的全局时钟网络e0输出对应E驱动专用的外部时钟输出管脚PLLx_OUT。输出频率分别为f_c0 f_VCO / G0,f_c1 f_VCO / G1,f_e0 f_VCO / E。注意c0和c1的输出并非固定绑定G0或G1在MegaWizard中你可以指定哪个输出使用哪个后分频器。但一个后分频器只能驱动一个输出端口。2.2 关键性能参数与选型考量理解这些参数是进行可靠设计的前提输入频率范围f_INCyclone PLL支持的输入时钟频率通常有一个范围例如15-156 MHz。必须确保你的晶振或外部时钟源在此范围内。VCO频率范围f_VCO这是PLL工作的核心区间300-800 MHz。所有输出时钟的频率都必须由处于此范围内的某个VCO频率分频得到。例如你需要33MHz和66MHz两个时钟不能直接设置VCO为66MHz或99MHz。正确的思路是寻找一个在300-800MHz之间且能同时被33和66整除或公约数关系的频率。330MHz3310, 665就是一个合适的选择然后设置G010得到33MHzG15得到66MHz。输出频率范围f_OUT根据f_VCO范围和分频器范围1-32计算得出。理论上最低输出频率可达300/32 ≈ 9.375MHz最高可达800/1 800MHz。但实际最高输出频率还受目标器件速度等级和全局时钟网络性能的限制。抖动Jitter分为输入抖动和输出抖动。PLL对输入时钟的抖动有过滤作用但其抑制能力有限尤其是低频抖动低于环路带宽。对于要求苛刻的应用如高速SerDes必须选用低抖动的晶振。输出抖动则与VCO性能、电源噪声、以及后文将提到的PCB布局密切相关。2.3 时钟反馈模式理解相位补偿的本质这是Cyclone PLL配置中最核心也最容易混淆的概念之一。三种模式决定了PLL如何感知和补偿时钟路径上的延迟。标准模式Normal Mode反馈路径PLL将c0或c1输出经过全局时钟网络后再反馈回PFD的输入端。补偿目标补偿从PLL输出到FPGA内部某个寄存器通常是你指定的那个全局时钟网络终点之间的时钟网络延迟。效果使得PLL输出时钟的边沿与到达目标寄存器时钟端的边沿与输入参考时钟的边沿对齐。这消除了芯片内部的时钟偏移Clock Skew。相位关系如图4所示FPGA内部寄存器时钟与输入时钟同相假设0度偏移。外部输出时钟e0和内部直接驱动IO的时钟相对于输入时钟会有固定的相位偏移即输出延迟tCO。零延迟缓冲模式Zero Delay Buffer Mode反馈路径PLL将外部时钟输出管脚PLLx_OUT上的信号直接反馈回PFD。补偿目标补偿从PLL输出到外部输出管脚路径上的延迟。效果使得PLLx_OUT管脚上的时钟边沿与输入参考时钟CLKx管脚上的时钟边沿严格对齐相位差接近于零。这常用于驱动板级其他芯片需要源同步时钟的场景。相位关系如图5所示外部输出时钟e0与输入时钟同相。而FPGA内部寄存器时钟则会领先于输入时钟因为内部路径延迟被暴露出来了。无补偿模式No Compensation Mode反馈路径直接从VCO后分频器之后取信号反馈不经过任何输出缓冲和时钟网络。补偿目标无。PLL不主动补偿任何延迟。效果这种模式下PLL的反馈环路最短受外部干扰最小因此理论上能提供最佳的抖动性能。但代价是内部和外部时钟输出相对于输入时钟都有不确定的、较大的相位偏移。内部时钟之间的相位差最小因为它们共享部分路径。适用场景对时钟抖动极其敏感但对绝对相位关系要求不高的应用例如某些射频或数据转换场合。选择建议绝大多数内部逻辑同步设计使用标准模式并指定驱动核心逻辑的时钟如c0为补偿时钟。需要为外部ADC、DAC或其他FPGA提供同步时钟时使用零延迟缓冲模式。对抖动有极致要求且能接受内部时钟相位不确定时考虑无补偿模式。3. 基于Quartus II的PLL配置实战详解理论说得再多不如动手配置一遍。我们以Quartus II 13.0一个经典且稳定的版本为例一步步创建一个满足特定需求的PLL。3.1 需求分析与参数计算假设我们有一个项目需求如下输入时钟50 MHz晶振连接到FPGA的CLK0引脚。所需时钟1100 MHz用于核心逻辑处理相位偏移0度占空比50%。所需时钟225 MHz用于低速外设接口相位偏移90度相对于输入时钟占空比40%。所需时钟3200 MHz通过PLL1_OUT引脚输出驱动板载另一颗芯片需要与输入时钟同相零延迟。器件型号EP1C12Q240C8。第一步确定VCO频率我们需要一个VCO频率它能通过整数分频得到100MHz、25MHz和200MHz。100MHz和25MHz的最小公倍数是100MHz但100MHz不在VCO范围300-800 MHz内。考虑100和25的倍数200MHz1002, 258不在VCO范围。考虑400MHz1004, 2516, 200*2。400MHz在300-800MHz范围内且能被整除。f_VCO 400 MHz对于100MHz输出分频系数 400 / 100 4 G0或G1对于25MHz输出分频系数 400 / 25 16 G0或G1对于200MHz输出分频系数 400 / 200 2 E第二步确定M和N已知f_VCO f_IN * (M/N) 50 * (M/N) 400。 所以M/N 400 / 50 8。 我们需要在1-32范围内选择一对整数M和N使得比值为8。最直接的选择是M 8N 1这表示输入时钟直接不分频进入PFDVCO将其倍频8倍。第三步验证参数合法性f_REF f_IN / N 50 / 1 50 MHz。检查PFD的输入频率是否在器件允许范围内通常PFD有最小频率要求如10-20MHz以上需查手册。50MHz是合理的。f_VCO 400 MHz在300-800 MHz范围内OK。分频系数G04, G116, E2均在1-32范围内OK。3.2 MegaWizard Plug-In Manager 逐步配置打开工具在Quartus II中选择Tools - MegaWizard Plug-In Manager。选择Create a new custom megafunction variation。选择宏功能在Installed Plug-Ins下选择I/O - ALTPLL。选择输出文件类型Verilog HDL或VHDL并指定保存路径和模块名称例如my_pll.v。第一页器件与基础设置Which device family will you be using?: 选择Cyclone。What is the frequency of the inclk0 input?: 输入50.000 MHz。控制信号根据需求勾选。通常我们会启用areset异步复位和locked锁定指示信号。pllena和pfdena在简单应用中可以不引出。Which operation mode will you be using?: 这里需要仔细考虑。我们需要一个零延迟的外部输出200MHz但同时内部时钟也需要被补偿。Cyclone PLL的零延迟缓冲模式其反馈来自外部引脚这意味着内部时钟网络将不被补偿。如果我们希望内部100MHz时钟也被良好补偿可能需要使用标准模式而将200MHz输出当作一个具有固定延迟的普通输出来看待。或者我们可以实例化两个PLL但本例中只有一个PLL。这里我们做一个折中选择“Zero Delay Buffer”模式优先保证外部200MHz时钟与输入同相。内部时钟的相位关系我们后续通过相位偏移来调整。Which output clock will be compensated?: 在零延迟缓冲模式下此选项无效因为补偿参考点是外部反馈引脚。第二页锁定检测勾选Create ‘locked’ output。第三、四页带宽和时钟切换功能Cyclone不支持跳过。第五页配置c0输出100MHzEnter output clock frequency: 100 MHz或者手动输入倍频/分频参数。Clock multiplication factor: 由于我们已计算好VCO400MHz输入50MHz所以倍频系数应为8。但注意这里MegaWizard可能会根据我们输入的100MHz和50MHz自动计算M/N/G。我们更推荐使用Enter output clock parameters manually。选择Enter output clock parameters manually。Clock multiplication factor (M): 输入8。Clock division factor (N): 输入1。Clock division factor (c0): 输入4(因为f_VCO / G0 400 / 4 100)。Clock phase shift: 输入0 deg。Clock duty cycle (%):输入50。第六页配置c1输出25MHzUse this clock: 勾选。Enter output clock parameters manually。Clock multiplication factor (M): 已锁定为8PLL共享。Clock division factor (N): 已锁定为1。Clock division factor (c1): 输入16。Clock phase shift: 输入90 deg。注意这里的90度偏移是相对于补偿时钟的。在零延迟缓冲模式下补偿参考点是外部反馈因此这个90度是相对于e0200MHz输出与输入时钟同相的那个“零点”而言的。我们需要计算实际效果我们希望25MHz相对于50MHz输入有90度偏移。25MHz周期为40ns90度即10ns。而100MHzc0周期10ns200MHze0周期5ns。我们需要根据PLL内部计数器初始值和VCO tap来精确设置。MegaWizard会自动计算最接近的可实现值。我们输入90 deg软件会给出一个实际值例如11.25 ns对应90度在25MHz下是10ns可能无法精确实现。Clock duty cycle (%):输入40。同样软件会根据分频系数16计算可实现的值精度为50%/163.125%可能实际设置为40.625%或37.5%。第七页配置e0输出200MHzUse this clock: 勾选。Enter output clock parameters manually。Clock division factor (e0): 输入2。Clock phase shift: 输入0 deg零延迟模式的目标。Clock duty cycle (%):输入50。第八页总结检查生成的RTL文件和仿真文件点击Finish。实操心得MegaWizard的自动计算功能有时会为了满足所有输出频率而选择一个非最优的VCO频率可能导致某些输出频率的相位或占空比调节精度变差。强烈建议先手动计算好M、N、G0、G1、E的值然后选择手动输入模式这样你对整个PLL的工作点了如指掌。3.3 生成代码与顶层模块例化MegaWizard会生成一个my_pll.v或 .vhd文件以及一个my_pll_inst.v实例化模板。在你的顶层Verilog模块中例化PLL如下module top ( input wire clk_50m, // 50MHz输入时钟 input wire rst_n, // 全局复位低有效 output wire clk_200m_out // 200MHz输出时钟 ); wire clk_100m; // 100MHz内部时钟 wire clk_25m; // 25MHz内部时钟 wire pll_locked; // PLL锁定信号 my_pll u_my_pll ( .inclk0 (clk_50m), // 输入时钟必须连接到专用时钟引脚 .areset (~rst_n), // 高有效复位我们用系统复位的反相 .c0 (clk_100m), // 100MHz输出 .c1 (clk_25m), // 25MHz输出 .e0 (clk_200m_out), // 200MHz输出到引脚 .locked (pll_locked) // 锁定指示 ); // 重要使用PLL输出的时钟进行逻辑设计前必须检查locked信号 always (posedge clk_100m or negedge rst_n) begin if (!rst_n) begin // 复位逻辑 end else if (pll_locked) begin // 正常的业务逻辑只有在PLL锁定后才开始工作 end end endmodule关键点inclk0必须由CLK0,CLK1,CLK2,CLK3这类专用时钟输入引脚驱动。areset是高有效信号。通常我们将外部低有效的复位信号取反后连接至此。locked信号至关重要。在PLL上电或复位后需要一定时间锁相时间典型值几十微秒才能稳定输出。在locked信号变高之前PLL输出时钟的频率和相位可能是不稳定的。因此所有使用PLL时钟的同步逻辑其使能或复位释放应受locked信号控制。4. 板级设计与调试避坑指南纸上得来终觉浅绝知此事要躬行。PLL配置得再完美如果板级设计不当一切皆是空谈。以下是我在多个项目中总结出的血泪教训。4.1 电源与去耦模拟电源VCCA是生命线Cyclone PLL的模拟部分VCO、电荷泵等有独立的电源引脚VCCA_PLLx和接地引脚GNDA_PLLx。这是保证PLL低抖动、高性能的关键。必须连接即使你不使用PLLVCCA_PLLx也必须连接到干净的1.5V电源上。浮空或连接错误电压会导致器件工作异常甚至损坏。电源隔离VCCA必须与数字核心电源VCCINT也是1.5V进行隔离。官方推荐三种方法按效果排序独立的模拟电源层最佳选择但成本高。在VCCINT电源层上划分“孤岛”如图7所示在数字电源层中为VCCA划出一块区域周围用至少25mil宽的空隙Anti-etch与其他数字部分隔离并通过一个磁珠或0欧电阻单点连接到数字1.5V电源入口。这是最常用且有效的折中方案。宽的电源走线如果无法分割电源层则使用至少20mil宽的走线为VCCA引脚供电并严格遵守下面的去耦规则。去耦网络每个VCCA引脚的去耦电路是硬性要求必须严格按照图8所示布局远端在电源进入板子的位置放置一个铁氧体磁珠Ferrite Bead串联并并联一个10μF钽电容。磁珠用于抑制高频噪声从数字电源串扰过来。近端在尽可能靠近FPGA的VCCA和GNDA引脚处放置一个1Ω电阻串联然后并联一个0.1μF和一个0.001μF的陶瓷电容。电阻有助于进一步隔离噪声大小电容组合提供全频段的去耦。GNDA引脚应通过过孔直接连接到完整、干净的接地平面。踩坑实录曾有一个项目PLL输出时钟抖动巨大导致高速ADC采样数据不稳定。排查良久最后发现是VCCA的去耦电容布局不当0.1μF电容离引脚超过5mm。重新调整布局后抖动指标立刻达标。记住去耦电容必须“紧贴”芯片引脚引线越短越好。4.2 时钟与I/O引脚布局减少串扰专用时钟引脚PLL的输入inclk0必须来自CLK0、CLK1等专用时钟引脚。这些引脚有直达PLL的专用低抖动路径。外部时钟输出引脚PLLx_OUT的邻居PLL1_OUT和PLL2_OUT引脚没有独立的电源/地组它们与相邻的普通I/O引脚共享VCCIO。如果相邻引脚是高速开关的数字输出如DDR数据线其地弹和电源噪声会直接耦合到时钟输出上 dramatically增加时钟抖动。黄金法则将PLLx_OUT引脚相邻的I/O引脚配置为输入或者直接悬空不使用。在Quartus的Pin Planner中要特意检查并规划这一点。如果必须使用相邻引脚请将其驱动强度Current Strength设置为最低压摆率Slew Rate设置为慢速以减小开关噪声。时钟走线PCB上连接到CLKx和PLLx_OUT的走线应作为传输线处理。保持阻抗连续通常50Ω远离高速数字信号线避免锐角转弯。如果可能在时钟线两边包地Guard Trace以提供屏蔽。4.3 时序约束与静态时序分析配置好PLL并完成布局布线后必须在Quartus II中设置正确的时序约束工具才能进行有效的优化和分析。创建基础时钟约束# 假设输入时钟引脚名为 clk_50m_pin create_clock -name clk_50m -period 20.000 [get_ports {clk_50m_pin}]这个约束告诉时序分析引擎输入一个周期为20ns50MHz的时钟。衍生时钟约束推荐让工具自动推导 对于PLL生成的时钟clk_100m和clk_25m最规范的做法是使用derive_pll_clocks命令。这个命令会自动根据PLL配置为所有PLL输出时钟生成约束。derive_pll_clocks你也可以手动创建衍生时钟但容易出错# 手动创建示例不推荐仅作理解 create_generated_clock -name clk_100m -source [get_ports {clk_50m_pin}] -divide_by 1 -multiply_by 2 [get_nets {u_my_pll|altpll_component|auto_generated|pll1|clk[0]}] # 网表名称非常复杂且随编译变化所以强烈推荐使用 derive_pll_clocks检查时序报告 编译完成后打开TimeQuest Timing Analyzer。查看Report Clocks确认所有时钟基础时钟和衍生时钟都被正确识别和约束。查看Setup: clk_100m和Hold: clk_100m等报告确保没有时序违例Slack为正值。特别注意跨时钟域CDC路径如果clk_100m和clk_25m之间有数据交互必须使用异步FIFO或脉冲同步器等可靠的CDC电路并且这些路径应在约束中被设为false path或使用set_clock_groups声明异步关系否则工具会报告无法满足的时序要求这属于正常情况。set_clock_groups -asynchronous -group {clk_100m} -group {clk_25m}5. 高级功能与疑难问题排查5.1 动态重配置与控制信号Cyclone PLL支持运行时通过逻辑控制信号进行有限的重配置。areset异步复位。拉高会复位PLL内部所有计数器时钟输出停止locked信号变低。释放后PLL重新开始锁定过程。可用于系统级的时钟硬复位。pfdena相位频率检测器使能。拉低时PFD停止工作电荷泵输出保持VCO以当前控制电压维持近似频率振荡。时钟输出依然有但会逐渐漂移失锁。可用于短暂“冻结”时钟或低功耗模式。注意重新使能后PLL需要重新锁定。pllenaPLL使能。拉低将彻底关闭PLL时钟输出为低。用于完全关断PLL以省电。注意事项这些控制信号虽然可由普通I/O或内部逻辑驱动但必须确保是同步、无毛刺的信号。最好用PLL输出的稳定时钟域如clk_100m来同步产生这些控制信号避免亚稳态导致PLL行为异常。5.2 锁定时间Lock Time与系统启动PLL从上电或复位到输出稳定时钟并置位locked信号所需的时间即为锁定时间。Cyclone PLL的典型锁定时间在100μs量级。系统设计影响这意味着FPGA配置完成后不能立即开始工作。你的设计必须包含一个上电复位POR或配置完成后的延时电路等待locked信号变高后再释放系统内部各个模块的复位。仿真中的锁定时间行为仿真模型中的锁定时间2-10个周期远短于实际时间不能依赖仿真来验证系统启动时序。必须通过实际电路测试。5.3 常见问题速查与解决方案下表汇总了使用Cyclone PLL时可能遇到的典型问题及排查思路问题现象可能原因排查步骤与解决方案编译失败提示PLL参数错误1. 输入频率超出范围。2. 要求的VCO频率超出300-800 MHz范围。3. 分频系数M/N/G不在1-32内。4. 占空比/相位偏移设置无法实现。1. 检查输入时钟频率设置。2. 重新计算VCO频率确保其在范围内。可能需要调整M/N组合。3. 检查所有分频系数。4. 使用MegaWizard的自动计算功能查看软件给出的实际可实现值。PLL无法锁定locked信号一直为低1. 输入时钟未连接或信号质量差幅度不足、失真。2.VCCA电源不正常电压错误、噪声大。3. 参考时钟频率过低低于PFD最小工作频率。4.areset或pllena信号被意外拉高/拉低。1. 用示波器测量输入时钟引脚波形。2. 测量VCCA引脚电压和纹波检查去耦电路。3. 查阅器件手册确认最小输入频率要求。4. 检查控制信号的连接和上/下拉电阻配置。输出时钟抖动Jitter过大1. 输入时钟本身抖动大。2.VCCA电源噪声大去耦不足。3.PLLx_OUT相邻I/O引脚有高速开关信号。4. PCB时钟走线受到严重干扰。1. 更换高质量晶振或时钟发生器。2. 强化VCCA的滤波和隔离确保电容紧贴引脚。3. 修改引脚分配隔离PLLx_OUT相邻引脚。4. 检查PCB布局时钟线应远离噪声源并做好包地。时序分析失败fmax不达标1. 时序约束未正确设置。2. PLL生成的时钟频率过高超出器件性能。3. 逻辑设计本身关键路径过长。4. 跨时钟域路径未正确处理被工具误分析。1. 检查并确认create_clock和derive_pll_clocks约束已添加。2. 降低PLL输出频率或更换速度等级更高的器件。3. 使用TimeQuest报告定位关键路径进行逻辑优化或流水线分割。4. 对异步路径设置set_false_path或set_clock_groups。行为仿真正常但上板后功能异常1. 未使用locked信号作为系统复位释放条件。2. 相位偏移设置在实际硬件中与仿真模型有细微差异。3. 多时钟域接口的亚稳态问题在仿真中未暴露。1. 在代码中确保所有时钟域逻辑在locked有效后才开始运行。2. 在硬件上用示波器测量关键时钟相位关系与设计预期对比。3. 检查所有CDC路径确保使用了同步器如两级触发器。5.4 相位与占空比设置精度问题这是新手常困惑的地方。为什么我设置了90度相位偏移实际报告可能是87度或92度为什么占空比设置40%实际是37.5%相位偏移精度最小步长 VCO周期 / 8。例如VCO400MHz周期2.5ns最小相位步长2.5/80.3125ns。对于100MHz时钟周期10ns0.3125ns对应11.25度。因此100MHz时钟的相位偏移只能是11.25度的整数倍。软件会自动选择最接近你设定值的可实现值。占空比精度最小步长 50% / 后分频系数G。例如G4占空比精度50%/412.5%。所以可能的占空比是12.5% 25% 37.5% 50% 62.5% 75% 87.5%。无法实现40%或60%。软件同样会取最接近值。应对策略在MegaWizard中输入目标值后务必查看软件实际生成的参数报告Compilation Report - Fitter - PLL Usage确认实际的相位偏移ps和占空比%是否符合系统要求。如果精度不满足可能需要调整VCO频率或分频系数来改变精度基底。