Languages

CommunityCategory: MODELZENMapping transistors to ‘switch’ primitives

MODELZEN

Mapping transistors to ‘switch’ primitives

SA Support Team Staff 2018-01-09

My circuits contain some transistors that work as switches. How do I instruct MODELZEN to map them to switch primitives during model generation? The switch primitives run faster than nmosfet/pmosfet primitives in simulation.

1 Answers
Best Answer
SA Support Team Staff 2018-01-09

You can assign a MODELZEN property on the transistor instance in the circuit schematic or define a device mapping in the technology configuration file (tech_config.py) to map certain transistors to 'switch' primitives instead of to nmosfet or pmosfet primitives.

To assign a MODELZEN property on the circuit schematic, select the transistor instance you want to map to a switch primitive, click right mouse button, and select the Edit > MODELZEN Properties item. When the Edit MODELZEN Properties window appears, select switch for the model type and define other properties accordingly.

For most cases, we recommend choosing max_idsat for DC level and 0 for AC level, for which MODELZEN produces a switch model with a characterized on-resistance, infinite off-resistance, and no capacitance. If you'd like finite resistance values for both on and off cases, choose linear for the DC level. If you'd like to include capacitances in the model, choose 1 for the AC level.

MODELZEN needs to know what voltage it should apply to the gate when characterizing the on or off resistances. For that, set V(ctrl) for 1 with the voltage for logic 1 (e.g. Vdd value) and set V(ctrl) for 0 with the voltage for logic 0 (e.g. 0). V(com) parameter is to distinguish whether the switch is an nmosfet or pmosfet switch. If V(com) is closer to the V(ctrl) for 0 value, it is considered an nmosfet switch. If it is closer to the V(ctrl) for 1 value, it is considered an pmosfet switch.

On the other hand, you can define the same mapping in the technology configuration file (tech_config.py). For instance, the equivalent entry to the aforementioned example you can use for the devo_devicemap definition is:

<pmos model> : dict(type='switch', level_dc='max_idsat', level_ac=0, vctrl1=1.1, vctrl0=0.0, vcom=1.1),

You can apply this mapping to specific subcircuits or specific instances of your choice only. Please refer to the MODELZEN User Guide for more details.