Intel® Quartus® Prime Pro Edition用户指南: Timing Analyzer

ID 683243
日期 4/13/2020
Public

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

文档目录

2.1.5.9. 将约束与时序报告相关联

理解时序分析报告中出现时序约束和违规的方式对于理解结果至关重要。以下示例显示了特定约束是如何影响时序分析报告的。 大多数时序约束仅影响时钟启动沿和锁存沿。具体来说,create_clockcreate_generated_clock创建具有默认关系的时钟。但是, set_multicycle_path异常会分别修改默认的设置和保持关系。set_max_delayset_min_delay约束是低级覆盖(low-level overrides),明确地指示出启动沿和锁存沿的最大延迟和最小延迟。

下图显示了在特定路径上运行Report Timing的结果。

在下例中,设计包含一个通过10 ns周期驱动源寄存器和目的寄存器的时钟。这产生一个10 ns的设置关系(launch edge = 0 ns, latch edge = 10ns)和0 ns的保持关系(launch edge = 0 ns, latch edge = 0 ns),命令如下:
create_clock -name clocktwo -period 10.000 [get_ports {clk2}]
图 52. 设置关系10ns,保持关系0ns
set_multicycle_path约束加入多个周期以放宽设置关系,或打开窗口,使得设置关系为20 ns,而保持关系仍为0 ns:
set_multicycle_path -from clocktwo -to clocktwo -setup -end 2
set_multicycle_path -from clocktwo -to clocktwo -hold -end 1
图 53. 设置关系20ns

set_max_delayset_min_delay约束显式覆盖设置关系。请注意,对于这些不同约束,唯一变化的是设置和保持分析的启动沿时间和锁存沿时间。每隔一行的项目都来自FPGA内部的延迟,并且对于给定的fit是静态的。查看这些报告以分析约束如何影响时序报告。

图 54. 使用set_max_delay

对于I/O,必须添加set_input_delayset_output_delay约束。这些约束描述了来自FPGA设计外部的信号的延迟,这些信号与此设计的I/O端口连接。这些约束的值是设计中外部寄存器与端口之间的外部信号延迟。set_input_delayset_output_delay-clock参数指定了外部信号所属的时钟域,或者连接到I/O端口的外部寄存器的时钟域。-min-max选项指定最坏情况或最佳情况延迟;不指定任何一个选项会导致最坏情况和最佳情况延迟相等。I/O延迟在Type列中显示为iExt或者oExt。一个示例是set_output_delay -max 1.0set_output_delay -min -0.5的一个输出端口。请参考"Creating Virtual Clocks"和"Creating I/O Constraints"来了解详细信息。

图 55. 使用set_min_delay

时钟关系是一个传输的启动时钟沿与锁存时钟沿之间的差异,时钟关系由时钟波形,多周期约束以及最小和最大延迟约束决定的。Timing Analyzer还将set_output_delay的值作为oExt值进行添加。对于输出,此值是Data Required Path的一部分 ,因为这是分析的外部部分。设置报告减去-max值,使设置关系更难满足,因为Data Arrival Path必须短于Data Required Path。Timing Analyzer还减去-min值。此减法是一个负数导致更具限制性的保持时序的原因。Data Arrival Path必须长于Data Required Path