| ||
一、cdfDump和cdfDumpAll
当PDK不满足自己需求时,导出CDL文件前可能要修改CDF参数。可以使用CDF editor修改,但修改后点击apply再导出cdl时修改的参数不能立即生效,而需要save到一个文件中,再load。同时修改的参数不能保存,每次重启icfb的时候都要再修改一次,而且如果修改多个cell就很麻烦了。可以通过每次load一个CDF文件来实现,但存在另外一种方便的Dump(导出)CDF file的方法。
ProcessDesigh Kit library 中cell的CDF可以使用Cadence的CIW->Tools->CDF->Edit来修改,修改完成后点击apply,然后执行cdfDump和load命令。一般来说,启动cadence后修改的参数还是会存在的,如果不存在则参考第(6)条。
举例来说,对tsmc18rf库中的nmos2v进行修改。
1、CIW->Tools->CDF->Edit来修改参数,修改完成后点击apply(如果不想在图形界面下修改,那也可以在导出的文件中修改)。
2、然后在CIW的command line中输入cdfDump("<library>""<file>" ?cellName "<cell>"),(<file>包括完整路径),cadence会将该cell的CDF参数Dump成一个文件。如:
cdfDump("tsmc18rf" "/tmp/nmos2v.cdf" ?cellName"nmos2v")
3、导出的文件中修改参数:使用文本编辑器(如gedit)打开刚才dump出来的文件,找到你需要修改的参数名。
4、使用相同的方法可以dump出多个cell的cdf文件,最后可以将他们集中拷贝到一个文件中,可以命名为library_name.cdf,(如tsmc18rf.cdf)。也可以使用更加方便的cdfDumpAll函数,将一个库中的所有cellname的cdf参数导出到一个文件中,例如
cdfDumpAll("tsmc18rf""/tmp/tsmc18rf.cdf")
5. 在CIW中输入load("<file>"),(如
load("/tmp/tsmc18rf.cdf'),然后打开CDF editor看看吧。
6、(可以重启cadence看看修改的参数是否还有效)接下来就是一劳永逸的步骤了,使用文本编辑器打开~/cadence/ic616/tools/dfII/cdsuser文件夹下的.cdsinit文件,找到最后一行(;END OF USER CUSTOMIZATION),在上面输入
;Modifyingthe CDF command
load("<file>")
例如:load("/tmp/tsmc18rf.cdf')
这样在icfb每次启动初始化的时候就会自动修改cell的CDF参数了。
二、修改电阻Analog器件cdf属性,以方便导出cdl的方法
1. 从CIW窗口,选择菜单Tools-->CDF-->Edit……
2. 在弹出窗口“Edit Component CDF”对话框中, 将CDFType 选为 Base
3. 点击 Browser按钮,找到要修改的模拟器件
4. 往下移动滑动条,在Parameters 后面, 找到 Simulation Information, 点击 Edit 按钮
5. 在新弹出窗口中,“Choose Simulator”,设置为 'auCdl'
6. 在“instParameters”处填上要导出的器件参数,比如res需要导出R W L
7. 在“propMapping”处填上要导出参数的参数名,如res需要填写nil R r W w L l,前面nil一般默认
8. 如果需要修改器件的模型名则可以在"modelName"处填写上器件模型名称
9. 其他项不需要改动
10.导出cdl后电阻的长和宽就可以导出来了,导出来的结果为:
RR792 R318_MINUS R318_MINUS 5.0 $[RP]$W=1.80u $L=9.0u
在W、L、RP前都会有一个$符号,该$符在CDL中应该不是注释作用,无源器件(RLC)的类型说明一般都是用$做前导符号,在SPICE仿真网表中,$用作注释
11.在cdl验证过程中$后面的内容还是可以识别的。
12.如果lvs需要检查电阻的with和length,则在cdl导出时选择check resistor size
13.一定要注意cdl导出使的resistor threshold value,默认值是2000,如果有小于该阻值,则lvs根本就不会认识schematic中的电阻。