通过参数传递+修改CDF参数实现。
方法如下:
建立一个schematic,搭反相器,设置W、L和M为变量:
- 对于PMOS,M输入pPar(“mp”),W输入pPar(“wp”),L输入pPar(“lp”),对于NMOS,按照相同格式输入对应的参数mn、wn、ln。
- 然后生成symbol,在建立好的反相器schematic中点击create-cellview-from cellview,然后根据提示进行。
- 在生成的symbol中,按shift+n,输入[@wp]*[@mp]/[@lp],放在整个symbol红框中间靠上的位置,这样会在调入的symbol上显示该symbol的wp、mp、lp的数值,方便观察,同样输入[@wn]*[@mn]/[@ln],放在中间稍靠下位置。check and save。
- 标红的符号一个都不要少,否则会识别不出数值,
- 如果之前在schematic中设置的参数是大写的,这里也要相对应输入大写,
设置CDF参数
之后在CIW(command interpreter window)点击tools-CDF-edit,选择对应的库和cellname,下方会出现设置的mp、wp、lp等参数,CDF layer选择Base,如果选择effective,在library manager中refresh后,此处对CDF参数进行的设置会全部被初始化。
接下来就对参数进行一些设置,
- 将wp、lp等的units改为lengthMetric,
- Parse as CEL设置no(如果选为yes,会出现科学技术法表示的宽和长,如1*e-9等),
- parse as number(解析为数字)默认选择yes即可,防止在版图设计及仿真时识别不出。
- 也可以将mn、mp设置默认值为常用值,比如1,减小之后的工作量,注意mp和mn的units保持原始的默认状态就好。
然后,新建一个schematic,调入多个设置好的反相器symbol,只需修改wp等参数,完成!
【举一反三】
参数传递同样可以用于verilog A建立模拟模块仿真模型,将schematic中的参数传递到symbol中,调入symbol,修改symbol的参数,达到修改schematic中参数的目的。
除了建立尺寸不同的反相器,还可以用于建立nor、nand等逻辑电路。