在 Quartus 中分析同步器 MTBF

问题描述 投票:0回答:1

我收到来自 Quartus 的消息,它发现了同步器链,但无法对其执行 MTBF 分析。然而,除了如何识别同步器之外,手册中没有真正解释任何内容,因此该工具不会优化或重新定时它们。

到目前为止,所有I/O都已使用

set_false_path

我最好的猜测是,

  1. 我找到输入的上升/下降时间。
  2. 我创建了虚拟时钟来指示输入切换的频率。

据此,该工具可以推导出亚稳定概率,然后从链的长度推导出复合概率是多少。

Info (332114): Report Metastability: Found 12 synchronizer chains.
    Info (332114): The design MTBF is not calculated because there are no specified synchronizers in the design.
    Info (332114): Number of Synchronizer Chains Found: 12
    Info (332114): Shortest Synchronizer Chain: 2 Registers
    Info (332114): Fraction of Chains for which MTBFs Could Not be Calculated: 1.000
    Info (332114): Worst Case Available Settling Time: 8.863 ns

带有

set_input_delay
和虚拟时钟的 SDC 文件是执行此操作的方法吗?消息“设计中没有指定的同步器”并没有告诉您如何指定同步器,而且我不明白它如何计算 MTBF,除非它知道信号可能转换的时间频率。 我看过手册和烹饪书。这本烹饪书似乎描述了真正的同步 I/O,而不是异步输入的同步器。在我的特定实例中,我有一个正交编码的 A/B 相,我可以在它们变化时对其进行采样。我想确保链条的大小足以适应信号的上升和下降。我还知道转换之间的最短时间(由最大速度决定),我认为这是虚拟时钟周期。

fpga quartus intel-fpga
1个回答
0
投票

其中一些确实是假同步器,并且它们被禁用,

set_instance_assignment -name SYNCHRONIZER_IDENTIFICATION OFF -to register_name

“register_name”列在“Report Metastability”输出中的“Synchronization Node”下。

信息可以在第 3 章或“Quartus 设计建议”中找到。阅读 PDF,而不是通过谷歌搜索网页结果。 PDF 的顺序在网页中不明显。 一种机制是为寄存器/触发器指定 SYNCHRONIZER_TOOGLE_RATE。

如果我有以下情况,

set_instance_assignment -name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS -to register_name set_instance_assignment -name SYNCHRONIZER_TOGGLE_RATE 32000 -to register_name

并且主输入引脚有
set_false_path()

,该工具给出了亚稳态报告,但我相信它是假的。更改速率并使用

FAST_INPUT_REGISTER ON
不会更改报告。所以,我认为亚稳态仅适用于时钟域交叉(或同步 I/O)。
论文

Understanding Metastability in FPGAs

似乎表明某些触发器比其他触发器具有更好的亚稳态常数,并且这是由工艺等控制的。I/O单元触发器具有最佳属性似乎是合理的。但是,我没有这方面的文档,也无法让计时工具来表明任何差异。 当我尝试使用

set_input_delay()

的虚拟时钟时,装配报告表明切换率是假的。

    

© www.soinside.com 2019 - 2024. All rights reserved.