目录
[3.1 Targets](#3.1 Targets)
[3.2 Options](#3.2 Options)
[3.1.1 Report](#3.1.1 Report)
[3.1.2 Path limits](#3.1.2 Path limits)
[3.1.3 Path display](#3.1.3 Path display)
[3.2 Advanced](#3.2 Advanced)
[3.2.1 Report](#3.2.1 Report)
[3.2.2 File Output](#3.2.2 File Output)
[3.2.3 miscellaneous](#3.2.3 miscellaneous)
[3.3 Timer Settings](#3.3 Timer Settings)
[3.4 共有部分](#3.4 共有部分)
[四、 设计示例](#四、 设计示例)
[4.1 设计工程](#4.1 设计工程)
[4.2 Report Timing报告](#4.2 Report Timing报告)
[4.2.1 General information](#4.2.1 General information)
[4.2.2 Settings](#4.2.2 Settings)
[4.2.3 Timing checks](#4.2.3 Timing checks)
一、前言
时序分析中,Report_timing_summary默认是对所有路径进行分析,当工程设计较大时,时序路径较多,想要查找指定时序路径的时序情况就不方便,此时就可以使用"Report Timing"功能,但"ReportTiming"不会报告"Pulse Width" (脉冲宽度)。
二、配置选项概览图
下图是Report Timing 中所有配置选项的结构图。
三、配置选项详解
下面,将对配置选项逐项进行解释。
3.1 Targets
最上面的Result name是设置名称,默认是"timing_x",如果会多次运行分析,x将从1开始计数的
Start points (From):设置时序路径的起点,可为网表Cells,时钟Clocks,引脚Cells pin和端口Ports,可同时设置多个,设置多个时符合其中任意一个都会进行分析,都符合则都进行分析
Transtion(Rise/Fall) :用于设置源时钟边沿(上升沿/下降沿)。
Through Points (Through) : 设置路径的中间经过单元,可为网表Cells,线Nets,引脚Cells pin。可同时设置多个,设置多个时会对分析所有的对象。
Endpoints (To): 设置时序路径的终点,可为网表Cells,时钟Clocks,引脚Cells pin和端口Ports,可同时设置多个,设置多个时符合其中任意一个都会进行分析,都符合则都进行分析
时钟。
3.2 Options
3.1.1 Report
Path delay type: 设置运行分析的类型,可设为min,max,min_max,综合阶段和实现阶段默认max和min都会分析,如果选择min,则只进行hold和removal分析
Report unconstrained paths:该选项默认勾选,对无约束的路径进行报告,当使用tcl命令report_timing_summary时是不会打开该配置
3.1.2 Path limits
**Number of paths per clock:**控制每个时钟组或路径组的最大数目,等效的tcl命令为-max_paths
**Number of per endpoint:**控制每个路径终点的最大路径数,该值一定是小于或等于maximum number of paths per clock or path group的值,等效的tcl命令为-nworst
**Limits paths to group:**设置每个时钟组的路径数,每个时钟属于一个时钟组
3.1.3 Path display
**Display paths with slack greater than:**通过路径的slack值进行过滤,设置所能显示的slack值的最小值
Display paths with slack less than:通过路径的slack值进行过滤,设置所能显示的slack值的最大值
Significant digits:控制报告中数字显示的精度,默认是3位小数
Sort paths by:设置按组(默认) 还是按裕量slack来显示报告的路径。如果按组排序, 报告中会包含每个组和每种分析类型 (-delay_type min/max/min_max) 的 N 条(Number of per endpoint的设置值)最差的路径,最差的违例的组排在最前面。如果按裕量排序, 将按分析类型报告 N 条最差的路径(所有组已组合在一起), 并按裕量值升序排序。等效的 Tcl 选项为-sort_by。
3.2 Advanced
3.2.1 Report
Report from cells:指定报告的时序路径都经过设置的cells,该cells可以是起点,终点或中间部分
Show input pins in path:勾选后会显示时序路径上每个单元的输入引脚
Report number of routable nets:勾选后只报告布线成功net的
**Report unique pins:**勾选后,对于每一组引脚(起点和终点)仅展示一条时序路径
Report user ignored paths:勾选后将不会报告Unconstrained paths内容
3.2.2 File Output
Export to file:默认的时序报告结果是写入时序窗口中,可以指定导出到指定的文件,写入时可以指定时覆盖overwrite或追加append写入
Interactive report file:以赛灵思RPX格式写入指定名称的文件中,RPX文件是一个包含所有报告信息的交互式报告,可以被重载入内存中
3.2.3 miscellaneous
Ignore command errors:直接执行命令,会忽略命令中的错误也不会返回错误信息,等效的tcl命令为-quiet
Suspend message limits during command execution:暂时性的忽略任何信息显示限制的设置,返回所有信息,等效的tcl命令为-verbose
3.3 Timer Settings
Interconnect:用于控制net的时延值的计算方式,可以是评估的cell间的布线距离,实际的布线或者时序分析时移除net的时延。默认情况下,综合后阶段是用估算的net延时值,实现阶段后是用实际的net时延。可以设置值:actual,estimated,none
Estimated:对于未布局的单元cells,走线时延值是用最可能的布局情况下的值,会考虑driver和load以及扇出;对于已经布局的cells,走线时延是基于driver和load的距离以及扇出
actual:对于已经布线的net,走线时延是和实际硬件走线的时延一致
none:不考虑走线时延,等效走线时延值为0
Speed grade:设置器件的速度等级,通常情况下该值和工程创建时设置的速度一致,也可以不需要重新运行综合和实现,直接改变速度等级进行时序分析,等效的tcl命令为 set_speed_grade
Multi-corner configuration:指定fast/slow corner(可以理解为芯片运行的外部环境的好坏)下分析的路径时延类型,可以为none,min,max,min_max
Disable flight delays:勾选后时序分析不会考虑I/O端口的封装时延,
3.4 共有部分
Command:根据当前配置选项的情况自动生成对应的tcl命令
Open in a New Tab:勾选后在一个新的tab中显示结果,原先的tab标签结果保留,不勾选则会覆盖原有的结果
Open in Timing Analysis Layout:勾选后时序分析中以"Timing Analysis"的布局方式呈现结果
四、 设计示例
4.1 设计工程
module report_timing(d1,I1,I2,I3,clk1,clk2,clk3,ce,out1,out2);
input d1,I1,I2,I3,clk1,clk2,clk3,ce;
output out1,out2;
reg ff0,out1,out2;
wire result;
always@(posedge clk1,negedge ce)
begin
if(!ce)
ff0<=0;
else begin
ff0<=d1;
end
end
assign result=ff0&ff0;
LUT4 #(
.INIT(16'h0810) // Specify LUT Contents
) LUT4_inst (
.O(o_lut), // LUT general output
.I0(result), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3) // LUT input
);
always@(posedge clk2,negedge ce)
begin
if(!ce)
out1<=0;
else
out1<=o_lut;
end
always@(posedge clk3)
begin
if(!ce)
out2<=0;
else
out2<=o_lut;
end
endmodule
时序约束
create_clock -period 10.000 -name clk1 -waveform {1.000 6.000} [get_ports clk1]
create_clock -period 8.000 -name clk2 -waveform {0.000 4.000} [get_ports clk2]
create_clock -period 8.000 -name clk3 -waveform {0.000 4.000} [get_ports clk3]
4.2 Report Timing报告
Exception报告包含四个部分:General information,Settings,Timing Checks;
4.2.1 General information
与其他时序报告类似,General information主要包含一些基本信息,报告类型,设计模块名称,器件信息,Vivado版本,报告生成时间,报告生成对应的tcl命令
4.2.2 Settings
Settings中显示了生成报告前的配置选项界面的设置,也是分Targets,Report Options,Advanced,Timer Settings四类来展示
4.2.3 Timing checks
在使用默认配置时,结果和report_timing_summary的报告结果一致,除了无pulse_width的内容,下图是上述设计默认配置下的报告
将End points设为clk3,报告只有destination clock为clk3的路径
将sort paths by设为slack,则报告结果按slack来展示
将slow/fast corner下的延时类型都设为min
则报告只有hold分析