Digital-to-Analog Node Bridge

NAME_TABLE:

C_Function_Name: cm_dac_bridge

Spice_Model_Name: dac_bridge

Description: "digital-to-analog node bridge"

PORT_TABLE:

Port Name: in out

Description: "input" "output"

Direction: in out

Default_Type: d v

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

Vector: yes yes

Vector_Bounds: - -

Null_Allowed: no no

PARAMETER_TABLE:

Parameter_Name: out_low

Description: "0-valued analog output"

Data_Type: real

Default_Value: 0.0

Limits: -

Vector: no

Vector_Bounds: -

Null_Allowed: yes

PARAMETER_TABLE:

Parameter_Name: out_high

Description: "1-valued analog output"

Data_Type: real

Default_Value: 1.0

Limits: -

Vector: no

Vector_Bounds: -

Null_Allowed: yes

PARAMETER_TABLE:

Parameter_Name: out_undef input_load

Description: "U-valued analog output" "input load (F)"

Data_Type: real real

Default_Value: 0.5 1.0e-12

Limits: - -

Vector: no no

Vector_Bounds: - -

Null_Allowed: yes yes

PARAMETER_TABLE:

Parameter_Name: t_rise t_fall

Description: "rise time 0->1" "fall time 1->0"

Data_Type: real real

Default_Value: 1.0e-9 1.0e-9

Limits: - -

Vector: no no

Vector_Bounds: - -

Null_Allowed: yes yes

  • Description:
    The dac_bridge is the first of two node bridge devices designed to allow for the ready transfer of digital information to analog values and back again. The second device is the adc_bridge (which takes an analog value and maps it to a digital one).The dac_bridge takes as input a digital value from a digital node. This value by definition may take on only one of the values `0', `1' or `U'. The dac_bridge then outputs the value out_low, out_high or out_undef, or ramps linearly toward one of these `final' values from its current analog output level. The speed at which this ramping occurs depends on the values of t_rise and t_fall. These parameters are interpreted by the model such that the rise or fall slope generated is always constant. Note that the dac_bridge includes test code in its cfunc.mod file for determining the presence of the out_undef parameter. If this parameter is not specified by you, and if out_high and out_low values are specified, then out_undef is assigned the value of the arithmetic mean of out_high and out_low**.** This simplifies coding of output buffers, where typically a logic family will include an out_low and out_high voltage, but not an out_undef value. This model also posts an input load value (in farads) based on the parameter input load.

Example SPICE Usage:

abridge1 [7] [2] dac1

.model dac1 dac_bridge(out_low = 0.7 out_high = 3.5 out_undef = 2.2

+ input_load = 5.0e-12 t_rise = 50e-9

+ t_fall = 20e-9)