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

ID 683243
日期 10/02/2023
Public
文档目录

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

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

下图显示了在一条特定路径上运行Report Timing的结果。运行Report Timing之后,您可以在Data PathWaveform选项卡上查看增量延迟。Waveform选项卡使您能够直观地引用Data Path数据以及原始的.sdc约束。您可以使用Waveform选项卡轻松地查看约束的应用方式和位置。

图 85. 报告时序(Waveform选项卡)
在下例中,设计包含一个通过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}]
图 86. 设置关系10ns
图 87. 保持关系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
图 88. 设置关系20ns

添加以下set_max_delay约束将明确地覆盖设置关系:

set_max_delay -from [get_registers {regA}] -to \
     [get_registers {regB}] 15

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

图 89. 使用set_max_delay

对于I/O,您必须添加set_input_delayset_output_delay约束,如下例所示。这些约束描述了FPGA设计外部连接到设计I/O端口的信号的延迟。

create_clock -period 10 [get_ports clk] 
# Clock used by the transfer, clock relationship is 10ns

# Setup constraints
set_output_delay -clock clk -max 1.2 [get_ports out] 
# Subtracted from Data Required Path as oExt
set_max_delay -from [get_registers B] 12 
# Sets latch edge time

# Hold constraints
set_output_delay -clock clk -min 2.3 [get_ports out] 
# Subtracted from Data Required Path as oExt
set_min_delay -from [get_registers B] 8 
# Sets latch edge time

这些约束的值是设计中一个外部寄存器与一个端口之间的外部信号延迟。set_input_delayset_output_delay-clock参数指定了外部信号所属的时钟域,或者连接到I/O端口的外部寄存器的时钟域。-min-max选项指定最坏情况或最佳情况延迟;不指定任何一个选项会导致最坏情况和最佳情况延迟相等。I/O延迟在Type栏中显示为iExt或者oExt,如下面的示例报告所示。

图 90. Reg-To-Output Same-Clock传输的设置时序裕量路径报告和波形
图 91. Reg-To-Output Same-Clock传输的保持时序裕量路径报告和波形

时钟关系是一个传输的启动时钟沿与锁存时钟沿之间的差异,时钟关系由时钟波形,多周期约束以及最小和最大延迟约束决定的。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延迟。