Vivado时序报告六:Report Timing详解

目录

一、前言

二、配置选项概览图

三、配置选项详解

[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分析

相关推荐
十三啊嘞2 天前
Vivado安装System Generator不支持新版Matlab解决方法
fpga·vivado
别出BUG求求了7 天前
Vivado生成比特流时opt_design跑了很久;Vivado Implementation缺少一些逻辑的实现;一些逻辑被优化
vivado·实现
知识充实人生21 天前
时序约束进阶六:Set_Clock_Groups详解
fpga开发·时序分析·时序约束·时钟组·set_clock_group·exclusive
YprgDay22 天前
《FPGA开发工具》专栏目录
fpga开发·modelsim·vivado·ise·lattice
白码王子小张25 天前
Matlab Simulink HDL Coder 时钟束信号生成
matlab·fpga开发·fpga·vivado·xilinx·simulink
晓晓暮雨潇潇1 个月前
Xilinx IP核(3)XADC IP核
fpga开发·vivado·xadc·ip核
FPGA狂飙1 个月前
FPGA 常用 I/O 电平标准有哪些?
信号处理·verilog·fpga·vivado·xilinx
晓晓暮雨潇潇1 个月前
FPGA开发技能(9)快速生成约束XDC文件
python·fpga开发·cadence·vivado
爱奔跑的虎子2 个月前
FPGA实现以太网(一)、以太网基础知识
fpga开发·以太网·fpga·vivado
爱奔跑的虎子2 个月前
详解CRC校验原理以及FPGA实现
fpga开发·vivado·xilinx·数字逻辑通信