IC君的第32篇原创文章 (欢迎关注公众号 icstudy 和 知识星球哦)
眼看着国庆假期快结束了,大家应该玩得都挺high的吧? 趁着快收假的时候,IC君写了一篇相对轻松的文章,为假期结束之后的学习和工作热热身。这篇文章主要聊一下静态时序分析和动态时序分析。在笔试或者面试中也会常常问到这个问题。
静态时序分析(static timing analysis,STA)是遍历电路存在的所有时序路径,根据给定工作条件(PVT)下的时序库.lib文件计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足约束要求,根据最大路径延时和最小路径延时找出违背时序约束的错误。
静态时序分析的优点:
不需要给输入激励;
几乎能找到所有的关键路径(critical path);
运行速度快;
静态时序分析的缺点:
只适用同步电路;
无法验证电路的功能;
需要比较贵的工具支持;
对于新工艺可能还需要建立一套特征库,建库的代价可能要几百万。
静态时序分析的工具:
Synopsys的prime time,
Cadence的Encounter Timing System等
动态时序分析(dynamic timing analysis,DTA)通常是所有的输入信号都会给一个不同时刻的激励,在testbech(.sp或者.v)中设置一段仿真时间,最后对仿真结果进行时序和功能分析。 这里的仿真可以是门级或者晶体管级,包括spice格式和RTL格式的网表。
如下图所示的spice中给激励的语句和波形:
动态时序分析的优点
晶体管级的仿真比较精确,直接基于工厂提供的spice 工艺库计算得到;
适用于任何电路,包括同步、异步、latch等等;
不需要额外搞一套特征库;
不需要很贵的时序分析工具。
缺点:
需要给不同的测试激励;
关键路径无法检查全 (致命性的);
规模大的电路spice仿真特别慢 (致命性的)。
动态时序的工具 :
spice仿真器: hspice, finesim, hsim, spectre等;
verilog仿真器: ModelSim,VCS,NC-Verilog,Verilog-XL等。
从上面的分析可以看出,静态时序的主要缺点是烧钱,需要很贵的工具。这一点国内的公司也容易解决,要么融资很多不差钱,要么用盗版。
而动态时序分析有2个致命性的缺点:关键路径无法检查全意味着里面可能有fail的path,芯片流片出来无法工作;仿真特别慢意味着你的schedule可能受到影响,无法按时交货。所以动态时序分析只适用于小规模的电路,通过给激励就能完成时序的检查,同时仿真的时间还能接受。
那么如何从动态时序分析转到静态时序分析呢?需要可以静态时序分析的库文件和静态时序分析软件。
静态时序分析的库文件可以通过
Cadence的Liberate, ENCOUNTER LIBRARY CHARACTERIZER,
Synopsys的NanoTime , SiliconSmart等建库工具来生成。
以上图的liberate为例,只要提供spice格式的netlist和models,就可以生成业界标准的.lib文件。下图中示意的模块都可以生成哦:
有了这些.lib文件,再生成一个verilog的门级网表,我们就可以做静态时序分析啦!
强烈推荐一下IC君的知识星球(文件、讨论都可以长期保存),在这里你可以得到:
提供公众号文章所分享技术更多的细节和实现方法,包括文档、电路、RTL代码、脚本等;
星球成员不断积累的优质内容分享和讨论;
回答星球成员提出的IC相关问题
优质分享的现金红包赞赏;
可能的技术分享、读书分享、项目实战。