Analog Switch

NAME_TABLE:

C_Function_Name: cm_aswitch

Spice_Model_Name: aswitch

Description: "analog switch"

PORT_TABLE:

Port Name: cntl_in out

Description: "input" "resistive output"

Direction: in out

Default_Type: v gd

Allowed_Types: [v,vd,i,id] [gd]

Vector: no no

Vector_Bounds: - -

Null_Allowed: no no

PARAMETER_TABLE:

Parameter_Name: cntl_off cntl_on

Description: "control `off' value" "control `on' value"

Data_Type: real real

Default_Value: 0.0 1.0

Limits: - -

Vector: no no

Vector_Bounds: - -

Null_Allowed: yes yes

PARAMETER_TABLE:

Parameter_Name: r_off log

Description: "off resistance" "log/linear switch"

Data_Type: real boolean

Default_Value: 1.0e12 TRUE

Limits: - -

Vector: no no

Vector_Bounds: - -

Null_Allowed: yes yes

PARAMETER_TABLE:

Parameter_Name: r_on

Description: "on resistance"

Data_Type: real

Default_Value: 1.0

Limits: -

Vector: no

Vector_Bounds: -

Null_Allowed: yes

  • Description:
    The Analog Switch is a resistor that varies either logarithmically or linearly between specified values of a controlling input voltage or current. Note that the input is not internally limited. Therefore, if the controlling signal exceeds the specified OFF state or ON state value, the resistance may become excessively large or excessively small (in the case of logarithmic dependence), or may become negative (in the case of linear dependence). For the experienced user, these excursions may prove valuable for modeling certain devices, but in most cases you are advised to add limiting of the controlling input if the possibility of excessive control value variation exists.

Example SPICE Usage:

a8 3 %gd(6 7) switch3

.

.

.model switch3 aswitch(cntl_off=0.0 cntl_on=5.0 r_off=1e6

+ r_on=10.0 log=TRUE)