0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

时序分析基本概念介绍<sdc检查>

冬至子 来源:数字后端IC芯片设计 作者:Tao 2023-07-05 10:32 次阅读

sdc是整个设计中最重要的文件,它的正确与否直接决定了PR能否顺利进行以及timing的最终sign off。很多设计团队经常只有等到做完综合,STA,PR后才发现到sdc上的问题,再去修改sdc重新run job。这样就浪费了项目宝贵的schedule。而且,不同的工具,不同的design team处理约束的方式都不尽相同。这些因素,都要求我们必须在设计前期尽早的完成sdc的检查。

sdc的问题有很多种,我大致罗列了以下一些:

Missing clock definition

和clock相关的问题都要引起特别大的重视,因为它会严重影响到timing还有CTS的质量。有没有正确地定义generate clock, 关键节点上的时钟有没有传过去,哪些地方应该stop clock propagation......这些问题我们都应该第一时间去检查确认。

Unconstrained endpoint

这也是很严重的一点问题,unconstrained就代表着工具不会去检查该条timing path,也就不会发现潜在的时序问题了。有的endpoint确实可能是静态信号,但也不排除我们遗漏input/output delay或者错误地设置了false path。因此,这也值得我们重点检查。

No input/output delay

理论上,每个端口上都需要设置端口约束。因此,我们必须正确地检查它有没有遗漏,以及挂在正确的clock上。

set_case_analysis conflict

通常我们会在DFT模式切换时设置case analysis值。因此,需要和DFT team确认值的正确性。因为设了case analysis的port就不会再去检查该条timing path了。

Incorrect timing exception

timing exception也是很重要的,false path和multicycle path的设定也需要和前端team确认,设置完以后也要检查一下是否正确运行,或是被别的exception覆盖。

那我们如何在前期去做sdc的检查呢?

方法有很多,首先最基本的需要做到以下几点:

Log

首先,检查zero wire load阶段的timing log是最重要的一点,我们需要确保没有任何的Error,每个warning也要逐条分析,有合理的解释,记得需要把message条数的限制关掉,工具默认报出的条数有限。

set_message_info –id UITE-123 –limit 10000

图片

check_timing

这也是普遍常用的一个命令,它能检查出No clock,Unconstrained endpoint,No input/output delay等最基本的约束问题。完整的检查列表如下所示:

图片

STA和PR工具里都能使用,而且建议两边都检查一下,因为PR工具里会用ETM model, 而STA工具通常都是flatten运行,检查的数据有所不同。为了便于区分,通常把function mode和DFT mode分开检查。

可以使用以下命令检查:

check_timing -verbose > func_check_timing.rpt

图片

report_analysis_coverage

这是个检查timing check覆盖率的命令。可以报出当前约束下,各种timing check (setup, hold,min_period,min_pulse_width等) 的覆盖率,报告如下所示:

图片

我们主要关注报告中的Untested这一栏,它说明我们约束没有覆盖的点,造成untested的原因有很多,主要有以下几点。因此我们必须逐条归纳分析原因,如果是sdc造成的,那就要修改sdc。

如果要看那么多文件的话,也许会很麻烦,而且总会觉得遗漏了一些。其实,很多公司也是有专门检查sdc的小工具。学会用这些工具,会专业方便得多,起到事半功倍的效果。这边推荐Galaxy Constraint AnalyzerSpyGlass这两个专门检查sdc的工具。

最后,对于上述检查出来的这些问题,有很多是可以waive的,那我们如何去分析呢?

工具本身提供很多很方便的debug命令

all_fanin/all_fanout

这两个命令可以很容易的trace timing path的起点和终点,大家可以对应对IO设计表格和sdc,来检查一下约束是否有错。

pt_shell> all_fanin –only_cells –flat –startpoints –to F1/CLK

get_attribute

这个db的命令大家一定很熟悉,我们可以使用它来得到pin上的clock,arrival window等信息,来检查clock有没有正确propagation

还有以下一些常用命令也可以帮我们报出各种有用的信息,不分别介绍了

report_cell

report_case_propagation

report_disable_timing

