BLK_SlewrateDriver : A slew-rate controlled driver
A slew-rate controlled driver converts a digital input in
to an analog output out
with variable slew rates for rising and falling transitions, controlled by the SR_rise
and SR_fall
inputs, respectively. In other words, it has a similar functionality to the transition
primitive, except that its rise and fall times can be varied with the signals.
The slew rate inputs SR_rise
and SR_fall
define the respective slew rates in units of V/ns. The parameters value0
and value1
define the analog output values corresponding to the logic-0 and logic-1 values of the digital input, respectively. The parameter scale
defines the additional scale factor that can be applied to the slew rate inputs.
This slew-rate controlled driver model is described using a pair of switched current sources charging/discharging a capacitor. For example, the ratio between the charging current (iup
) and capacitance determines the slew rate for the rising transition. The capacitor is modeled with the cap_var
primitive, which has a 1nF capacitance in the mid range but has infinite capacitance when its voltage reaches value1
or value0
. This is a handy way of saturating the output out
at the levels of value1
and value0
.
Input/Output Terminals
Name | I/O | Type | Description |
out | output | xreal | analog output |
SR_fall | input | xreal | falling slew rate (V/ns) |
SR_rise | input | xreal | rising slew rate (V/ns) |
in | input | xbit | digital input |
Parameters
Name | Type | Default | Description |
value0 | real | 0.0 | value for logic 0 |
value1 | real | 1.0 | value for logic 1 |
scale | real | 1.0 | scale factor for slew rate |
List of Testbenches
tb_check_fixedfreq : A testbench for checking the operation of a slew-rate controlled driver with a fixed-frequency input |
tb_check_varfreq : A testbench for checking the operation of a slew-rate controlled driver with a variable-frequency input |
tb_check_fixedfreq : A testbench for checking the operation of a slew-rate controlled driver with a fixed-frequency input
This testbench checks the basic functionality of a slew-rate controlled driver by feeding a fixed-frequency digital data as the input and slowly varying one of the slew rate input SR_rise
. The expected output is an analog output with finite rise and fall times where the rise time slowly varies over time.
Simulation Results
Figure. input and output waveforms.
tb_check_varfreq : A testbench for checking the operation of a slew-rate controlled driver with a variable-frequency input
This testbench checks the basic functionality of a slew-rate controlled driver by feeding a digital clock with a slowly-varying frequency as the input. The slew rates of both the rising and falling transitions are controlled so that the rise and fall times occupy a constant fraction of the clock period. The expected output is an analog clock whose rise and fall times scale proportionally with the clock period.
Simulation Results
Figure. input and output waveforms.