• 支付宝首页搜索框搜索“572484805”,可领十元红包!
  •    1年前 (2018-04-01)  静态时序分析STA |   1 条评论  1583 
    文章评分 3 次,平均分 3.7

     

    近期不断收到各位粉丝的提议,希望小编多讲些数字IC设计实现中的基本概念。小编想了想,干货太多了,可能有的人会觉得口渴,甚至消化不了,后续会在保持干货的同时,陆续讲些比较基础的概念。小编的公众号的内容会涉及到数字IC设计实现中的各个环节,从逻辑综合,布局布线,物理验证,静态时序分析,IR drop等方面。干货多多,就看你爱不爱学习了,还没关注公众号的小伙伴们,赶紧关注了,机不可失!今天吾爱IC社区的小编给各位介绍STA中最基本的概念以及教你如何计算setup,hold slack以及如何计算电路的最高工作频率。想要加入吾爱IC微信技术交流群的朋友,请添加小编微信后,邀请入群(目前人数高于100人,只能邀请入群)。

    什么是STA(Staic Timing Analysis)?

    • 静态时序分析是用于验证数字设计时序的技术之一
    • STA是静态的,因为设计的分析是静态执行的,并且不依赖于在设计的输入所施加的数据值
    • STA是对设计的所有时序检查的完整和详尽的验证

    为什么要做 STA ?

    • 时序分析方法只能验证由simulus执行的设计部分
    • 通过时序仿真进行验证只与使用的测试向量一样详尽。
    • 为了模拟和验证具有10-100万个门的设计的所有时序条件非常缓慢并且不能完全验证时序。

    所以,STA提供了更快,更简单的方法来检查和分析设计中的所有时序路径,以防止任何时序违规。

    Dynamic Timing Analysis (DTA) :

    • 动态时序分析需要全面的输入向量来检查设计中的时序路径
    • 它确定给定输入向量集合的电路的完整行为
    • 动态仿真可以验证设计的功能以及时序要求

    动态时序分析和静态时序分析的区别如下图一所示。

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    图1 DTA和STA的对比

    举个例子,如果我们有100个输入,那么我们需要2的100次方次才能遍历完成整个分析。与静态分析相比,分析量简直是天文数字。

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    图2 静态时序分析的输入和输出文件

    静态时序分析中的一些专业术语:

    • Setup Time : 在时钟有效沿之前,输入数据必须保持稳定的最小时间,称之为建立时间。
    • Hold Time : 在时钟的有效沿之后,输入数据必须保持稳定的最小时间,称之为保持时间。
    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    图3 setup time 和hold time

    Launch 和Capture edge :

    ·

    • Launch edge是指时钟通过触发器来发射数据的沿edge
    • Capture edge是指时钟通过触发器捕获数据的沿edge

    Setup timing checks:

    setup检查确保数据在时钟的有效沿之前在触发器的输入端可用。

    在时钟的有效边沿到达触发器之前,数据应该稳定一段时间,即触发器的建立时间,以便将数据可靠地捕获到触发器中。

    setup检查可确保从前一时钟周期启动的数据,在一个周期后能够正确捕获。

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    图 4 setup检查波形图

    Setup 万能套用公式:

    [Tlaunch + Tck2q + Tdp] <= [Tcapture + TCLK – Tsetup]

    Hold timing checks :

    hold检查是确保时钟有效沿来临之后的一段时间内,数据仍然保持稳定,从而确保capture时不至于采集到不稳定或者错误的数据。

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    图 5 hold 检查波形图

    Hold 万能套用公式:

    [Tlaunch + Tck2q + Tdp] >= [Tcapture + Thold]

    setup和hold的检查机制,也可以阅读之前推送的文章。

    深入浅出讲透set_multicycle_path,从此彻底掌握它

    Slack(裕量) :

    Slack是指数据需要达到时间和实际达到时间之差。

    Data Arrival Time : 数据在datapath上传输的时间

    Data Required Time : 时钟在clock path上传输的时间

    Setup Slack = Data Required Time – Data Arrival Time

    Hold Slack = Data Arrival Time – Data Required Time

    有了setup和hold概念和计算公式后,很容易就能知道如何去fix setup and hold violation。这个很简单,大家自己多多总结。之前推送的文章数字芯片设计实现中修复setup违例的方法汇总 系统全面介绍过修复setup violation的方法,各位可以前往复习下。

    介绍这些基本概念后,我们来个实战。下面这道题是某公司应届生校园招聘的笔试题目,大家做做看。计算电路最高工作频率的面试题数不胜数,几乎一大半的公司都会考这种题。目的是考察应聘者是否熟悉setup,hold检查的方式,是否具备基本的时序分析能力。这道题如果你还不会做或者会做错,请给自己敲个警钟。其实这道题还算简单的,如果存在多条路径到FF2的情况,你是否也能正确算出电路的最高工作频率呢?反正原理是一样的。

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    图6 电路最高工作频率思考题

    如果你对这答题的答案比较困惑,如果你很迫切想知道答案,可以转发本文到朋友圈,集齐50个赞,将截图发送到公众号,可以快速获取正确答案。

    好了,今天的码字就到这里了,原创不容易,喜欢的可以帮忙转发和赞赏,你的转发和赞赏是我不断更新文章的动力。小编在此先谢过!与此同时,吾爱IC社区(52-ic.com)也正式上线了。吾爱IC社区(52-ic.com)是一个专业交流和分享数字IC设计与实现技术与经验的IC社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。

    weixin.qq.com/r/Dy0XD7b (二维码自动识别)

    打赏的朋友,请长按下方二维码,识别小程序进行打赏,欢迎砸钱过来!小编晚饭能不能加个鸡腿,全靠它了,呵呵!

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    有问题,可以提问啦!

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

    作者微信:

    教你如何计算电路最高工作频率(静态时序分析之setup和hold time计算方法)

     

    除特别注明外,本站所有文章均为吾爱IC社区原创,转载请注明出处来自http://www.52-ic.com/?p=212

    关于

    发表评论

    表情 格式
    1. 正确答案是111MHz。有不懂的小伙伴们,可以私信。

      seuxiaoj 博 主 6个月前 (10-25) [0] [0]
    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册

    扫一扫二维码分享