STA在芯片设计后端的应用

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2007-11-02 09:09:45

摘要:在芯片设计的后端,很多厂家要求引入STA分析。在prelayout和postlayout都要进行。本文介绍了在prelayout和postlayout两个阶段STA的约束文件的编写方法和一些相关命令,并介绍了STA的规划.
    关键词:STA约束 STA规划
1 引言
在芯片设计的流程中,后期的验证占了很长的时间。人们通常采用的验证方法是动态的仿真,此种方法的优点是比较直观。但当芯片的门数达到上百万门。用动态仿真所消耗的时间很长,而且分析的覆盖面也不全。现在很多厂家要求引入STA,有的要求在prelayout时就进行STA分析,例如TI的Magma流程,它在prelayout时将网表与STA约束读入,可以预先估计到postlayout后的timing 情况,从而节约了postlayout阶段的时间。在postlayout进行STA分析可以在很短时间内知道芯片的timing情况,缩短了ECO的时间。但是由于prelayout和postlayout的情况不一样,prelayout时,时钟数没有完全布好,所以要对延迟进行估算。Postlayout时,时钟数已经布好,延迟只需从sdf中读取,所以在两个阶段STA的约束是不一样的。
2 STA的基本概念
要比较全面地分析芯片的timing情况,书写完善的约束文件是很重要的。首先必须了解静态时序分析的基本原理。静态时序分析实际上就是把整个芯片按照时钟分成timing paths,只要timing paths经过的地方,timing都会被分析到。它在分析时包含下列三个步骤 :

(1) 将整个设计按照不同的时钟域(path group)分为不同的时钟路径(timing paths)
(2) 计算每个timing path的延迟信息
(3) 检查延迟是否满足要求
3 STA约束的编写
3.1 STA的分析方式
STA分析主要有三种分析方式:single、worst_best、on_chip_variation
Single: 在单一的情况下进行分析,即在worst情况下同时进行setup/hold分析或在best情况下同时进行setup/hold分析。
Worst_best:在分析时同时读入worst和best情况下的延迟信息,用worst下的延迟信息计算setup,用best下的延迟信息计算hold
On_chip_variation: 在分析时同时读入worst和best情况下的延迟信息,在进行setup计算时,时钟延迟采用best情况下进行计算,数据延迟采用worst情况下进行计算;进行hold计算时,时钟延迟采用worst情况下进行计算,数据延迟采用best情况下进行计算。这种分析方式对芯片的timing要求更加严格。
上述三种选择通过命令 -analysis_type single、worst_best、on_chip_variation 来选择
3.2 环境变量与库的设置
定义相关的库文件对于正确的分析非常重要。因为在prelayout阶段,cell和net的延迟是根据库的要求给出的。

    如上图所示,prelayout阶段cell的延迟是根据input transition 和output load来计算,net的延迟是根据net load/fanout/resistance来计算,而这些又包含在wireload_model中。
当进行Worst case分析时,读入worst case下的库,进行best case分析时,读入best case情况下的库。当同时进行worst-best情况下分析时,必须读入worst best合在一起的库。相关命令如下:
set_search_path " ./vendor/opt/ "
set_link_path {* max.db}
set_link_path {* min.db}
read_min_max_lib -max max.db -min min.db -name min_max.db
用report_lib命令可知库的环境变量,从而在set_operating_conditions命令中进行设置。
3.3 定义延迟信息
3.3.1 prelayout
由于prelayout阶段很多信息是预估的,所以要进行很多方面的约束。
首先要定义wire_load_model,因为net的延迟是根据wire_load_ model来计算的。同时还要定义wire_load_mode,一般情况下设置为enclosed,这样STA会根据不同的面积来选择wire_load_model,顶层选择较大的,而底层面积较小的相应选择小的wire_load_model。
其次对输入定义input_transition/max_fanout,命令如下:
set_input_transition -max/min -rise/fall
set_max_fanout 1 all_inputs
对输出定义负载能力,命令如下:
set_load -pin_load
3.3.2 postlayout
因为postlayout时,延迟信息都包含在 sdf中,只需将sdf读入即可。命令如下:
read_sdf -analysis_type single -type sdf_max/sdf_min *.sdf
read_sdf -analysis_type bc_wc *.sdf
3.4 定义时钟
3.4.1 时钟种类
在约束文件中,会涉及三种时钟:虚拟时钟、理想时钟、被产生(generated)时钟。

    * 虚拟时钟
虚拟时钟在设计中没有源,主要用于设置输入、输出延迟。
Clk3 Clk4 为虚拟时钟
虚拟时钟没有get_ports
用create_clock -period -waveform {} 命令产生。
* 理想时钟
理想时钟是整个设计的源。
Clk1 Clk2 为理想时钟
create_clock -period -waveform { } -name get_ports
* generated时钟
被产生(generated)时钟,由理想时钟经过分频或选择产生。
(1) 规则的generated时钟

[1] [2] [3] [4]  下一页

Tags:

作者:佚名

   评论摘要(共 1 条,得分 85 分,平均 85 分) 查看完整评论
[回复] 1wangyou  打分:85 分  发表时间:2018-07-20
简历模板http://www.geren-jianli.com 简历表格下载http://www.geren-jianli.com/biaoge/ 简历http://www.ger
按字母检索: A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z -
按声母检索: A - B - C - D - E - F - G - H - J - K - L - M - N - O - P - Q - R - S - T - W - X - Y - Z - 数字 - 符号 -
  • 金字塔软件网 - 最专业的行业软件网 JztSoft.COM