• English
  • German
  • Chinese


multi-tone DDS mode

Picture of 16 DDS cores output in frequency domainDDS – Direct Digital Synthesis – is a method for generating arbitrary periodic waves from a single, fixed-frequency reference clock and is widely used in signal generation applications. The DDS functionality implemented on Spectrum Instrumentation’s AWGs is based on the principle of adding multiple “DDS cores” to generate a multi-carrier (multi-tone) signal, with each carrier having its own well-defined frequency, amplitude and phase. In addition to these static parameters, there are also build in dynamic parameters like frequency and amplitude slope to allow for intrinsic linear changes for multiple cores.

In the simplest case, the user writes the commands frequency and amplitude for a specific DDS core to the card. The card will then output a single periodic sine wave continuously until the user writes a change to the card. These changes are written to the card in the form of commands (see below tables for a list of the available commands) that are added to a First-In-First-Out (FIFO) buffer. These commands are then executed in the order in which they were written to the card.

The right-hand example shows the output of 16 DDS cores with separate fixed frequencies between 50 MHz and 125 MHz with a spacing of 5 MHz

Available DDS Commands

Build-in single-line commands:

  • Set Frequency of DDS core
  • Set Amplitude of DDS core
  • Set Phase of DDS core
  • Start linear frequency slope for DDS core
  • Start linear amplitude slope for DDS core
  • Set digital outputs
  • Change execution mode
  • Set timer for output

Advanced commands consisting of multiple commands

The fast DMA-controlled command transfer from PC to AWG card can send several million DDS commands per second. This opens up a wide flexibility and allows functions like:

  • S-Shape frequency/amplitude slopes consisting of multiple linear slope commands
  • Custom frequency/amplitude slopes consisting of multiple linear slope commands
  • AM modulation consiting of multiple amplitude change commands
  • FM modulation consiting of multiple frequency change commands
  • FSK (Frequency Shift Keying) modulation consisting of multiple frequency change commands

Example (C++ API)

The following example generates a 110 MHz signal for 100 ms, do a ramp from 110 MHz to 120 MHz within the next 100 ms and then keep the 120 MHz until stopped. general AWG initialization and amplifier settings are not shown here:

spcm_dwSetParam_i32 (hCard, SPC_DDS_TRG_SRC, SPCM_DDS_TRG_SRC_TIMER);
spcm_dwSetParam_d64 (hCard, SPC_DDS_TRG_TIMER, 0.1);

// Initial 110 MHz frequency
spcm_dwSetParam_d64 (hCard, SPC_DDS_CORE0_AMP, 1);
spcm_dwSetParam_d64 (hCard, SPC_DDS_CORE0_PHASE, 0);
spcm_dwSetParam_d64 (hCard, SPC_DDS_CORE0_FREQ, MEGA(110));
spcm_dwSetParam_i32 (hCard, SPC_DDS_CMD, SPCM_DDS_CMD_EXEC_AT_TRG);

// slope from 110 MHz to 120 MHz (10 MHz change in 100 ms = 100 MHz change in 1 second)
spcm_dwSetParam_d64 (hCard, SPC_DDS_CORE0_FREQ_SLOPE, MEGA(100));
spcm_dwSetParam_i32 (hCard, SPC_DDS_CMD, SPCM_DDS_CMD_EXEC_AT_TRG);

// Final 120 MHz frequency
spcm_dwSetParam_d64 (hCard, SPC_DDS_CORE0_FREQ, MEGA(120));
spcm_dwSetParam_d64 (hCard, SPC_DDS_CORE0_FREQ_SLOPE, 0);
spcm_dwSetParam_i32 (hCard, SPC_DDS_CMD, SPCM_DDS_CMD_EXEC_AT_TRG);

// Write all commands to card

spcm_dwSetParam_i32 (hCard, SPC_DDS_CMD, SPCM_DDS_CMD_WRITE_TO_CARD);

Command FIFO

Diagram of DDS commands with outputThe DDS functionality is controlled through commands that are written to a driver-internal list and then written to the card when the command SPCM_DDS_CMD_WRITE_TO_CARD is sent. These lists of commands are put onto a First-In-First-Out (command queue) buffer
and executed one after the other. The right hand command queue overview gives an idea how commands are used to generate the different output states of a single DDS core. Commands in the command queue are executed from top to bottom.

The settings are first written to a set of “shadow registers” that are a separate set of registers in parallel to the active DDS configuration registers. One command after the other manipulates the shadow registers until the command SPCM_DDS_CMD_EXEC_AT_TRIG is received, then writing from the FIFO to the shadow registers is stopped and the card starts waiting for the next internal trigger. After a trigger is received the shadow registers are transferred to the active registers.

Timing and Trigger

The DDS commands are written into AWG internal memory and can be executed in three different ways:

  • Manual: Commands from the queue are executed with a separate execution command. Timing is solely done by software.
  • Triggered: Command execution waits on an external trigger signal. This allows tight interactionn with experiment control.
  • Timer: A programmable timer with a very fine time resolution defines the command execution times.

In most cases, a combination of all three modes will be used. Mixing these modes in between a sequence of commands is no problem. The above example shows the usage of the timer

Advantages of multi-tone DDS mode

Block Diagram of DDSThe DDS mode can be used everywhere, where pure sine signals are needed for the application. Instead of calculating and transfering thousends or even millions of samples to AWG memory, a few simple DDS commands can do the job. The multi-tone DDS mode is especially helpful when controlling Acousto-Optic Deflectors (AOD) and Acousto-Optic Modulators (AOM) as often used in pysics and especially quantum experiments. Using multi-tone sine signals with frequency slopes can move atoms in quantum experiments in an easy way.

This allows optical tweezer manipulation with a few commands from experiment control software.

Videos about the DDS option

Show on Yuoku


On location for you. Choose your region.

Europe USA Asia
Contact Europe
Phone +49 (0)4102 6956-0
Fax +49 (0)4102 6956-66
E-Mail info@spec.de
Contact USA
Phone +1 (201) 562-1999
Fax +1 (201) 820-2691
E-Mail sales@spectrum-instrumentation.com
Contact Asia
Phone +61 402 130 414
E-Mail greg.tate@spectrum-instrumentation.com

Request support. We are happy to help.

powered by webEdition CMS