Parameters 如何参数化Hspice子电路的模型类型?
我有以下Hspice代码:Parameters 如何参数化Hspice子电路的模型类型?,parameters,pspice,Parameters,Pspice,我有以下Hspice代码: .SUBCKT inv_slvt in out vdd Mpmos out in vdd pmos_slvt Mnmos out in 0 nmos_slvt .ENDS .SUBCKT inv_lvt in out vdd Mpmos out in vdd pmos_lvt Mnmos out in 0 nmos_lvt .ENDS 有没有办法通过参数化模型类型的后缀(即-“slvt”vs“lvt”)将代码
.SUBCKT inv_slvt in out vdd
Mpmos out in vdd pmos_slvt
Mnmos out in 0 nmos_slvt
.ENDS
.SUBCKT inv_lvt in out vdd
Mpmos out in vdd pmos_lvt
Mnmos out in 0 nmos_lvt
.ENDS
有没有办法通过参数化模型类型的后缀(即-“slvt”vs“lvt”)将代码简化为单个子电路定义?您不能参数化模型名称、参数或参数值的一部分。但是,可以参数化整个名称。因此,在您的例子中,必须将MOSFET名称参数化为pmos_slvt、nmos_slvt、pmos_lvt或nmos_lvt。以下是您将如何处理此问题:
.global vdd! gnd!
* Defining the default values for parameters nmodel and pmodel
.SUBCKT inv in out pmodel=str('pmos_lvt') nmodel=str('nmos_lvt')
Mpmos vdd! in out vdd! str(pmodel)
Mnmos gnd! in out gnd! str(nmodel)
.ENDS
Vvdd vdd! 0 dc=3.3
Vgnd gnd! 0 dc=0
Xinv in out inv pmodel=str('pmos_slvt') nmodel=str('nmos_slvt')
处理字符串时,它们的值应作为str('value')传递。例如:
.PARAM par1 = str('nmos_180')
如果要使用包含字符串的参数的值,则应使用str(parameter_name),如下所示:
.MODEL str(par1) nmos ...
作为旁注,我想提到的是,您没有正确使用MOSFETs实例。Spice中的MOSFET器件有4个端子:漏极、栅极、源极和块体。在实例化MOSFET设备时,必须使用这四个选项。在这种情况下,您可以使用全局节点,因为它们在子电路中可用。全局节点不必在名称中有一个爆炸,但这是一个很好的做法,以使它们易于为设计者识别