讲到这,大家对该如何检查sdc有个简单认识了吧,一定要记住,sdc很重要,一定要好好写。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时序分析
    +关注

    关注

    2

    文章

    127

    浏览量

    22565
  • STA
    STA
    +关注

    关注

    0

    文章

    51

    浏览量

    18960
  • SDC
    SDC
    +关注

    关注

    0

    文章

    49

    浏览量

    15534
  • CTS
    CTS
    +关注

    关注

    0

    文章

    35

    浏览量

    14105
  • 时序分析器
    +关注

    关注

    0

    文章

    24

    浏览量

    5279
收藏 人收藏

    评论

    相关推荐

    详细介绍时序基本概念Timing arc

    时序分析基本概念介绍——Timing Arc
    的头像 发表于 01-02 09:29 2.4w次阅读
    详细<b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>基本概念</b>Timing arc

    介绍时序分析基本概念lookup table

    今天要介绍时序分析基本概念是lookup table。中文全称时序查找表。
    的头像 发表于 07-03 14:30 1518次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>基本概念</b>lookup table

    时序分析基本概念SDC概述

    今天我们要介绍时序概念是设计约束文件 **SDC** . 全称 ***Synopsys design constraints*** . SDC
    的头像 发表于 07-03 14:51 6549次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>—<b class='flag-5'>SDC</b>概述

    时序分析基本概念介绍&amp;lt;Operating Condition&amp;gt;

    今天我们要介绍时序分析概念是 **Operating Condition** 。也就是我们经常说的PVT环境,分别代表fabrication process variations(工
    的头像 发表于 07-04 10:57 2868次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;Operating Condition&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;Latency&amp;gt;

    今天要介绍时序分析基本概念是Latency, 时钟传播延迟。主要指从Clock源到时序组件Clock输入端的延迟时间。
    的头像 发表于 07-04 15:37 2440次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;Latency&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;Skew&amp;gt;

    今天要介绍时序分析基本概念是skew,我们称为偏差。
    的头像 发表于 07-05 10:29 3579次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;Skew&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析Slew/Transition基本概念介绍

    今天要介绍时序分析基本概念是Slew,信号转换时间,也被称为transition time。
    的头像 发表于 07-05 14:50 3241次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>Slew/Transition<b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>

    时序分析基本概念介绍&amp;lt;spice deck&amp;gt;

    今天我们要介绍时序分析概念是spice deck。平时用得可能比较少,是PT产生的一个spice信息文件,可以用来和HSPICE做correlation。
    的头像 发表于 07-05 15:45 1158次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;spice deck&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;generate clock&amp;gt;

    今天我们要介绍时序分析概念是generate clock。中文名为生成时钟。generate clock定义在sdc中,是一个重要的时钟
    的头像 发表于 07-06 10:34 2286次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;generate clock&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;Critical Path&amp;gt;

    今天我们要介绍时序分析概念是Critical Path。全称是关键路径。
    的头像 发表于 07-07 11:27 1317次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;Critical Path&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;wire load model&amp;gt;

    今天我们要介绍时序分析基本概念是wire load model. 中文名称是线负载模型。是综合阶段用于估算互连线电阻电容的模型。
    的头像 发表于 07-07 14:17 1146次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;wire load model&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;Virtual Clock&amp;gt;

    今天我们介绍时序分析基本概念是Virtual Clock,中文名称是虚拟时钟。
    的头像 发表于 07-07 16:52 1477次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;Virtual Clock&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;Uncertainty&amp;gt;

    今天我们要介绍时序分析命令是uncertainty,简称时钟不确定性。
    的头像 发表于 07-07 17:23 3060次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;Uncertainty&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;ILM&amp;gt;

    今天我们要介绍时序分析基本概念是ILM, 全称Interface Logic Model。是一种block的结构模型。
    的头像 发表于 07-07 17:26 2916次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;ILM&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;

    时序分析基本概念介绍&amp;lt;Combinational logic&amp;gt;

    今天我们要介绍时序分析概念是Combinational logic. 中文名组合逻辑单元。这是逻辑单元的基本组成器件。
    的头像 发表于 07-10 14:31 824次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>lt</b>;Combinational logic&<b class='flag-5'>amp</b>;<b class='flag-5'>gt</b>;