Vivado时序报告五:Report Exceptions详解

目录

一、前言

二 Report Exceptions

2.1 配置界面

2.2 设计示例

2.3 Exception报告

2.3.1 General information

2.3.2 Summary

2.3.3 Exceptions

2.3.4 Ignored Objects


一、前言

        时序约束中,有一类约束属于Exceptions类,之所以称为Exceptions(例外)是指约束后进行时序分析时与默认的边沿选取不同,包含set_multicycle_path/set_false_path/set_max_dealy/set_min_delay四种约束。在运行时序分析时,Report Exceptions即是专门针对涉及Exceptions的路径进行报告,并且还会报告clk group约束,通过时序例外约束报告可以获取以下信息。

a) 设计中设置的所有影响时序分析的时序例外约束

b) 设计中设置的因被其他时序例外覆盖而不影响时序的时序例外约束

       有些设计存在着复杂的时序例外约束,同时时序例外约束的优先级规则较多,通过时序例外报告可以用于调试时序例外相关的问题。

二 Report Exceptions

2.1 配置界面

通过菜单栏的Reports->Timing->Report Exceptions可以进入到报告的配置界面

 

配置界面主要有Targets和Options两部分组成

 

Results Name:设置Exceptions报告的名称

Start Points:指定生成Exceptions报告的时序路径起点,类型可为Cells,Clocks,Cell Pins,I/O Port四种

Transition:指定start points的上升沿/下降沿或两个边沿都有效

 

Through Points:指定时序分析路径中间经过的对象,可为Nets,Cells,Cell Pins三类

 

End Points:指定时序分析路径的终点,类型可为Cells,Clocks,Cell Pins,I/O Port四种,同样也可以在Transition设置对象生效的边沿rise/fall

Options界面如下图

 

Coverage:报告是否包含所有时序例外,

File Output:用于设置是否将报告结果导出为txt文件,默认不导出。如果勾选了设置导出文件路径后,默认选择Overwrite,即如果存在报告文件,则新的报告内容直接覆盖原有的内容,如果选择Append则在原来内容后面追加新的报告内容

Ignore command errors (quiet mode):勾选后将会忽略运行报告时遇到的错误

Suspend message limits during command:勾选后将会忽略运行报告时的信息输出限制

Command:根据上述的配置自动生成对应的tcl命令

Open in a new tab:勾选后每执行一次分析会打开一个新的窗口,默认勾选,下图是勾选后执行了两次分析生成的两个tab。

 

Open in Timing Analysis layout:勾选后在生成报告的同时会打开Device窗口,默认不勾选

 

2.2 设计示例

module report_exception(d1,d2,d3,d4,clk1,clk2,clk3,ce,ff_min,ff_max,ff_false,ff_multi,out,out_group);
input d1,d2,d3,d4,clk1,clk2,clk3,ce;
output ff_min,ff_max,ff_false,ff_multi,out,out_group;
reg ff_min,ff_max,ff_false,ff_multi,out,out_group;
wire result;
always@(posedge clk1,negedge ce)
begin
if(!ce)
ff_min<=0;
else begin
ff_min<=d1;
ff_max<=d2;
ff_multi<=d3;
ff_false<=d4;
 end
end
assign result=ff_min+ff_max+ff_false+ff_multi;
always@(posedge clk2,negedge ce)
begin
if(!ce)
out<=0;
else 
out<=result;
end

always@(posedge clk3,negedge ce)
begin
if(!ce)
out_group<=0;
else 
out_group<=result;
end
endmodule

2.3 Exception报告

Exception报告包含四个部分:General information,Summary,Exceptions,Ignored Objects;

2.3.1 General information

与其他时序报告类似,General information主要包含一些基本信息,报告类型,设计模块名称,器件信息,Vivado版本,报告生成时间,报告生成对应的tcl命令

 

2.3.2 Summary

summary中根据Exception类型对设置的约束,约束如下

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]
set_false_path -from [get_pins ff_false_reg/C] -to [get_pins out_reg/D]
set_multicycle_path -from [get_pins ff_multi_reg/C] -to [get_pins out_reg/D] 3
set_max_delay -from [get_pins ff_max_reg/C] -to [get_pins out_reg/D] 2.000
set_min_delay -from [get_pins ff_min_reg/C] -to [get_pins out_reg/D] 3.000
set_clock_groups -name clk3_group -asynchronous -group [get_clocks clk3]
set_max_delay -datapath_only -from [get_pins ff_min_reg/C] -to [get_pins out_reg/D] 4.000

报告如下,按照时序例外约束类型分类进行

 

其中Ignored Constraints中Clock Groups为1,是由于设置的clock_group约束无有效的时序路径

 

2.3.3 Exceptions

Exceptions中显示各类型约束命令的内容详情,Position为约束命令所在约束文件中的行数

 

Status显示约束命令的状态,为空表示约束生效,如果约束的路径对象不存在或约束被覆盖也会显示说明,例外上述set_false_path约束改成如下约束

set_false_path -to [get_pins out_reg/D]

结果如下,Min delay约束即被约束文件中第3行的false path约束覆盖,FP表示false path,其他类似的简写含义,MCP:multicycle path,MXD:max delay,MND:min delay,CG:clock group

 

约束设置了无效起点的status

 

部分约束被覆盖

 

2.3.4 Ignored Objects

        Ignored Objects报告是用于显示时序例外约束中约束的无效起点,终点,Vivado通常会直接忽略这些无效的对象,以下面约束为例,set_false_path和set_multicycle_path约束将触发器的所有引脚设为了起点

set_false_path -from ff_max_reg/*
set_multicycle_path -from [get_pins ff_multi_reg/*] 3

报告如下,除了时钟引脚有效外,其他4个引脚都属于无效的起点

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA芯中的小蚂蚁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值