- 对于抽lib,我们有两种方式可以抽取,一种是在innovus里面抽取。这种方法常见于pr flow还2.没有跑完,而top又急着要我们这个block的le和lib信息去跑top的pr flow,这个时候我们就可以在innovus里面直接抽lib出来给top去用,命令如下:
set_analysis_view -setup {cortexa7core_view_rcmax cortexa7core_view_rcmin} -hold {cortexa7core_view_rcmax cortexa7core_view_rcmin}
do_extract_model -view cortexa7core_view_rcmax ../data/cortexa7core_wc.lib
do_extract_model -view cortexa7core_view_rcmin ../data/cortexa7core_bc.lib
这样工具就会在data目录下生成两个lib文件,一个是cortexa7core wc.lib用于setup分析,一个是cortexa7core bc.lib用于hold分析。
- 而另外一种抽lib的方式则是在pt里面抽,这个一般是我们a7block已经完成了timing signoff或者接近signoff,这个时候lib/db文件则需要到PT里面去抽取,这个时候时序就比较精准了。在完成PT分析之后,我们可以通过下面的命令输出etm timing模型,这个模型一般只有I0接口的时序没有block内部的timing情况,分WC和BC两个Corner分别提取,即在runpt wc.tcl和runpt bc.tcl下面加入下面的命令即可
file mkdir etm
extract_model -library_cell -test_design -output etm/${DESIGN_NAME}_${MODE} -format {lib} -block_scope
这样工具就会在pt/etm目录下生成两个lib文件,一个是cortexa7core wc.lib用于setup分析,一个是cortexa7core bc.lib用于hold分析。