Vivado时序报告五:Report Exceptions详解

VIVADO时序报告异常诊断:从约束、设计到工具的全流程排查指南 静态时序分析(STA)是数字电路设计,特别是FPGA开发中确保电路功能正确与性能达标的核心验证手段。其原理是通过建立时间和保持时间等时序模型,在特定工艺、电压和温度条件下,对信号在寄存器间的传播延迟进行最坏情况分析,以识别潜在的时序违例。这项技术的价值在于,它能在流片或硬件部署前,提前发现由路径延迟、时钟偏移等因素引起的功能故障风险,是保障芯片可靠性的关键环节。在FPGA设计流程中,STA广泛应用于从代码综合、布局布线到生成比特流的各个阶段,尤其在高性能计算、高速通信等对时序敏感的领域不可或缺。然而,当使用 阅读详情

目录

一、前言

二 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个引脚都属于无效的起点

 

vivado时序分析 实例 vivado时序分析实例建立余量保持余量 建立余量 保持余量 阅读详情

相关推荐

vivado时序约束

1.时钟周期约束 基础时钟 周期为10ns的基础时钟 create_clock -period 10 [get_ports sys_clk] 生成时钟 生成时钟为通过组合逻辑自己生成的时钟驱动。(MMCM、PLL、BUFR输出的时钟不是生成时钟,vivado会自动识别,不需要额外约束)。 如图是经典二分频生成时钟,其输出的时钟约束应当为: create_generated_clock -name clkdiv2 -source [get_ports clkin] -divide_by 2 [get_pi

qq_42322644的博客 1万+

如何阅览vivado工程的时序分析报告——建立时间

本文介绍如何阅览vivado工程的时序分析报告

BIGMAC的博客 1万+

FPGA时序约束--实战篇(读懂Vivado时序报告)

本文将详细介绍如何读懂Vivado时序报告,包括报告的基本结构和如何分析报告。

mengzaishenqiu的博客 1万+

Vivado操作之时序约束介绍

介绍使用Vivado进行时序约束相关操作

zyp626的博客 9362

告别GUI点点点!用Tcl脚本玩转Vivado时序分析:从report_timing_summary到自动化报告生成

本文详细介绍了如何利用Tcl脚本在Vivado中实现高效的时序分析自动化,从基础的`report_timing_summary`命令到高级参数配置、报告解析和自动化流程集成。通过Tcl脚本替代GUI操作,开发者可以提升时序分析效率,实现批处理、结果自动解析和多场景对比,特别适合复杂FPGA设计的中高级用户。

dengyiyu5280的博客 654

Vivado时序路径报告保姆级解读:从Slack到Clock Uncertainty,手把手教你定位时序违例元凶

本文深入解析Vivado时序路径报告,从Slack异常到时钟优化的完整诊断方法。通过三层诊断法、数据路径剖析和时钟路径问题排查,手把手教你定位时序违例的根本原因,并提供实战案例和优化策略,帮助FPGA工程师快速解决时序收敛挑战。

cizhiyou2391的博客 446

vivado产生报告阅读分析6-时序报告2

vivado产生报告阅读分析6-时序报告2

cckkppll的博客 3222

Vivado时序报告看不懂?手把手教你拆解时序路径报告里的关键信息(附实战案例)

本文详细解析Vivado时序报告中的关键信息,包括Slack、Clock Skew等核心指标,并提供实战案例帮助FPGA开发者快速定位和解决时序问题。通过拆解时序路径报告,掌握优化组合逻辑、时钟网络和数据路径的技巧,提升设计效率。

cizhiyou2391的博客 506

时序例外_Timing Exceptions_ 综述

1.什么是时序例外 默认设置情况下,逻辑功能的时序不正确。 2.如何解决时序例外 使用时序例外命令去解决时序例外,时序例外命令如下: set_multicycle_path:表明数据form the start of the path to the end of the path传播需要多少个时钟周期。 set_false_path:表明该路径不需要时序分析。 set_max_dela...

flypassion的博客 1796

超越基础约束:用Vivado时序例外(Exceptions)优化你的FPGA设计性能与面积

本文深入探讨了如何利用Vivado时序例外(Exceptions)优化FPGA设计的性能与面积。通过False Path、Multicycle Path和Max/Min Delay等高级约束技巧,工程师可以精准控制设计细节,显著提升时钟频率、减少资源使用并缩短编译时间。文章提供了详细的约束策略和调试技巧,帮助读者掌握这一区分普通设计与卓越设计的关键技术。

weixin_30296405的博客 455

FPGA时序约束实战:set_false_path原理、场景与Vivado应用详解

静态时序分析(STA)是数字电路设计验证的核心环节,它通过计算信号传播延迟与时钟周期的关系,检查建立时间和保持时间是否满足。在FPGA等可编程逻辑器件中,时序收敛直接影响电路性能和可靠性。然而,并非所有逻辑路径都适用于同步时序分析,例如跨时钟域(CDC)信号传输,由于源时钟与目标时钟异步,其相位关系不确定,用固定时钟周期衡量这类路径的时序毫无意义。此时,set_false_path约束成为关键工程手段,它指示STA工具忽略指定路径的时序检查,避免产生虚假违例报告,让工程师聚焦真实关键路径。该技术广泛应用于异

weixin_34337381的博客 377

读懂Vivado时序报告:FPGA时序收敛的核心能力

时序报告是FPGA数字电路时序分析的权威依据,其本质是基于布局布线后RC参数的信号传播路径建模。理解WNS(最差负余量)、TNS(总负余量)、Endpoint/Startpoint以及时钟域关系,是定位建立时间违规与跨时钟域问题的技术基础。该报告直接反映逻辑延迟、布线延迟与约束匹配度,决定RGMII、MIPI等高速接口能否稳定工作,也影响数码管等低速模块的亚稳态行为。掌握Timing Summary、Timing Paths、Clock Networks三类核心视图的协同解读方法,可系统性提升时序收敛效率,

weixin_34166847的博客 352

Vivado时序约束进阶:如何正确约束PLL衍生时钟与自定义分频时钟?

本文深入探讨了Vivado中PLL衍生时钟与自定义分频时钟的时序约束方法。针对FPGA设计中常见的时序违例与系统不稳定问题,文章详细解析了如何主动使用`create_generated_clock`命令精确约束时钟,避免依赖工具自动推导,并通过实战案例揭示了未约束分频时钟可能引发的隐蔽风险,为工程师提供了一套可靠的时序约束进阶实践指南。

weixin_29164091的博客 327

vivado产生报告阅读分析13-时序报告9

vivado产生报告阅读分析13-时序报告9

cckkppll的博客 294

FPGA时序报告解读:从WNS负值到稳定收敛的实战指南

静态时序分析(STA)是FPGA数字电路可靠运行的基础技术,其核心在于理解建立时间与保持时间约束原理,以及工具如何建模路径延迟、时钟偏斜和IO特性。Vivado时序报告作为STA结果的可视化载体,承载着设计意图与物理实现之间的关键映射关系。掌握报告中WNS、TNS、路径组、单元延迟和约束覆盖率等要素,不仅能定位RGMII接口、数码管扫描、FIR滤波器等典型模块的时序瓶颈,更能指导SDC约束优化与板级闭环校准。本文聚焦FPGA时序报告解读方法论,结合Vivado实际输出与工程案例,帮助工程师将红色警告转化为可

weixin_34246551的博客 417

Vivado时序约束实战:从Constraints Wizard到XDC文件全流程解析

本文详细解析了Vivado时序约束的全流程,从使用Constraints Wizard快速建立基础约束框架,到手动编辑XDC文件实现进阶约束。内容涵盖时钟约束、I/O延迟约束、时序例外处理等核心技巧,并提供了实用的调试方法和验证步骤,帮助FPGA设计者有效解决时序问题。

wentao365的专栏 373

时序报告全绿仍不能放心:先检查未约束路径和时钟定义

依据AMD Vivado官方资料,检查未约束路径、时钟定义、I/O延迟和时序例外,避免仅凭非负WNS判断设计时序已完整收敛。

hxy_programmer的博客 277

【深度学习】肺结节分割项目实战一:处理数据集

一、LIDC-IDRI数据集简介 官方网站 肺图像数据库协会的图像收集(LIDC-IDRI)包括诊断和带有病变注释标记的肺癌筛查胸部CT。这是一个网络公开的国际资源,用于肺癌检测和诊断的计算机辅助诊断(CAD)方法的开发、培训和评估。 数据集包含1018个病例,每个病例包括来自临床胸部CT扫描的图像和一个相关的XML文件,该文件记录了由四名经验丰富的胸部放射科医生进行的两阶段图像注释过程的结果。在最初的盲读阶段,每个放射科医生独立审查每个CT扫描,并标记出属于三种类型之一的病变(“结节>= 3mm”,

weixin_42182906的博客 1万+

FPGA时序分析全链路:Vivado与Quartus II约束实战与收敛技巧

静态时序分析(STA)是数字电路设计中不依赖激励的时序验证方法,通过SDC约束描述时钟、输入输出延迟等时序要求,确保建立时间和保持时间满足。其技术价值在于提前发现时序违例,避免上板失败。在FPGA开发中,Vivado和Quartus II是两大主流工具链,但SDC语法和默认行为存在差异,导致约束不生效或时序不收敛。典型应用场景包括高速接口设计、跨时钟域处理和IP核集成。本文围绕Vivado与Quartus II的时序约束、静态时序分析、工程清理、环境配置及IP核使用等高频痛点,结合实战案例,系统讲解从约束编

weixin_33937778的博客 399

遥感新手别纠结!实测ENVI 5.3、5.6、6.0三个免费版,教你混搭安装避坑

本文为遥感新手提供ENVI 5.3、5.6、6.0三个免费版的实测对比与混搭安装指南,帮助用户构建零成本高效工作流。详细解析各版本功能差异、共存安装技巧及常见问题解决方案,特别适合课程作业、毕业论文分析和遥感入门练习。

weixin_30819085的博客 455

Ubuntu22.04 网络图标消失与连接故障排查指南(附实战修复流程)

本文详细介绍了Ubuntu22.04系统中网络图标消失与连接故障的排查与修复方法。通过ifconfig、dhclient等命令诊断问题,提供从紧急恢复网络连接到深度排查的完整解决方案,帮助用户快速恢复网络功能并预防类似问题再次发生。

weixin_28481133的博客 280
上一篇: 时序约束进阶四:set_input_delay和set_output_delay详解
下一篇: Vivado时序报告六:Report Timing详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

FPGA芯中的小蚂蚁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值