为同步元件禁用 X 传输 - 2023.2 简体中文

Vivado Design Suite 用户指南: 逻辑仿真 (UG900)

Document ID
UG900
Release Date
2023-10-18
Version
2023.2 简体中文

如果时序仿真期间发生时序违例,那么锁存器、寄存器、RAM 或其他同步元件的默认行为是向仿真器输出 X。发生此操作的原因是实际输出值未知。寄存器的输出可能:

  • 保留其原始值
  • 更新至新的值
  • 进入亚稳态,在此情况下,直至同步元件完成时钟设置并经过一段时间之后,方能得到确定的值

由于无法确定该值,无法保证仿真结果准确,因此元件会输出 X 表示未知值。X 输出会保留至下一个时钟周期,在此时钟周期内如果未再次发生违例,下一个时钟设置的值就会更新此输出。

X 输出的存在会对仿真产生显著影响。例如,某个寄存器生成的 X 可能会传输至后续时钟周期的其他寄存器。这可能导致大部分受测设计变为未知。

要纠正生成的 X,请执行以下操作:

  • 在同步路径上,分析路径并修复与此路径或其他路径关联的所有时序问题,以确保工作电路正常。
  • 在异步路径上,如果无法以其他方式避免时序违例,请在时序违例期间使用 ASYNC_REG 属性禁用同步元件上的 X 传输。

禁用 X 传输后,在寄存器输出时会保留先前的值。在实际硅片中,寄存器可能已更改为“新的”值。禁用 X 传输产生的仿真结果可能与硅片行为不匹配。

警告:
使用该选项时请谨慎实践。仅当您无法以任何其他方式避免时序违例时,才能使用该选项。