Intel® Quartus® Prime Pro Edition用户指南: 设计建议

ID 683082
日期 9/28/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

2.2.2.2. 避免意外的锁存器推断(Avoid Unintended Latch Inference)

避免使用锁存器以确保能够对设计的时序性能和可靠性进行完整分析。 锁存器是一种小型电路,包含组合反馈,此组合反馈在分配一个新值之前保持值不变。您可以使用 Intel® Quartus® Prime Text Editor或者Block Editor实现锁存器。

HDL代码中的一个常见错误是意外的锁存器推断;如果发生这种情况, Intel® Quartus® Prime Synthesis会发出警告消息。与其他技术不同,FPGA体系结构中的锁存器并不显著小于寄存器。然而,此体系结构并未针对锁存器实现进行优化,并且与等效的寄存电路相比,锁存器的时序性能通常较慢。

锁存器有一个透明模式,在此模式中其数据从输入连续流向输出。当使能信号为高时,正锁存器处于透明模式(当使能信号为低时,负锁存器处于透明模式)。在透明模式下,由于创建了直接路径,输入上的毛刺可能会传递到输出。这为时序分析带来了极大的复杂性。典型的锁存器方案使用多个使能阶段,以防止出现较长的透明路径。但是,时序分析无法识别这些安全的应用程序。

默认情况下,Timing Analyzer将锁存器分析为在正锁存器信号的下降沿上计时的同步单元。Timing Analyzer使您能够将锁存器视为具有不透明的起点和终点。请注意,即使是通过透明模式的瞬时跳变也可能导致毛刺传播。Timing Analyzer不能执行循环借用分析。

由于各种时序复杂性,锁存器对正式验证工具的支持有限。因此,对于包含锁存器的设计,您不应依赖于正式验证。