You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quartus同步器MTBF分析问题:无法计算MTBF的配置问询

Quartus异步同步器MTBF分析配置方案

针对你遇到的Quartus无法对同步器链执行MTBF分析的问题,你的推测方向是正确的——确实需要通过虚拟时钟+输入延迟约束+同步器标记来完成配置,结合正交编码A/B相信号的场景,具体步骤如下:

1. 定义虚拟时钟

根据你已知的信号最小转换间隔(对应最大翻转频率),创建虚拟时钟作为异步输入信号的时序参考:

# T_min为信号最小转换间隔,单位ns
create_clock -name virt_async_clk -period <T_min>

这个虚拟时钟不需要绑定到任何物理端口,仅用于标记异步输入的翻转频率,是MTBF计算的核心参数之一。

2. 标记同步器寄存器

Quartus需要明确识别同步器链中的寄存器才能启动MTBF分析,使用set_synchronizer_registers命令标记同步器的各级寄存器(比如2级或3级同步链的寄存器):

# 假设同步器寄存器命名为sync_A_stage1、sync_A_stage2、sync_B_stage1、sync_B_stage2
set_synchronizer_registers [get_registers {sync_A_stage* sync_B_stage*}]

该命令同时会阻止工具对这些寄存器进行优化或重定时,符合你之前的需求。

3. 设置输入延迟约束

以虚拟时钟为参考,给正交编码A/B相输入端口设置输入延迟,这里的延迟值需要结合输入信号的上升/下降时间、板级传输延迟来确定:

# -max 对应输入信号的最大延迟,-min 对应最小延迟,根据实际硬件参数填写
set_input_delay -clock virt_async_clk -max <t_max_delay> [get_ports {A B}]
set_input_delay -clock virt_async_clk -min <t_min_delay> [get_ports {A B}]

这一步是让工具明确异步输入相对于虚拟时钟的时序关系,为亚稳态概率计算提供依据。

4. 修正set_false_path约束

你之前对所有I/O设置set_false_path的操作会覆盖同步器的时序分析,需要调整约束范围:

  • 仅对异步输入端口到第一级同步寄存器的路径设置false path(因为这是跨时钟域的异步路径)
  • 保留同步器链内部(第一级到第二级、第二级到第三级)的路径约束,不能设置false path

示例:

# 仅对输入到第一级同步寄存器设置false path
set_false_path -from [get_ports {A B}] -to [get_registers {sync_A_stage1 sync_B_stage1}]
# 同步器内部路径不设置false path,让工具分析时序

验证配置

完成上述步骤后,重新执行Quartus的时序分析,工具会识别到指定的同步器链,并基于虚拟时钟的频率、输入延迟参数计算MTBF值。

内容的提问来源于stack exchange,提问作者artless-noise-bye-due2AI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:37:17