数字电路标准单元库特征化注意事项
怎样保证生成lib的正确性。
曾经用calibre、starrc提取台积电的标准单元库的参数,然后用NCX+hspice生成lib,但结果与台积电自己提供的lib相差很大,不知道差距在哪,
差距可能在哪? 自己提取生成的lib时序相对差点。
两者的相差在哪里,贴出来大家才可以对比
TSMC提供的CP->Q timing:
cell_rise ("delay_template_7x7_0")
index_1("0.0058, 0.0158, 0.0359, 0.0759, 0.156, 0.3163, 0.6367");
index_2("0.00096, 0.00218, 0.00462, 0.00951, 0.01928, 0.03882, 0.0779");
values("0.1489, 0.1561, 0.1686, 0.1915, 0.2349, 0.3193, 0.4872", \
"0.1538, 0.1609, 0.1735, 0.1964, 0.2398, 0.3243, 0.4921", \
"0.1628, 0.1700, 0.1825, 0.2054, 0.2488, 0.3332, 0.5011", \
"0.1781, 0.1853, 0.1978, 0.2207, 0.2641, 0.3485, 0.5164", \
"0.2043, 0.2115, 0.2241, 0.2469, 0.2904, 0.3747, 0.5427", \
"0.2439, 0.2511, 0.2636, 0.2865, 0.3299, 0.4144, 0.5822", \
"0.2972, 0.3044, 0.3171, 0.3399, 0.3834, 0.4678, 0.6357");
自己提取的CP->Q timing:
cell_rise ("delay_template_7x7_0")
index_1("0.0058, 0.0158, 0.0359, 0.0759, 0.156, 0.3163, 0.6367");
index_2("0.00096, 0.00218, 0.00462, 0.00951, 0.01928, 0.03882, 0.0779");
values("0.1643, 0.1716, 0.1843, 0.2074, 0.2511, 0.3358, 0.5040", \
"0.1682, 0.1755, 0.1883, 0.2114, 0.2551, 0.3398, 0.5081", \
"0.1764, 0.1837, 0.1965, 0.2196, 0.2633, 0.3480, 0.5161", \
"0.1924, 0.1997, 0.2125, 0.2355, 0.2793, 0.3639, 0.5320", \
"0.2219, 0.2292, 0.2419, 0.2650, 0.3088, 0.3934, 0.5619 ", \
"0.2642, 0.2715, 0.2843, 0.3074, 0.3511, 0.4358, 0.6044", \
"0.3219, 0.3292, 0.3420, 0.3650, 0.4088, 0.4932, 0.6616");
提取参数的脚本为:
calibre -lvs -hier -spi layout.net DFM_LVS_CCI_N55_ALRDL_noU_v11a.7m
calibre -query svdb < query_cmd
StarXtract -clean star_cmd
star_cmd里面GRD用的是cworst.nxtgrd
NCX的运行脚本为: ncx -f config/run.cfg
run.cfg脚本为:
set input_library tsmc55_ccs.lib
set output_library out_ccs.lib
set library_template_file config/run.opt
set simulator_exec hspice
set model_file SS_model
set netlist_file test.spf
set timing true
set ccs_timing true
set farm_type NoFarm
以上是相关的脚本,不知哪一步造成的差异?
会不会是delay啊,trasition啊什么的计算的方法不一样呢?
比如你的delay计算是输出信号到50%的时间 和 输入信号到50%的时间差,台积电可能不是这么算的。
transition 你算70-30 ,台积电算80-20。
我感觉肯定台积电自己的库比较准吧,你们干吗要自己弄个,吃力不讨好
我想小编不是吃力不讨好,是想测试一下自己做的准确性 然后去表征自己的标准单元把 呵呵
谢谢楼上们。
确实是如strivenbu所说的,想测试一下自己做的准确性 然后去表征自己的标准单元
不一定会用到,但很想学。
查了一下文档,delay、transition计算方法一样的。
把自己提的spf文件改为台积电提供的lpe spice文件,提出的lib也不一样,结果介于上面两者之间。
相距不大啊,都是 0.03ns 左右的差距, 不错了
请问LZ,已经设计好的数字电路如何才能做成标准IP?谢谢!
正在研究这方面的内容,上面的脚本很有用,学习了,谢谢
还有,我觉得你的测试数据已经比较接近了啊,另外想问下lib中的power项是怎么计算的,是ncx工具中有自带的计算公式还是要自己算呢?
那你确定char的时候的PVT是一样的么
mark一下,现在需要用
请教一个问题我的网标 model 都给了,激励文件怎么给啊,说是仿真器没有跑起来。抱着个错。
记录一下
mark~
正确的提取最后的lib应该在误差1%以内。
其实,fab 也提供所谓lpe_cworst 的spice ,完全可以对照着debug.
请问小编是在TSMC具体哪个工艺下做的标准单元库特性化?
如果偏差只有1%确实可以接受的。
之前做过一次,感觉TSMC还是借助了某个库特性化工具,再辅以自己的脚本,脚本中还是有一些特殊设置的!