BLK_SlewrateDriver

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

input and output waveforms

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

input and output waveforms

Figure. input and output waveforms.