您好,欢迎光临凡亿教育!
服务热线:15989478308(同微信)

MIG系统时钟和参考时钟为何不能混用?

发表时间:2026-08-26 14:42:10

MIG系统时钟和参考时钟为何不能混用?

MIG系统时钟和参考时钟为何不能混用?封面技术图
MIG配置界面把System Clock和Reference Clock分开,并不是同一个时钟的两种叫法。系统时钟服务于控制器和内部时钟生成,参考时钟则给延迟校准等专用资源提供基准;它们对频率、缓冲类型、引脚资源和抖动都有各自要求。把端口名看成“都接一个clk就行”,常见结果不是编译报错,而是锁相或校准阶段停住。

Block Design里同时出现sys_clk_i、clk_ref_i和ui_clk,三个名字都带clk。新手很容易把它们接到同一个网络,或者把ui_clk当成外部输入。设计能够综合并不代表连接正确,真正的问题往往在上板后才暴露:MMCM不锁定、复位释放异常,或者init_calib_complete迟迟不拉高。

01先把三个时钟按消费者分开

System Clock是MIG的输入系统时钟,进入控制器的内部时钟结构,用于生成存储器接口和用户侧所需时钟。它的允许周期与存储器速率、器件系列和MIG配置有关。配置页中的Input Clock Period不是随便填一个板上晶振频率,而是在告诉IP实际送入的系统时钟是什么。

MIG系统时钟和参考时钟为何不能混用?配图1:MIG的Input Clock Period定义送入控制器的系统时钟周期,需与真实时钟一致。
MIG的Input Clock Period定义送入控制器的系统时钟周期,需与真实时钟一致。

Reference Clock服务于专用延迟和校准资源,在不同器件和MIG架构中用途细节会变化,但它不是用户逻辑时钟的替代品。ui_clk则是MIG校准并建立内部时序后输出给用户逻辑的时钟,AXI接口和与MIG同步的逻辑通常应工作在ui_clk域。一个是外部输入,一个是校准基准,一个是IP输出,方向已经决定了不能互换。

02配置页为什么还要选择Buffer

MIG会询问System Clock和Reference Clock是差分、单端还是不再插入缓冲,背后对应的是实际引脚、时钟缓冲和上层连接方式。若板级时钟直接进入MIG,选择应与物理接口一致;若时钟已经经过Clocking Wizard或全局缓冲,再让MIG重复插入不匹配的缓冲,可能造成结构冲突。No Buffer也不等于“不需要时钟资源”,而是表示外部已完成对应处理。

MIG系统时钟和参考时钟为何不能混用?配图2:System Clock与Reference Clock分别配置输入形式和缓冲方式,复位极性也在同一页确认。
System Clock与Reference Clock分别配置输入形式和缓冲方式,复位极性也在同一页确认。

相同的板载振荡源可以经过合规的时钟结构分配给多个消费者,但不能因为来源相同就忽略端口各自要求。需要核对MIG生成文档、器件时钟资源和约束,确认频率、相位关系、抖动、缓冲以及可用引脚。若两个端口允许同源,也应通过明确的时钟树连接,而不是在顶层凭名字短接。

03配置顺序决定后面是否对得上

先确定存储器器件、数据位宽与目标速率,再根据MIG给出的允许范围选择系统输入周期;随后配置System Clock、Reference Clock、复位极性和引脚。等IP生成后,再在Block Design里把外部时钟、Clocking Wizard、复位模块和MIG逐一对照。倒过来先画BD、后猜MIG参数,端口名虽然能连上,频率关系却很容易错。

MIG系统时钟和参考时钟为何不能混用?配图3:Clocking Wizard生成MIG所需时钟时,要核对输入来源、输出频率、抖动优化和locked信号。
Clocking Wizard生成MIG所需时钟时,要核对输入来源、输出频率、抖动优化和locked信号。

04上板不校准,沿着状态链定位

第一层看外部输入:示波器或时钟资源报告确认系统时钟确实到达指定引脚,频率与约束一致。第二层看时钟生成:Clocking Wizard或MIG内部MMCM的locked是否成立。第三层看复位:sys_rst极性是否与配置匹配,复位释放是否同步到正确时钟域。第四层才看存储器校准完成信号和引脚约束。

如果locked正常而校准不完成,再查Reference Clock、DDR引脚分组、IO标准、终端和板级连接;如果locked本身不成立,先不要把精力放在AXI读写代码上。AXI逻辑只在MIG已经建立ui_clk并完成校准后才有讨论价值。把状态链分层,比反复重生IP更快。

MIG系统时钟和参考时钟为何不能混用?配图4:完整BD中,外部时钟、复位、MIG的sys_clk_i与clk_ref_i以及ui_clk各有明确方向。
完整BD中,外部时钟、复位、MIG的sys_clk_i与clk_ref_i以及ui_clk各有明确方向。

05跨域逻辑别偷用外部时钟

用户逻辑若直接用板载时钟驱动,却同时与MIG的AXI接口交互,就形成了新的时钟域交叉。应以ui_clk驱动同域逻辑,或使用规范的异步FIFO、握手和同步器跨域。ui_clk频率看起来可能与某个外部时钟相同,也不能据此认定两者同相同域。

MIG时钟问题的本质,是把“频率相同”误当成“角色相同”。系统时钟提供运行基础,参考时钟提供校准基准,ui_clk提供用户接口时序。把角色、方向和资源一一对应,初始化问题才会从玄学变成可检查的连接表。

声明:


本文由凡亿教育整理,转载请注明来源!

投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207