| ||
通过工具来进行降功耗只能降5~10%,如果再想降更低,可以通过优化芯片架构来实现。另一种方式将不影响的寄存器替换成latch。
innovus生成.def、.gds、后端网表.v、.sdf(没PT的精确)。innovus产生gds文件时需要加入map文件,这个文件应该是foundry提供吧?
然后starrc吃lef库文件、innovus生成的def文件还有itf文件(工艺相关,需要将itf文件转成.nxtgrd文件)生成不同Corner的SPEF文件。
PT吃lib、后端网表.v文件,不同corner下的SPEF文件,和DC生成的sdc文件,分析生成.sdf文件,这个sdf文件用于后仿真。
v2lvs需要将后端网表.v文件和相应库的spice库文件生成spice文件(.spi),在calibre中将.spi文件与innovus生成的.gds文件相比较做lvs验证。
后仿一般需要跑两个Corner,wc_cmax.sdf和bc_cmin.sdf
1. uncertainty DC的时候是0.1ns, PR的时候是0.08ns, PT的话是0.05ns.
2.我们diver时钟分频是使用的ICG实现的,本质上是同个时钟,所以不用使用generate产生新的时钟。
3.tdcr的输入的tdc2tdcr_vld的inpudelay(mindelay 和maxdelay设置的是什么?)
4.现在:0.99,125℃, cmax, ss. 在tpsco的项目中是RC max的corner情况下setup最差。
最差没过的corner是温度翻转的情况下,0.99,-40℃, cmax, ss. setup过不了
5.hold分析:用的是1.21V,-40℃,cmin, ff corner
6.inverter的上升沿和下降沿transition time相差不大,做clock tree 更好。所以高频时钟一般用inverter来做,buffer做clock tree的话低速情况下,PR时间会快些
7.max_transition time 设置为0.2ns
8.place只跑function 的wc、BIST scenario CTS加个scan 的scenario route的时候全跑所有的scenerio (wc、BIST scenario、scan、LTmin)
9.我们项目中总共有将近有10万个fliflop, 使用门数的话一般经验使用x15~20来估算,一个寄存器由10门组成(2*[rs触发器+与非门], 其中rs触发器需要4个与非门),乘以20相当于组合逻辑与时序逻辑是1:1的比例。如果有DC吐出来的area面积,也可以用area/一个nand器件的面积=gate counter,如果要算管子的个数那么再x4(因为一个nand由4个mos管子组成)
10.项目里的clock tree mclk的skew最大是240ps。
11.加std cell作为spare cell.
foundry提供的cell model给模拟仿真,工具不一样文件后缀也不一样,常见的spectre的文件后缀.scs,hspice的文件后缀为.l。
DC吃design link后,映射到GTECH的网标中,有一些不是GTECH的cell,比如SELECT_OP,**SEQGEN**等,这些是工具自带的关键字,具体的pin脚含义可以在DC userguide中查看。
itf转tluplus脚本示例