主要内容

DSM DAC

R2026b

Model real DAC with non-idealities

Since R2026b

  • DSM DAC

Libraries:
Mixed-Signal Blockset / ADC / Building Blocks

Description

Use the DSM DAC (delta-sigma modulator digital-to-analog converter) block to model a voltage-mode multi-bit DAC with a comprehensive set of real-world non-idealities including gain error, offset error, integral nonlinearity (INL), delay, and clock jitter. You can also choose the output pulse types — non-return-to-zero (NRZ), return-to-zero (RZ), and half-return-to-zero (HRZ). This block enables you to simulate behavioral models of DAC impairments and their effect on system-level performance. It is particularly useful in high-speed, high-resolution data converter and mixed-signal applications.

Note

Use the DSM DAC block only with a delta-sigma modulator (Delta Sigma Modulator or Continuous Time Delta Sigma Modulator) and not as a standalone DAC.

Ports

Input

expand all

Quantized analog input signal to the DAC, specified as a scalar.

Data Types: double

Output

expand all

Converted analog output signal, returned as a scalar.

Data Types: double

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Number of bits in the input digital code, specified as a positive real integer.

Programmatic Use

Block parameter: NBits
Type: character vector
Values: positive real integer
Default: 4

Output analog voltage levels, specified as a 2-element real-valued vector. These are the lower and upper output analog voltage levels corresponding to the minimum and maximum digital codes.

Programmatic Use

Block parameter: OutputLevels
Type: character vector
Values: 2-element real-valued vector
Default: [-2, 2]

Clock period of the digital input signal driving the DAC, specified as a positive real scalar.

Programmatic Use

Block parameter: SamplingPeriod
Type: character vector
Values: positive real scalar
Default: 1e-4

Configuration

Peak-to-peak voltage range represented by the digital input signal, specified as a scalar. The block uses this value to determine decision threshold spacing and mapping gain between input and output spans.

Programmatic Use

Block parameter: FullScaleRange
Type: character vector
Values: positive real scalar
Default: 4

Waveform shape of the DAC output symbol, specified as:

  • NRZ — Full period is active.

  • HRZ — First half of the period is active.

  • RZ — Second half of the period is active.

Programmatic Use

Block parameter: PulseShape
Type: character vector
Values: NRZ | HRZ | RZ
Default: NRZ

Option to determine how to model excess loop delay, specified as:

  • Fixed — Excess loop delay is fixed and determined by the parameter Delay time (s).

  • Variable — Excess loop delay is code-dependent and determined by the equation: delay=d0+d1x1·input, where d0 is the base delay, d1 is the delay coefficient, and x1 is the input scaling factor.

Programmatic Use

Block parameter: DelayType
Type: character vector
Values: Fixed | Variable
Default: Fixed

Constant propagation delay applied to DAC output, specified as a positive real scalar.

Dependencies

To enable this parameter, set Delay modeling type as Fixed in the Configuration tab.

Programmatic Use

Block parameter: FixedDelay
Type: character vector
Values: positive real scalar
Default: 5e-9

Minimum delay value for the code-dependent excess loop delay, specified as a positive real scalar.

Dependencies

To enable this parameter, set Delay modeling type as Variable in the Configuration tab.

Programmatic Use

Block parameter: BaseDelay
Type: character vector
Values: positive real scalar
Default: 1e-9

Scaling factor for the code-dependent excess loop delay, specified as a real scalar.

Dependencies

To enable this parameter, set Delay modeling type as Variable in the Configuration tab.

Programmatic Use

Block parameter: DelayCoefficient
Type: character vector
Values: real scalar
Default: 1e-11

Digital input multiplier before computing the code-dependent excess loop delay, specified as a real scalar.

Dependencies

To enable this parameter, set Delay modeling type as Variable in the Configuration tab.

Programmatic Use

Block parameter: ScalingFactor
Type: character vector
Values: real scalar
Default: 1

Maximum delay value for the code-dependent excess loop delay, specified as a positive real scalar. Use this parameter to help prevent DAC instability.

Dependencies

To enable this parameter, set Delay modeling type as Variable in the Configuration tab.

Programmatic Use

Block parameter: MaxDelay
Type: character vector
Values: positive real scalar
Default: 5e-9

Impairment

Select this parameter to enable a multiplicative gain error to the DAC output levels. By default, this option is deselected.

Programmatic Use

Block parameter: EnableGainError
Type: character vector
Values: off | on
Default: off

Error in the slope of the straight line interpolating the DAC transfer curve, specified as a real scalar in %FS (percentage full scale), FS (full scale), or LSB (least significant bit).

Dependencies

To enable this parameter, select Enable Gain Error in the Impairment tab.

Programmatic Use

Block parameter: GainError
Type: character vector
Values: real scalar
Default: 0 LSB

Select this parameter to enable an additive offset error to the DAC output. By default, this option is deselected.

Programmatic Use

Block parameter: EnableOffsetError
Type: character vector
Values: off | on
Default: off

Shifts quantization steps by a specific value, specified as a real scalar in %FS (percentage full scale), FS (full scale), or LSB (least significant bit).

Dependencies

To enable this parameter, select Enable Offset Error in the Impairment tab.

Programmatic Use

Block parameter: OffsetError
Type: character vector
Values: real scalar
Default: 0 LSB

Select this parameter to enable integral nonlinearity on the DAC transfer curve. By default, this option is deselected.

Programmatic Use

Block parameter: EnableINL
Type: character vector
Values: off | on
Default: off

Magnitude of the integral nonlinearity, specified as a real scalar in %FS (percentage full scale), FS (full scale), or LSB (least significant bit).

Dependencies

To enable this parameter, select Enable INL in the Impairment tab.

Programmatic Use

Block parameter: INL
Type: character vector
Values: real scalar
Default: 0 LSB

Variance of the Gaussian timing jitter applied to every DAC output transition, specified as a nonnegative real scalar in s2.

Programmatic Use

Block parameter: FullPeriodJitter
Type: character vector
Values: nonnegative real scalar
Default: 1e-18

Random number generator seed for full-period jitter, specified as a nonnegative real scalar. Use a fixed seed to help ensure reproducibility.

Programmatic Use

Block parameter: FullPeriodJitterSeed
Type: character vector
Values: nonnegative real scalar
Default: 12345

Tips

  • The block models a multi-bit DAC in CT-DSM feedback paths. While it can accept continuous inputs (performing quantization as a convenience feature), it only models DAC non-idealities. For accurate ADC and DAC modeling, use dedicated ADC and DAC blocks in series.

Version History

Introduced in R2026b