SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG /...

73
SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Features 2 analog output channels 500 MSPS per channel, 200 MHz bandwidth 16-bits resolution (45.8 μV@ ±1.5 V output range) Embedded AWGs and Function Generators: 45-bit frequency resolution (5.68 μHz) 24-bit phase resolution (21.5 μdeg) Ultra-flexible modulation capabilities: AM, FM, PM, ASK, FSK, PSK, IQ, QAM, CDMA, etc. Modulating signals generated with the AWGs 4 MB, 128 MB or 1GB of waveform RAM Mechanical/Interface: 1 slot 3U: PXI Express or CompactPCI Express 350 MB/s (2.8 Gbps) transfer speed: PCIe x2 Independent DMA channels per output channel Software front panels with Signadyne VirtualKnob Software programming (VI): Any programming language: C, C++, LabVIEW, C#, MATLAB, Mathematica, Visual Basic, Python, etc. Hardware programming (HVI) using ProcessFlow: User-friendly flowchart-style programming interface Ultra-fast hard real-time processing & decision making Built-in inter-module synchronization & data exchange Completely robust, no OS & PC-independent execution Signadyne FPGA-based algorithms: FIR, PID, FFT, etc. Custom FPGA-based algorithms (VHDL/Simulink): Xilinx Virtex-5 SX95T FPGA Applications General purpose analog output RF / arbitrary waveform generation Telecom transmitter Software-Defined Radio (SDR) Hardware-In-the-Loop (HIL) testing High performance sequencing / process control ATE (Automated Test Equipment) R&D Equipment Rugged Embedded COTS Equipment (OEM) Industries General electronics & telecom Aerospace & defense Industrial Machinery Scientific research Medical devices Automotive Transportation General Description The SD-PXE-AOU-H0001 is a high performance PXI Express module with 2 analog outputs. It includes embedded Arbitrary Waveform Generators (AWGs), Function Generators (FG) and modulators, converting the module into a powerful ready- to-use Vector Signal Generator. The SD-PXE-AOU-H0001 is capable of generating any standard waveform (sinusoidal, triangular, square, DC voltages) or any arbitrary waveform defined by the user and stored in its onboard RAM. Using the embedded modulators, the output channels can be modulated in phase, frequency, amplitude or IQ in order to create any existing analog or digital modulation. The SD-PXE-AOU-H0001 can be controlled like a turnkey workbench instrument using the intuitive software front pan- els provided by Signadyne VirtualKnob [1]. For user-defined operation, the module can be controlled by software (Virtual Instrumentation) with Signadyne Programming Libraries [2], or can be hardware-programmed (Hard Virtual Instrumen- tation) using Signadyne ProcessFlow [3], without any knowledge of FPGA technology. For experienced users, custom FPGA-based processing can be implemented with MATLAB/Simulink or VHDL code. Rev. 1.4 (May 30, 2013) Product specifications are subject to change without notice. c 2013 Signadyne. All rights reserved.

Transcript of SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG /...

Page 1: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module

Features

• 2 analog output channels

• 500 MSPS per channel, 200 MHz bandwidth

• 16-bits resolution (∼ 45.8 μV @ ±1.5 V output range)

• Embedded AWGs and Function Generators:

• 45-bit frequency resolution (∼ 5.68 μHz)• 24-bit phase resolution (∼ 21.5 μdeg)

• Ultra-flexible modulation capabilities:

• AM, FM, PM, ASK, FSK, PSK, IQ, QAM, CDMA, etc.• Modulating signals generated with the AWGs

• 4 MB, 128 MB or 1GB of waveform RAM

• Mechanical/Interface:

• 1 slot 3U: PXI Express or CompactPCI Express• 350 MB/s (2.8 Gbps) transfer speed: PCIe x2• Independent DMA channels per output channel

• Software front panels with Signadyne VirtualKnob

• Software programming (VI):

• Any programming language: C, C++, LabVIEW, C#,MATLAB, Mathematica, Visual Basic, Python, etc.

• Hardware programming (HVI) using ProcessFlow:

• User-friendly flowchart-style programming interface• Ultra-fast hard real-time processing & decision making• Built-in inter-module synchronization & data exchange• Completely robust, no OS & PC-independent execution• Signadyne FPGA-based algorithms: FIR, PID, FFT, etc.• Custom FPGA-based algorithms (VHDL/Simulink):

• Xilinx Virtex-5 SX95T FPGA

Applications

• General purpose analog output

• RF / arbitrary waveform generation

• Telecom transmitter

• Software-Defined Radio (SDR)

• Hardware-In-the-Loop (HIL) testing

• High performance sequencing / process control

• ATE (Automated Test Equipment)

• R&D Equipment

• Rugged Embedded COTS Equipment (OEM)

Industries

• General electronics & telecom

• Aerospace & defense

• Industrial Machinery

• Scientific research

• Medical devices

• Automotive

• Transportation

General Description

The SD-PXE-AOU-H0001 is a high performance PXI Express module with 2 analog outputs. It includes embedded ArbitraryWaveform Generators (AWGs), Function Generators (FG) and modulators, converting the module into a powerful ready-to-use Vector Signal Generator. The SD-PXE-AOU-H0001 is capable of generating any standard waveform (sinusoidal,triangular, square, DC voltages) or any arbitrary waveform defined by the user and stored in its onboard RAM. Using theembedded modulators, the output channels can be modulated in phase, frequency, amplitude or IQ in order to create anyexisting analog or digital modulation.

The SD-PXE-AOU-H0001 can be controlled like a turnkey workbench instrument using the intuitive software front pan-els provided by Signadyne VirtualKnob [1]. For user-defined operation, the module can be controlled by software (VirtualInstrumentation) with Signadyne Programming Libraries [2], or can be hardware-programmed (Hard Virtual Instrumen-tation) using Signadyne ProcessFlow [3], without any knowledge of FPGA technology. For experienced users, customFPGA-based processing can be implemented with MATLAB/Simulink or VHDL code.

Rev. 1.4 (May 30, 2013)Product specifications are subject to change without notice.

c© 2013 Signadyne. All rights reserved.

Page 2: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Functional Block Diagram

Figure 1: SD-PXE-AOU-H0001 functional block diagram

Ordering Information

Product Number Description FPGA RAM (MB)

Standard Configuration

SD-PXE-AOU-H0001 2-Ch, 500-MSPS, 16-Bit, FPGA, Analog Out PXIe Virtex-5 SX95T 4

Memory Upgrades

SD-PXE-AOU-U0001-128 Upgrade to 128 MB RAM for SD-PXE-AOU-H0001

SD-PXE-AOU-U0001-1G Upgrade to 1 GB RAM for SD-PXE-AOU-H0001

Related Products

Product Number Description

SD-PXE-AOU-H0002 4 Ch, 500 MSPS, 200 MHz [4]

SD-PXE-AOU-H0003 2 Ch, 1 GSPS, 400 MHz [5]

SD-PXE-AOU-H0004 4 Ch, 1 GSPS, 400 MHz [6]

SD-SOF-LIB-WIN Programming Libraries [2]

SD-SOF-VKN-WIN Signadyne VirtualKnob [1]

SD-SOF-PFL-WIN Signadyne ProcessFlow [3]

Rev. 1.4 (May 30, 2013)Product specifications are subject to change without notice.

c© 2013 Signadyne. All rights reserved.

Page 3: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Specifications

Parameter Min Typ Max Units Comments

General

Analog Channels 2 O

Reference Clock 1 O Reference clock output

External Trigger 1 I/O Configurable operation

Arbitrary Waveform Generators 2 Blocks Available for carriers and modulating signals

Analog Outputs

Voltage -1.5 1.5 V On a 50 Ω load

Voltage Resolution 16 Bits ∼ 45.8 μV

Source Impedance 50 Ω

Sampling Rate 500 MSPS

Bandwidth 200 MHz Limited by a reconstruction filter

Reference Clock Output

Voltage 800 mVpp On a 50 Ω load

Power 2 dBm On a 50 Ω load

Source Impedance 50 Ω AC coupled

Frequency 10 or 100 MHz Generated from the internal clock. User se-lectable

Trigger I/O

VIH 2 5 V

VIL 0 0.8 V

VOH 2.4 3.3 V On a high Z load

VOL 0 0.5 V On a high Z load

Input Impedance 10 KΩ

Source Impedance TTL −

Output Speed 500 Mbps

Onboard Memory

Memory 4 1024 MBytes Product dependent, see Ordering Info. onpage 2

Points 2 512 MPoints Shared by all the channels

Sustainable Throughput 3000 MPoints/s Shared by all the channels

System Bus

Slots 1 Slot PXI Express or CompactPCI Express com-patible

PCI Express Link 1 2 4 Lanes Automatic negotiation, chassis dependent

PCI Express Speed 200 350 350 MBytes/s Automatic negotiation, chassis dependent

Sustainable Throughput 100 170 170 MPoints/s Automatic negotiation, chassis dependent

Internal Clock

Accuracy and Stability 100 ppm Chassis dependent. This value correspondsto a chassis that fulfils the PXI Expressspecifications

Power and Temperature

3.3 V Power Supply (PXIe) 1.5 A ∼ 5 W

12 V Power Supply (PXIe) 2 A ∼ 24 W

Operating Temperature -20 +55 oC In a standard chassis with forced ventilation

Rev. 1.4 (May 30, 2013) 3 / 73

Page 4: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Specifications

Parameter Min Typ Max Units Comments

AC Performance

Frequency Resolution 45 Bits ∼ 5.68 μHz

Phase Resolution 24 Bits ∼ 21.5 μdeg

SFDR (Spurious-Free Dynamic Range) Vout = 1 Vpp (4 dBm). Measured from DCto 500 MHz

fout = 10 MHz 60 63 dBc

fout = 40 MHz 60 63 dBc

fout = 80 MHz 61 64 dBc

fout = 120 MHz 66 69 dBc

fout = 160 MHz 64 67 dBc

fout = 200 MHz 60 63 dBc

Crosstalk (Adjacent Channels)

fout = 10 MHz <-105 -105 dB

fout = 40 MHz -85 -82 dB

fout = 80 MHz -75 -72 dB

fout = 120 MHz -88 -85 dB

fout = 160 MHz -73 -70 dB

fout = 200 MHz -85 -82 dB

Crosstalk (Non-adjacent Channels)

fout = 10 MHz <-105 -105 dB

fout = 40 MHz -86 -83 dB

fout = 80 MHz -78 -75 dB

fout = 120 MHz <-105 -105 dB

fout = 160 MHz -92 -89 dB

fout = 200 MHz -100 -97 dB

Average Noise Density -144 -140 dBm/Hz

4 / 73 Rev. 1.4 (May 30, 2013)

Page 5: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Typical AC Performance

Figure 2: Single-tone spectrum @ fout = 10 MHz

Figure 3: Single-tone spectrum @ fout = 80 MHz

Figure 4: Single-tone spectrum @ fout = 160 MHz

Figure 5: Single-tone spectrum @ fout = 40 MHz

Figure 6: Single-tone spectrum @ fout = 120 MHz

Figure 7: Single-tone spectrum @ fout = 200 MHz

Rev. 1.4 (May 30, 2013) 5 / 73

Page 6: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Interface

Connector Signal Name Direction Connector Type Description

0 TRG I/O SMA Digital trigger input or output

1 CLK O SMA Reference clock output

2 CH 0 O SMA Analog output channel 0

3 CH 1 O SMA Analog output channel 1

Figure 8: SD-PXE-AOU-H0001 front panel

6 / 73 Rev. 1.4 (May 30, 2013)

Page 7: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module

Contents

1 Theory of Operation 91.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2 Signal Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2.1 Standard Waveform Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.2 Arbitrary Waveform Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.3 Signal Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.4 Amplitude and DC Offset Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.3 Signal Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3.1 Angle Modulation (Frequency and Phase) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3.2 Amplitude Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.3.3 IQ Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.4 Clock and Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.4.1 Clock System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.4.2 Trigger I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.5 Operation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.5.1 Ready-to-use Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.5.2 User-defined Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2 VirtualKnob Front Panel 292.0.3 Front Panel Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.1 Signal Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.1.1 Arbitrary Waveform Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.2 Signal Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3 VI / HVI Programming 323.1 VI Programming Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2 HVI Programming Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.3 SD-AOU Class Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3.1 channelWaveShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3.2 channelFrequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3.3 channelPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.3.4 channelPhaseReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.3.5 channelAmplitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.3.6 channelOffset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.3.7 modulationAngleConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3.8 modulationAmplitudeConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.3.9 modulationIQconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.3.10 clockIOconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.3.11 triggerIOdirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.3.12 triggerIOwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.3.13 triggerIOread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.3.14 waveformLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.3.15 waveformFlush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.3.16 AWG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.3.17 AWGqueueWaveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.3.18 AWGflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.3.19 AWGstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.3.20 AWGstartMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3.21 AWGpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.3.22 AWGpauseMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.23 AWGresume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.3.24 AWGresumeMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.3.25 AWGstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3.26 AWGstopMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Rev. 1.4 (May 30, 2013) 7 / 73

Page 8: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.27 AWGtriggerExternalConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.3.28 AWGtrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.3.29 AWGtriggerMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.3.30 MathAssign (D=S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.3.31 MathArithmetics (R=A[+-*/]B) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.3.32 MathMultAcc (R=A[+-]B[*/]C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.3.33 open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.3.34 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.4 SD-Wave Class Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.4.1 new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.4.2 delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.5 Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

8 / 73 Rev. 1.4 (May 30, 2013)

Page 9: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1 Theory of Operation

1.1 Overview

The SD-PXE-AOU-H0001 has a very flexible and powerful output structure that allows the user to create complex wave-forms.

Figure 9: SD-PXE-AOU-H0001 functional block diagram. All channels have identical output structure.

As shown in Figure 10 on the following page, the SD-PXE-AOU-H0001 includes embedded Arbitrary Waveform Gener-ators (AWGs), Function Generators (FG) and modulators, converting the module into a powerful ready-to-use Vector SignalGenerator. The SD-PXE-AOU-H0001 is capable of generating any standard waveform (sinusoidal, triangular, square, DCvoltages) or any arbitrary waveform defined by the user and stored in its onboard RAM. Using the embedded modulators,the output channels can be modulated in phase, frequency, amplitude or IQ in order to create any existing analog or digitalmodulation.

Rev. 1.4 (May 30, 2013) 9 / 73

Page 10: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.2 Signal Generation

1.2.1 Standard Waveform Generation

Each output channel has a dedicated Function Generator (FG) which generates basic periodic signals. The FG is com-monly used to generate the RF carrier in modulation schemes.

Figure 10: The Function Generator within the SD-PXE-AOU-H0001 functional block diagram

Specifications

Parameter Min Typ Max Units Comments

General Specifications

Waveform Types 4 - Sinusoidal, triangular, square and DC

Frequency Range 0 200 MHz

Frequency Resolution 45 Bits ∼ 5.68 μHz

Phase Range 0 360 Deg

Phase Resolution 24 Bits ∼ 21.5 μdeg

Timing Specifications

Waveshape Change Latency 100 ns Using HVI Technology (Section 1.5.2 on page 25)

Waveshape Change Rate 10 ns Using HVI Technology (Section 1.5.2 on page 25)

Frequency Change Latency 120 ns Using HVI Technology (Section 1.5.2 on page 25)

Frequency Change Rate 10 ns Using HVI Technology (Section 1.5.2 on page 25)

Phase Change Latency 120 ns Using HVI Technology (Section 1.5.2 on page 25)

Phase Change Rate 10 ns Using HVI Technology (Section 1.5.2 on page 25)

Table 1: SD-PXE-AOU-H0001 Function Generators specifications

NOTE:

Waveform harmonics: Non-sinusoidal wave shapes (triangular, square, etc.) have high frequency components thatmay fall outside the bandwidth of the reconstruction filter if the fundamental frequency is too high. In this situation, theoutput analog signal may suffer some distortion due to the missing harmonics, becoming a sinusoidal as the fundamen-tal frequency approaches the cutoff frequency of the filter.

10 / 73 Rev. 1.4 (May 30, 2013)

Page 11: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

ADVANCED:

Phase coherent vs. phase continuous: Changes in the output signal are always phase continuous, not phasecoherent. Therefore, when, for example, the frequency is changed from freq1 to freq2 and changed back to freq1,the phase will not be the initial one. To achieve phase coherent behaviour, the channel accumulated phase can bereset (function channelPhaseReset, Section 3.3.4 on page 37). In addition, in HVI operation (Section 1.5 on page 24)the execution time is deterministic, which allows the user to calculate the new phase and adjust it after any frequencychange.

NOTE:

FGs vs AWGs: When the generation of periodic signals is needed, an FG has many advantages over a pure AWGsolution:

• The FG does not use onboard RAM.

• The waveshape, the frequency and the phase can be changed in real time without having to modify a staticwaveform loaded in memory.

• Achieving the same precision in frequency and phase with a pure AWG solution requires a prohibited amount ofmemory.

Programming Information

Function Comments Details

channelWaveShape It selects the output signal Section 1.2.3 on page 15 and Section 3.3.1 on page 34

channelFrequency It sets the frequency of the FG Section 3.3.2 on page 35

channelPhase It sets the phase of the FG Section 3.3.3 on page 36

channelPhaseReset It resets the accumulated phase Section 3.3.4 on page 37

Table 2: Programming functions related to the Function Generators

Rev. 1.4 (May 30, 2013) 11 / 73

Page 12: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.2.2 Arbitrary Waveform Generation

An Arbitrary Waveform Generator (AWG) is a powerful and flexible block designed to generate arbitrary analog waveforms(Figure 11). The number of AWGs available in the SD-PXE-AOU-H0001 is shown in Specifications on Page 3.

Figure 11: Arbitrary Waveform Generators (AWGs) in the SD-PXE-AOU-H0001

Each AWG has a queue system that allows the user to configure simple generation sequences, choosing many param-eters such as the trigger method (Table 3 on page 14), the start delay, the number of cycles, etc. Figure 12 shows somegeneration examples.

Figure 12: Examples of the AWGs queue configuration

12 / 73 Rev. 1.4 (May 30, 2013)

Page 13: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

TIP:

HVI Generation Sequences: The queue system of the Arbitrary Waveform Generators (AWGs) provides a way tocreate simple generation sequences. For more complex sequences, the best solution is the use of a Hard VirtualInstrument (HVI) programmed with Signadyne ProcessFlow [3]. HVIs are time deterministic with nanosecond resolution(Section 1.5 on page 24), and ProcessFlow provides a user-friendly flowchart programming environment.

Arbitrary waveform generation can performed using two methods:

a) AWG function: This function provides a one step solution to load, queue and run a single waveform directly from afile or an array in memory, as shown in Figure 11 on the facing page.

b) Step by step programming: AWG simplifies the setup of a single waveform, but does not allow the user to controlimportant aspects of the waveform generation:

• The precise moment when waveforms are transferred from file to the PC RAM and to the onboard RAM. Thismay be important for long waveforms and time-critical applications.

• The possibility to have a variety of waveforms in the PC RAM or in the onboard RAM in order to queue themrepeatedly in the AWGs in an efficient way.

• The possibility to prepare the AWG queue with multiple waveforms in advance before starting the generation.This is important to create more complex generation sequences and control the start time precisely (Figure 12on the preceding page).

Signadyne Programming Libraries allow the user to control every aspect of the arbitrary waveform generation (Fig-ure 13):

1) Create waveforms in the PC RAM with the SD-Wave Class (function New).2) Transfer the waveforms to the onboard RAM with waveformLoad.3) Queue the waveforms in any AWG to create the desired generation pattern (function AWGqueueWaveform).4) Start the generation with AWGstart and provide triggers if required.

Figure 13: Process to prepare and run arbitrary waveforms

TIP:

Pausing and Resuming an AWG: The function AWGpause pauses the AWG operation, leaving the last waveform pointat the output. The waveform generation can be resumed calling AWGresume.

Note: After a call to AWG, the selected AWG is running, because this function performs an AWGstart automatically.

Prescaler: Each queued waveform can have a sampling clock prescaler associated with it. This prescaler divides theeffective waveform sampling rate providing a way to reduce waveform sizes.

ADVANCED:

Prescaler and aliasing: Note that reducing the effective sampling rate produces aliasing inside the reconstruction filterbandwidth. Therefore, this unfiltered alias appears at the output.

Rev. 1.4 (May 30, 2013) 13 / 73

Page 14: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Function triggerMode (const & value) Trigger Type Description

Auto AUTOTRIG 0 (default) Hardware Triggers are generated continuously in an automaticway

VI/HVITrigger

VIHVITRIG 1 Software (VI)Hardware (HVI)

The AWG is triggered by the function AWGtrigger(Section 3.3.28 on page 62) provided that the AWG isrunning. AWGtrigger can be executed from a VI or anHVI (see HVI and VI details, Section 1.5.2 on page 25)

ExternalTrigger

EXTTRIG 2 Hardware The AWG waits for an external trigger (Table 4)

Table 3: Trigger methods for the waveforms queued in an AWG (function AWG, Section 3.3.16 on page 49, or AWGqueue-Waveform, Section 3.3.17 on page 51)

Programming Definitions

Waveform Description Name Value

External Trigger The external trigger is the TRG connector of the module TRIG EXTERNAL 0

PXI Trigger The external trigger is a PXI trigger line TRIG PXI 4000

Table 4: External trigger source for the AWGs (parameter externalSource in function AWGtriggerExternalConfig, Sec-tion 3.3.27 on page 61)

Programming Definitions

Waveform Description Name Value

Active High Trigger is active when it is at level high TRIG HIGH 1

Active Low Trigger is active when it is at level Low TRIG LOW 2

Rising Edge Trigger is active on the rising edge TRIG RISE 3

Falling Edge Trigger is active on the falling edge TRIG FALL 4

Table 5: External trigger behaviour for the AWGs (parameter triggerBehaviour function AWGtriggerExternalConfig, Sec-tion 3.3.27 on page 61)

Programming Definitions

Waveform Description Name Value

Analog Analog normalized waveforms (-1..1) defined with doubles WAVE ANALOG 0

IQ Analog normalized waveforms (-1..1) defined with doubles, withtwo components (I and Q)

WAVE IQ 2

IQ Polar Analog normalized waveforms (-1..1) defined with doubles, withtwo components (Amplitude and Phase)

WAVE IQPOLAR 3

Digital Digital waveforms (-1..1) defined with integers WAVE DIGITAL 5

Table 6: Waveform Types for the (parameter waveformType in function new, Section 3.4.1 on page 69)

14 / 73 Rev. 1.4 (May 30, 2013)

Page 15: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.2.3 Signal Selection

The function channelWaveShape (Section 3.3.1 on page 34) controls the signal generation of the SD-PXE-AOU-H0001,allowing the user to select between the different waveshapes of the Function Generator (Section 1.2.1 on page 10) and theAWG (Section 1.2.2 on page 12) of the corresponding channel.

Options

Programming Definitions

Function Description Name Value

No Signal The output signal is set to 0. All other channel settings are main-tained

AOU OFF (default) -1

Sinusoidal Generated by the Function Generator AOU SINUSOIDAL 1

Triangular Generated by the Function Generator AOU TRIANGULAR 2

Square Generated by the Function Generator AOU SQUARE 4

DC Normalized constant value in order to generate DC voltages. Inthis configuration, the output voltage will be set by the channelamplitude setting

AOU DC 5

Arbitrary Waveform Selects the Arbitrary Waveform Generator associated to the chan-nel (for channel x, only Arbitrary Waveform Generator x can beused)

AOU AWG 6

Table 7: Output signal selection (parameter waveShape in function channelWaveShape, Section 3.3.1 on page 34)

Specifications

Parameter Min Typ Max Units Comments

Timing Specifications

Signal Change Latency 100 ns Using HVI Technology (Section 1.5.2 on page 25)

Signal Change Rate 10 ns Using HVI Technology (Section 1.5.2 on page 25)

Table 8: Output signal selection timing specifications

Programming Information

Function Comments Details

channelWaveShape It selects the output signal Section 3.3.1 on page 34

Table 9: Programming functions related to the signal selection

Rev. 1.4 (May 30, 2013) 15 / 73

Page 16: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.2.4 Amplitude and DC Offset Settings

Each output channel in the SD-PXE-AOU-H0001 has an amplitude and offset control as shown in Figure 14.

Figure 14: Amplitude and offset control within the SD-PXE-AOU-H0001 functional block diagram

Specifications

Parameter Min Typ Max Units Comments

General Specifications

Amplitude Range -1.5 1.5 Volts

Amplitude Resolution 16 Bits ∼ 45.8 μV

Offset Range -1.5 1.5 Volts

Offset Resolution 16 Bits ∼ 45.8 μV

Timing Specifications

Amplitude Change Latency 70 ns Using HVI Technology (Section 1.5.2 on page 25)

Amplitude Change Rate 2 ns Using HVI Technology (Section 1.5.2 on page 25)

Offset Change Latency 70 ns Using HVI Technology (Section 1.5.2 on page 25)

Offset Change Rate 2 ns Using HVI Technology (Section 1.5.2 on page 25)

Table 10: Output amplitude and DC offset specifications

Programming Information

Function Comments Details

channelAmplitude It sets the output amplitude Section 1.2.3 on the previous page and Section 3.3.1 on page 34

channelOffset It sets the output DC offset Section 3.3.6 on page 39

Table 11: Programming functions related to the amplitude and DC offset controls

16 / 73 Rev. 1.4 (May 30, 2013)

Page 17: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.3 Signal Modulation

1.3.1 Angle Modulation (Frequency and Phase)

The output signal of the Function Generator (Section 1.2.1 on page 10) can be modulated in frequency or in phase usingthe angle modulator as shown in Figure 15.

Figure 15: The angle modulator within the SD-PXE-AOU-H0001 functional block diagram

Specifications

Parameter Min Typ Max Units Comments

General Specifications (Frequency)

Deviation -Dev. Gain +Dev. Gain MHz

Deviation Resolution 16 Bits ∼3.05KHz..47.6μHz (dev. gain dependent)

Deviation Gain 0 200 MHz

Deviation Gain Resolution 16 Bits ∼ 3.05 KHz

Modulating Signal BW 0 250 MHz AWG Nyquist limitation (500 MSPS)

Modulating Signal Resolution 16 Bits AWG resolution (deviation resolution)

General Specifications (Phase)

Deviation -Dev. Gain +Dev. Gain Deg

Deviation Resolution 16 Bits ∼5.5 mdeg..83 ndeg (dev. gain dependent)

Deviation Gain 0 180 Deg

Deviation Gain Resolution 16 Bits ∼ 5.5 mdeg

Modulating Signal BW 0 250 MHz AWG Nyquist limitation (500 MSPS)

Modulating Signal Resolution 16 Bits AWG resolution (deviation resolution)

Timing Specifications

- - - - - Given by the AWG (Section 1.2.2 onpage 12)

Table 12: Angle modulator specifications

Rev. 1.4 (May 30, 2013) 17 / 73

Page 18: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Options

Programming Definitions

Function Description Name Value

No Modulation Modulation is disabled AOU MOD OFF (default) 0

Frequency Modulation The AWG is used to modulate the channel frequency AOU MOD FM 1

Phase Modulation The AWG is used to modulate the channel phase AOU MOD PM 2

Table 13: Angle modulation options (parameter modulationType in function ModulationAngleConfig, Section 3.3.7 onpage 40)

The modulating signal is generated using the Arbitrary Waveform Generator (AWG, Section 1.2.2 on page 12) associ-ated to that particular channel, e.g. AWG0 for channel 0. The angle modulator allows the user to create any analog/digitalfrequency or phase modulation, e.g. FM, FSK, PM, PSK, DPSK, etc.

The output signal of a channel using the frequency modulation is the following:

Output(t) = A ∙ cos[2π(fc + G ∙ AWG(t)) ∙ t + φc] (1)

where:

• A is the channel amplitude (set by the function channelAmplitude, Section 3.3.5 on page 38)

• G is the deviation gain or peak frequency deviation (set by modulationAngleConfig, Section 3.3.7 on page 40).

• AWG(t) is the normalized modulating signal generated by the AWG (Section 1.2.2 on page 12)

• cos(2πfc + φc) is the carrier signal, generated with the Function Generator (Section 1.2.1 on page 10)

As an example, for the generation of an FM signal with an amplitude of 0.8 Vp, a modulation index (h) equal to 0.5and a maximum frequency of the modulating signal of 10 MHz, the settings must be A=0.8 and G=5,000,000 (G =h ∙ maxfreq[AWG(t)]).

The output signal of a channel using the phase modulation is the following:

Output(t) = A ∙ cos(2πfc + φc + G ∙ AWG(t)) (2)

where:

• A is the channel amplitude (set by the function channelAmplitude, Section 3.3.5 on page 38)

• G is the deviation gain or peak phase deviation (set by modulationAngleConfig, Section 3.3.7 on page 40).

• AWG(t) is the normalized modulating signal generated by the AWG (Section 1.2.2 on page 12)

• cos(2πfc + φc) is the carrier signal, generated with the Function Generator (Section 1.2.1 on page 10)

As an example, for the generation of a PM signal with an amplitude of 0.8 Vp and a modulation index (h) equal to 1800, thesettings must be A=0.8 and G=180 (G=h).

Programming Information

Function Comments Details

modulationAngleConfig It configures the angle modulator Section 3.3.7 on page 40

AWG functions They control the modulating signal Section 1.2.2 on page 12

FG functions They control the carrier signal Section 1.2.1 on page 10

Table 14: Programming functions related to the angle modulator

18 / 73 Rev. 1.4 (May 30, 2013)

Page 19: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.3.2 Amplitude Modulation

The amplitude modulator can be used to modulate the amplitude of the output signal as show in Figure 16. This modulatorcan be used also to change the DC offset of the output signal.

Figure 16: The amplitude modulator within the SD-PXE-AOU-H0001 functional block diagram

Specifications

Parameter Min Typ Max Units Comments

General Specifications (Amplitude & Offset)

Deviation -Dev. Gain +Dev. Gain Vp

Deviation Resolution 16 Bits ∼ 45.78 μV (limited by the DAC Precision)

Deviation Gain 0 1.5 Vp

Deviation Gain Resolution 16 Bits ∼ 45.78 μV (limited by the DAC Precision)

Modulating Signal BW 0 250 MHz AWG Nyquist limitation (500 MSPS)

Modulating Signal Resolution 16 Bits AWG resolution (deviation resolution)

Timing Specifications

- - - - - Given by the AWG (Section 1.2.2 onpage 12)

Table 15: Amplitude modulator specifications

The modulating signal is generated using the Arbitrary Waveform Generator (AWG, Section 1.2.2 on page 12) as-sociated to that particular channel, e.g. AWG0 for channel 0. The amplitude modulator allows the user to create anyanalog/digital amplitude modulation, e.g. AM, ASK, etc.

The output signal of a channel using the amplitude modulator is the following:

Output(t) = (A + G ∙ AWG(t)) ∙ cos(2πfc + φc) (3)

where:

• A is the channel amplitude (set by the function channelAmplitude, Section 3.3.5 on page 38)

• G is the deviation gain (set by the function modulationAmplitudeConfig, Section 3.3.8 on page 41).

Rev. 1.4 (May 30, 2013) 19 / 73

Page 20: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

• AWG(t) is the normalized modulating signal generated by the AWG (Section 1.2.2 on page 12)

• cos(2πfc + φc) is the carrier signal, generated with the Function Generator (Section 1.2.1 on page 10)

As an example, for the generation of an AM signal with an amplitude of 0.8 Vp and a modulation index (h) equal to 0.5, thesettings must be A=0.8 and G=0.32 (G = h ∙ A2).

The output signal of a channel using the amplitude modulator to modulate the offset is the following:

Output(t) = A ∙ cos(2πfc + φc) + G ∙ AWG(t) (4)

Options

Function modulationType (const & value) Description

No Modulation AOU MOD OFF 0 (default) Modulation is disabled. The channel amplitude and off-set are only set by the main registers

Amplitude Modulation AOU MOD AM 1 The modulating signal is used to modulate the channelamplitude

Offset Modulation AOU MOD OFFSET 2 The modulating signal is used to modulate the channeloffset

Table 16: Amplitude modulation options (function modulationAmplitudeConfig, Section 3.3.8 on page 41)

NOTE:

Mutual Exclusions for Modulations: As shown in the functional diagram of Figure 16 on the preceding page, the ampli-tude modulator can be used with signals coming from the Function Generator directly, the AWG or the frequency/phasemodulators. Therefore, the latter can be combined with amplitude modulation at will (although it only makes sense forfrequency/amplitude modulations, because for phase/amplitude modulations there is a dedicated IQ operation, Sec-tion 1.3.3 on the next page), which uses internally the amplitude and the angle modulator.

Programming Information

Function Comments Details

modulationAmplitudeConfig It configures the amplitude modulator Section 3.3.8 on page 41

AWG functions They control the modulating signal Section 1.2.2 on page 12

FG functions They control the carrier signal Section 1.2.1 on page 10

Table 17: Programming functions related to the amplitude modulator

20 / 73 Rev. 1.4 (May 30, 2013)

Page 21: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.3.3 IQ Modulation

The output signal of the Function Generator (Section 1.2.1 on page 10) can be modulated with in-phase (I) and quadrature(Q) components using the IQ modulator as shown in Figure 17.

Figure 17: The IQ modulator within the SD-PXE-AOU-H0001 functional block diagram

Specifications

Parameter Min Typ Max Units Comments

General Specifications

Amplitude Deviation -1.5 +1.5 Vp

Amplitude Deviation Resolution 16 Bits ∼ 45.78 μV

Phase Deviation -180 +180 Deg

Phase Deviation Resolution 16 Bits ∼ 5.5 mdeg

Modulating Signals BW 0 250 MHz AWG Nyquist limitation (500 MSPS)

Modulating Signals Resolution 16 Bits AWG resolution (deviation resolution)

Timing Specifications

- - - - - Given by the AWG (Section 1.2.2 on page 12)

Table 18: IQ modulator specifications

The modulating signal is generated using the Arbitrary Waveform Generator (AWG, Section 1.2.2 on page 12) associ-ated to that particular channel, e.g. AWG0 for channel 0. In this case, the waveform loaded into the AWG is composed bytwo waveforms (I and Q components). Please notice that IQ waveforms are sometimes called complex waveforms due tothe mathematical form I(t)+iQ(t).

The output signal of a channel using the IQ modulator of the SD-PXE-AOU-H0001 is the following:

Output(t) =A√

2∙ [AWGI(t) ∙ cos(2πfc + φc) − AWGQ(t) ∙ sin(2πfc + φc)] (5)

where:

• A is the channel amplitude (set by the function channelAmplitude, Section 3.3.5 on page 38)

• AWGQ(t) and AWGI(t) are the normalized modulating signals generated by the AWG (Section 1.2.2 on page 12)

Rev. 1.4 (May 30, 2013) 21 / 73

Page 22: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

• cos / sin(2πfc + φc) is the carrier signal, generated with the Function Generator (Section 1.2.1 on page 10)

It is also possible to use the IQ modulator with amplitude and phase components:

Output(t) = A ∙ AWGA(t) ∙ cos(2πfc + φc +π

2∙ AWGφ(t)) (6)

where:

• A is the channel amplitude (set by the function channelAmplitude, Section 3.3.5 on page 38)

• AWGA(t) and AWGφ(t) are the normalized modulating signals generated by the AWG (Section 1.2.2 on page 12)

• cos(2πfc + φc) is the carrier signal, generated with the Function Generator (Section 1.2.1 on page 10)

NOTE:

Mathematical Background of IQ Modulation

The IQ modulation is based on the decomposition of the output signal in sinus and cosinus

A ∙ cos(2πfc + φc + φ) = A ∙ cos(2πfc + φc) cos(φ) − A ∙ sin(2πfc + φc) sin(φ) (7)

where the I and Q components are defined as follows

I = A ∙ cos(φ)

Q = A ∙ sin(φ)(8)

and therefore, the IQ components become very useful to set the amplitude (A) and the phase (φ) of the output signal,giving as a result the IQ modulation (or QAM, Quadrature Amplitude Modulation):

A ∙ cos(2πfc + φc + φ) = I ∙ cos(2πfc + φc) − Q ∙ sin(2πfc + φc) (9)

NOTE:

Mutual Exclusions for Modulations: Internally, the IQ modulation uses the amplitude and the angle modulators, andtherefore they cannot be used when the module is working in IQ mode

Programming Information

Function Comments Details

modulationIQconfig It configures the IQ modulator Section 3.3.9 on page 42

AWG functions They control the modulating signal Section 1.2.2 on page 12

FG functions They control the carrier signal Section 1.2.1 on page 10

Table 19: Programming functions related to the IQ modulator

22 / 73 Rev. 1.4 (May 30, 2013)

Page 23: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.4 Clock and Trigger

1.4.1 Clock System

The SD-PXE-AOU-H0001 clock system (Figure 18) uses the internal clock provided by the chassis as a reference clock.This reference clock is jitter cleaned by the module, resulting in a very high quality clock. This implementation achieves ajitter and phase noise above a 100 Hz independently of the source clock, depending on the chassis only for the frequencyabsolute precision and long term stability. A copy of the system clock is available at the CLK connector, which operationcan be configured by the user (Table 20).

ADVANCED:

The reference clock is taken from the signals PXIe CLK100, in the case of PXI Express, and RefClk, in the case ofCompactPCI Express. In some PXI Express chassis, the user can replace the PXIe CLK100 with an external reference(with a reference input connector or with a PXI Express timing module, see chassis specifications).

Figure 18: SD-PXE-AOU-H0001 simplified clock system diagram

CLK Connector Function clockConfig Description

Disable n/a 0 (default) The CLK connector is not used

Output 10 MHz 10 A 10 MHz copy of the system clock is available at the CLKconnector

50 MHz 50 A 50 MHz copy of the system clock is available at the CLKconnector

Table 20: SD-PXE-AOU-H0001 output clock configuration (function clockIOconfig, Section 3.3.10 on page 43)

1.4.2 Trigger I/O

The SD-PXE-AOU-H0001 has a general purpose input/output trigger (TRG connector). This signal can be used as generalpurpose digital IO or as a trigger input as shown in Table 21.

Function Direction triggerConfig (const & value) Description

Digital Output O AOU TRG OUT 0 TRG operates as a general purpose digital out-put signal, which can be written by the user soft-ware

Digital Input / Trigger I AOU TRG IN 1 (default) TRG operates as a trigger (Table 3 on page 14),or as general purpose digital input signal, whichcan be read by the user software

Table 21: SD-PXE-AOU-H0001 TRG connector configuration (function triggerIOdirection, Section 3.3.11 on page 44)

Rev. 1.4 (May 30, 2013) 23 / 73

Page 24: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.5 Operation Modes

NOTE:

The following information describes how Signadyne hardware modules can be operated. These modes of operation arenot mutually exclusive , and therefore can be combined to develop any control, test and measurement application.

1.5.1 Ready-to-use Operation

All Signadyne modules can be used as a classical workbench instrument using Signadyne VirtualKnob [1], our ready-to-use software front panels for live operation. VirtualKnob converts Signadyne modules into turnkey instruments for standardtest and measurement applications.

Figure 19: ProcessFlow provides software front panels to operate the modules as classical workbench instruments.

24 / 73 Rev. 1.4 (May 30, 2013)

Page 25: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

1.5.2 User-defined Operation

Signadyne modules are fully programmable and controllable from the PC, allowing the user to completely customize theiroperation. The modularity, scalability, latency and speed of the PXI Express standard outperforms any other programablecontrol, test and measurement solution.

a) Virtual Instrument (VI)

Virtual instrumentation is the use of customizable software to create user-defined control, test and measurement sys-tems, called Virtual Instruments (VI). In a normal VI, instructions are executed by the user PC, and only the input/outputcommands are sent to the modules (Figure 20). Therefore, the speed, latency, and real-time performance is limited by thePC.

Figure 20: Virtual Instrument (VI) operation. The user-defined software (VI) is executed in the system computer and thecommands are transferred to the modules.

Signadyne delivers highly optimized programming libraries to program VIs in nearly any programming language, e.g.C/C++, LabVIEW, MATLAB, etc.

ADVANCED:

Using advanced programming techniques -e.g. multithreading, callback functions, onboard waveform buffering, DMA,etc.- increases the performance of the system execution. Our libraries do make use of these advanced techniques.

NOTE:

Some manufacturers refer to some of these advanced techniques as ”hardware triggering”, but this concept must notbe confused with Signadyne’s Hard Virtual Instrument (HVI).

Rev. 1.4 (May 30, 2013) 25 / 73

Page 26: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

b) Hard Virtual Instrument (HVI)

With Signadyne’s exclusive hard virtual instrumentation technology the user can write custom software directly into anySignadyne hardware module, extending the concept and capabilities of virtual instrumentation. In a Hard Virtual Instrument(HVI), the user program is executed by the hardware modules independently of the computer, which stays free for otherVI tasks, like visualization, user interaction, etc. The I/O modules run in parallel, completely synchronized, and exchangedata and decisions in real-time (Figure 21). The result is a set of modules that behave like a single integrated real-timeinstrument.

Figure 21: Hard Virtual Instrument (HVI) operation. The user HVI program is executed inside the Signadyne PXIe modules,and the computer is only occupied with other VI processes (e.g. data post-processing, visualization, etc.). All cards in anHVI work perfectly synchronized.

NOTE:

Signadyne ProcessFlow (HVI Programming Environment): HVIs are programmed with Signadyne ProcessFlow [3],an HVI programming environment with a user-friendly flowchart-style interface, compatible with all Signadyne hardwaremodules.

Signadyne’s hard virtual instrumentation technology provides:

• User-friendly flowchart-style programming interface: Signadyne ProcessFlow provides an intuitive flowchart-style programming environment that makes HVI programming extremely fast and easy (Figure 22 on the next page).Using ProcessFlow and its set of built-in instructions (the same instructions available for VIs), the user can programthe hardware modules without any knowledge of FPGA technology, VHDL, etc.

• Ultra-fast hard real time execution, processing and decision making: Execution is hardware timed and can beas fast as 1 nanosecond, outperforming any real-time operating system.

• Complete robustness: Execution is performed by hardware, without operating system, and independently of theuser PC.

• Off-the-shelf intermodule synchronization and data exchange: Each HVI is defined by a group of PXIe moduleswhich work perfectly synchronized, without the need of any external trigger, additional external hardware or any PXISystem Timing Module. In addition, Signadyne modules exchange data and decisions for ultra-fast control algorithms.

• Signadyne/user-defined FPGA-based processing: Signadyne delivers ready-to-use FPGA-based functions likeFFTs, FIRs, PIDs, etc., which can be easily included in an HVI. In addition to these predefined functions, the user canalso include custom FPGA-based functions implemented with MATLAB/Simulink or VHDL (Figure 23 on the facingpage).

26 / 73 Rev. 1.4 (May 30, 2013)

Page 27: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Figure 22: Signadyne ProcessFlow provides an intuitive flowchart environment to program hard real-time systems withof-the-shelf inter-module synchronization.

Figure 23: Signadyne ProcessFlow provides tools to easily program any Signadyne hardware module with build-in instruc-tions and FPGA-based functions.

Rev. 1.4 (May 30, 2013) 27 / 73

Page 28: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

c) VIs and HVIs Interaction

HVIs outperform VIs in terms of speed, real-time processing, intermodule synchronization, robustness, etc., but thereare still some non-time-critical tasks that can only be performed by a VI, like for example: user interaction, visualization,or processing and decisions tasks which are too complex to be implemented by hardware. Therefore, a complex control,test and measurement system may require the combination of VIs and HVIs, and with Signadyne programming tools thiscombination can be performed seamlessly.

A Signadyne HVI can be fully control by a VI with instructions like start, stop, pause, etc. Signadyne ProgrammingLibraries provide also highly optimized DMA-based data transfer between VIs and HVIs, and an efficient event system tosynchronize them (Figure 24).

Figure 24: With Signadyne Programming Libraries, VIs and HVIs can be combined seamlessly for complex control, testand measurement systems.

28 / 73 Rev. 1.4 (May 30, 2013)

Page 29: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

2 VirtualKnob Front Panel

As mentioned in Section 1.5.1 on page 24, all Signadyne modules can be used as a classical workbench instrument usingSignadyne VirtualKnob [1], our ready-to-use software front panels for live operation. This Chapter describes the basicoperations of the SD-PXE-AOU-H0001 VirtualKnob front panel.

2.0.3 Front Panel Overview

Figure 25 shows the SD-PXE-AOU-H0001 VirtualKnob front panel, which appears automatically when VirtualKnob islaunched and the module is connected to the chassis. If there are no modules available, VirtualKnob will launch ”DemoOffline” modules.

Figure 25: SD-PXE-AOU-H0001 front panel overview.

When VirtualKnob is launched, the SD-PXE-AOU-H0001 front panel appears empty, waiting for the user to add ”Chan-nels”, which are windows that control the channel operation. For maximum visualization flexibility, output channels can be

Rev. 1.4 (May 30, 2013) 29 / 73

Page 30: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

added as new Panels or as Tabs within an existing Panel.

2.1 Signal Generation

Figure 26 shows the signal generation controls of the SD-PXE-AOU-H0001 in VirtualKnob.

Figure 26: SD-PXE-AOU-H0001 signal generation control.

2.1.1 Arbitrary Waveform Generation

Figure 27 on the next page shows the dialogs and the workflow to generate arbitrary waveforms in VirtualKnob using theAWGs (Section 1.2.2 on page 12).

AWG Workflow:

1) Configuration of the external AWG triggers (optional): If external triggers are required, this dialog must be usedto configure the source (external trigger connector, PXI trigger lines, etc.,) and the behaviour (logic level high/low,rising/falling edge, etc.).

2) Waveforms loading: Waveforms must be transferred to the onboard RAM in order to put them in the AWG queue.This dialog allows the user to select the waveform files and to assign custom waveform names. The waveforms aretrasnferred to the onboard RAM when the dialog is closed.

3) AWG queue configuration: The waveforms loaded into the onboard RAM can be pushed into the correspondingAWG queue. This dialog allows the user to select the AWG queue options described in Section 1.2.2 on page 12.

Once the waveforms are queued in the corresponding AWG, they can be launched using the AWG control button shownin Figure 26.

30 / 73 Rev. 1.4 (May 30, 2013)

Page 31: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

Figure 27: SD-PXE-AOU-H0001 AWG workflow.

2.2 Signal Modulation

Figure 28 shows the tab to configure the modulations in the Channel Panel.

Figure 28: SD-PXE-AOU-H0001 signal modulation control.

As descrived in Section 1.3 on page 17, the modulating signal for the modulators of one channel comes from the AWGcorresponding to that particular channel. Therefore, the user must configure the AWG (See AWG workflow in VirtualKnob(Section 2.1.1 on the preceding page) and the modulators as shown in Figure 28. After this process, the user must run theAWG in the channel panel (Figure 25 on page 29).

As the IQ modulator uses both the amplitude modulator and the phase modulator, it can be selected from any of the”modulation type” combo boxes.

Rev. 1.4 (May 30, 2013) 31 / 73

Page 32: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3 VI / HVI Programming

3.1 VI Programming Overview

As described in Section 1.5.2 on page 25, virtual instrumentation is the use of customizable software to create user-defined control, test and measurement systems, called Virtual Instruments (VI). For this purpose, Signadyne delivershighly optimized static and dynamic programming libraries [2]:

a) Static Libraries

Ready-to-use static libraries are supplied for the following programming languages and compilers:

Language Compiler Files

C Any C compiler *.h, *.lib

MinGW (Qt), GCC *.h, *.a

C++ Microsoft Visual Studio *.h, *.lib

MinGW (Qt), GCC *.h, *.a

LabVIEW National Instruments LabVIEW *.vi

b) Dynamic Libraries

Dynamic libraries are compatible with any programming language that has a compiler capable of performing dynamiclinking. Here are some examples:

∙ C++ compilers not listed above.

∙ Other programming languages: Java, Python, Visual Basic, C#, PHP, Perl, Fortran, Pascal, etc.

∙ Computer Algebra Systems (CAS): MathWorks MATLAB, Wolfram Mathematica, Maplesoft Maple, etc.

Dynamic libraries available:

Exported Functions Language Operating System Files

C Microsoft Windows *.dll

NOTE:

DLL function prototypes: The exported functions of the dynamic libraries have the same prototype as their counter-parts of the static libraries.

NOTE:

Function Parameters: Some of the parameters of the library functions are language dependent. The table of inputs andoutputs parameters for each function is a conceptual description, therefore, the user must check the specific languagefunction to see how to use it. One example are the ID parameters (moduleID, etc.), which identify objects in non object-oriented languages. In object-oriented languages the objects are identified by their instances, and therefore the IDs arenot present.

Function Names: Some programming languages like C++ or LabVIEW have a feature called function overloading orpolymorphism, that allows creating several functions with the same name but with different input/output parameters. Inlanguages without this feature, functions with different parameters must have different names.

32 / 73 Rev. 1.4 (May 30, 2013)

Page 33: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.2 HVI Programming Overview

As described in Section 1.5.2 on page 25, with Signadyne’s exclusive hard virtual instrumentation technology the usercan write custom software directly into any Signadyne hardware module, extending the concept and capabilities of virtualinstrumentation. Most of the VI instructions described in this Chapter are available for HVI real-time hardware execution(programmed using Signadyne ProcessFlow [3], the HVI programming environment).

The user can find the ProcessFlow programming details and the real-time specifications of each instruction within thecorresponding function description.

Rev. 1.4 (May 30, 2013) 33 / 73

Page 34: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3 SD-AOU Class Functions

3.3.1 channelWaveShape

This function sets the channel output waveform type (Section 1.2.3 on page 15).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

HVI Technology (ProcessFlow)

Execution Latency: 100 ns

Max Execution Rate: 10 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

waveShape int int selection list Waveshape type (Table 7 on page 15)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU channelWaveShape(int moduleID, int nChannel, int waveShape);

C++ Function

int SD AOU::channelWaveShape(int nChannel, int waveShape);

ProcessFlow

channelWaveShapeChannelWave shape

LabVIEW

SD Module channelWaveShape.vi

34 / 73 Rev. 1.4 (May 30, 2013)

Page 35: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.2 channelFrequency

This function sets the frequency for the periodic signals generated by the Function Generators (Section 1.2.1 on page 10).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

HVI Technology (ProcessFlow)

Execution Latency: 120 ns

Max Execution Rate: 10 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

frequency double double - Frequency in Hz

- - - constant[unit] Frequency in [unit]

- - - variable The selected variable sets the frequency. Its valuemust be 0..(232−1), which corresponds to 0..MaxFre-quency (see Specifications on page 3)

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU channelFrequency(int moduleID, int nChannel, double frequency);

C++ Function

int SD AOU::channelFrequency(int nChannel, double frequency);

ProcessFlow

channelFrequencyChannelFrequency

TypeValue

LabVIEW

SD Module channelFrequency.vi

Rev. 1.4 (May 30, 2013) 35 / 73

Page 36: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.3 channelPhase

This function sets the phase for the periodic signals generated by the Function Generators (Section 1.2.1 on page 10).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

HVI Technology (ProcessFlow)

Execution Latency: 120 ns

Max Execution Rate: 10 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

phase double double - Phase in degrees

- - - constant[unit] Phase in [unit]

- - - variable The selected variable sets the phase. Its value mustbe 0..(232 − 1), which corresponds to 0..360◦

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU channelPhase(int moduleID, int nChannel, double phase);

C++ Function

int SD AOU::channelPhase(int nChannel, double phase);

ProcessFlow

channelPhaseChannelPhase

TypeValue

LabVIEW

SD Module channelPhase.vi

36 / 73 Rev. 1.4 (May 30, 2013)

Page 37: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.4 channelPhaseReset

This function resets the accumulated phase of the selected channels. This accumulated phase is a result of the phasecontinuous module operation (Section 1.2.1 on page 10).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

HVI Technology (ProcessFlow)

Execution Latency: 100 ns

Max Execution Rate: 10 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

channelMask int int - Mask to select the channels to reset (LSB is channel 0, bit 1is channel 1 and so forth)

channel - - - selection list Channel to reset

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU channelPhaseReset(int moduleID, int channelMask);

C++ Function

int SD AOU::channelPhaseReset(int channelMask);

ProcessFlow

channelPhaseResetChannel

LabVIEW

SD Module channelPhaseReset.vi

Rev. 1.4 (May 30, 2013) 37 / 73

Page 38: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.5 channelAmplitude

This function sets the amplitude of a channel (Section 1.2.4 on page 16).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

HVI Technology (ProcessFlow)

Execution Latency: 70 ns

Max Execution Rate: 2 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

amplitude double double - Amplitude in volts

- - - constant[unit] Amplitude in [unit]

- - - variable The selected variable sets the amplitude. Its valuemust be −(215 − 1)..(215 − 1), which corresponds to−MaxAmplitude..MaxAmplitude (see Specificationson page 3)

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU channelAmplitude(int moduleID, int nChannel, double amplitude);

C++ Function

int SD AOU::channelAmplitude(int nChannel, double amplitude);

ProcessFlow

channelAmplitudeChannelAmplitude

TypeValue

LabVIEW

SD Module channelAmplitude.vi

38 / 73 Rev. 1.4 (May 30, 2013)

Page 39: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.6 channelOffset

This function sets the DC offset of a channel (Section 1.2.4 on page 16).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

HVI Technology (ProcessFlow)

Execution Latency: 70 ns

Max Execution Rate: 2 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

offset double double - DC offset in volts

- - - constant[unit] DC offset in [unit]

- - - variable The selected variable sets the DC offset.Its valuemust be −(215 − 1)..(215 − 1), which corresponds to−MaxAmplitude..MaxAmplitude (see Specificationson page 3)

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU channelOffset(int moduleID, int nChannel, double offset);

C++ Function

int SD AOU::channelOffset(int nChannel, double offset);

ProcessFlow

channelOffsetChannelOffset

TypeValue

LabVIEW

SD Module channelOffset.vi

Rev. 1.4 (May 30, 2013) 39 / 73

Page 40: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.7 modulationAngleConfig

This function configures the modulation in frequency/phase for the selected channel (Section 1.3.1 on page 17).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

modulationType int int selection list Modulation type (Table 13 on page 18)

deviationGain double double constant Gain for the modulating signal

errorIn - - - If it contains an error, the function will not be exe-cuted and errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU modulationAngleConfig(int moduleID, int nChannel, int modulationType, int deviationGain);

C++ Function

int SD AOU::modulationAngleConfig(int nChannel, int modulationType, int deviationGain);

ProcessFlow

modulationAngleConfigChannelModulation typeDeviation gain

LabVIEW

SD Module modulationAngleConfig.vi

40 / 73 Rev. 1.4 (May 30, 2013)

Page 41: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.8 modulationAmplitudeConfig

This function configures the modulation in amplitude/offset for the selected channel (Section 1.3.2 on page 19).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

modulationType int int selection list Modulation type (Table 16 on page 20)

deviationGain double double constant Gain for the modulating signal

errorIn - - - If it contains an error, the function will not be exe-cuted and errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU modulationAmplitudeConfig(int moduleID, int nChannel, int modulationType, int deviationGain);

C++ Function

int SD AOU::modulationAmplitudeConfig(int nChannel, int modulationType, int deviationGain);

ProcessFlow

modulationAmplitudeConfigChannelModulation typeDeviation gain

LabVIEW

SD Module modulationAmplitudeConfig.vi

Rev. 1.4 (May 30, 2013) 41 / 73

Page 42: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.9 modulationIQconfig

This function sets the IQ modulation for the selected channel (Section 1.3.3 on page 21).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nChannel int int selection list Output channel number

enable int int selection list Enable (value 1) or Disable (value 0) the IQ modulation.

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU modulationIQconfig(int moduleID, int nChannel, in enable);

C++ Function

int SD AOU::modulationIQconfig(int nChannel, int enable);

ProcessFlow

modulationIQconfigChannelEnable

LabVIEW

SD Module modulationIQconfig.vi

42 / 73 Rev. 1.4 (May 30, 2013)

Page 43: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.10 clockIOconfig

This function configures the function of the clock output connector (CLK, Figure 18 on page 23).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

clockConfig int int - Clock connector function (Table 20 on page 23)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU clockIOconfig(int moduleID, int clockConfig);

C++ Function

int SD AOU::clockIOconfig(int clockConfig);

LabVIEW

SD Module clockIOconfig.vi

Rev. 1.4 (May 30, 2013) 43 / 73

Page 44: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.11 triggerIOdirection

This function configures the trigger connector direction (TRG, Section 1.4.2 on page 23).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

direction int int - Input or output (Table 21 on page 23)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU triggerIOdirection(int moduleID, int direction);

C++ Function

int SD AOU::triggerIOdirection(int direction);

LabVIEW

SD Module triggerIOdirection.vi

44 / 73 Rev. 1.4 (May 30, 2013)

Page 45: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.12 triggerIOwrite

This function sets the trigger output (the trigger must be configured as output using triggerIOdirection, Section 3.3.11 onthe preceding page).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Signadyne ProcessFlow

Execution Latency: 20 ns

Timing resolution: 2 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

value int int selection list Trigger output value: 0 (OFF), 1 (ON)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU triggerIOwrite(int moduleID, int value);

C++ Function

int SD AOU::triggerIOwrite(int value);

ProcessFlow

triggerIOwriteValue

LabVIEW

SD Module triggerIOwrite.vi

Rev. 1.4 (May 30, 2013) 45 / 73

Page 46: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.13 triggerIOread

This function reads the trigger input (Section 1.4.2 on page 23)

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

destination - - - selection list Destination variable to store the trigger value: 0 (OFF), 1(ON)

trigger int int - 0 (OFF), 1 (ON), or negative numbers for errors (see errorcodes in Table 22 on page 71)

errorOut - - - See error codes in Table 22 on page 71

C Function

int SD AOU triggerIOread(int moduleID);

C++ Function

int SD AOU::triggerIOread();

ProcessFlow

triggerIOreadDestination

LabVIEW

SD Module triggerIOread.vi

46 / 73 Rev. 1.4 (May 30, 2013)

Page 47: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.14 waveformLoad

This function loads the specified waveform into the module onboard RAM. Waveforms must be created first with the SD-Wave class (Section 3.4 on page 69).

ADVANCED:

Memory usage: When a waveform is replaced (same waveformNumber used more than once) and the new waveformhas a different size than the old one, the module’s RAM memory has to be defragmented. In this case the process takesmore time to be accomplished.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

waveformID int - - Waveform identifier (see SD-Wave Class, Sec-tion 3.4 on page 69)

waveformObject - SD Wave* - - Pointer to the waveform object (see SD-WaveClass, Section 3.4 on page 69)

waveformNumber int int - Waveform number to identify the waveform in sub-sequent related fution calls. This value must be inthe [0..n] range, and in order to optimized onboardmemory usage, it should as low as possible

errorIn - - - If it contains an error, the function will not be exe-cuted and errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

availableRAM int int - Available onboard RAM in waveform points, or anegative number for errors (see error codes in Ta-ble 22 on page 71)

errorOut - - - See error codes in Table 22 on page 71

C Function

int SD AOU waveformLoad(int moduleID, int waveformID, int waveformNumber);

C++ Function

int SD AOU::waveformLoad(SD Wave* waveformObject, int waveformNumber)

LabVIEW

SD Module waveformLoad.vi

Rev. 1.4 (May 30, 2013) 47 / 73

Page 48: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.15 waveformFlush

This function deletes all the waveforms from the module onboard RAM and flushes all AWG queues (AWGflush, Sec-tion 3.3.18 on page 52).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU waveformFlush(int moduleID);

C++ Function

int SD AOU::waveformFlush()

LabVIEW

SD Module waveformFlush.vi

48 / 73 Rev. 1.4 (May 30, 2013)

Page 49: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.16 AWG

This function provides a one-step method to load, queue and run a single waveform in one of the module Arbitrary Wave-form Generators (AWGs) (Section 1.2.2 on page 12). The waveform can be loaded from an array of points in memory orfrom a file.

ADVANCED:

Step by step programming: This function is equivalent to create a waveform with new (SD-Wave class, Section 3.4on page 69), and to call WaveformLoad, AWGqueueWaveform and AWGstart. With these functions, the user hascomplete control of the memory usage, data transfer times between the PC and the module, and the possibility tocreate generation sequences and to control the generation start time precisely (Section 1.2.2 on page 12).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int - AWG number where the waveform is queued

triggerMode int int - Trigger method to launch the waveform (Ta-ble 3 on page 14)

startDelay int int - Defines the delay between the trigger and thewaveform launch in tens of ns

cycles int int - Number of times the waveform is repeatedonce launched (negative means infinite)

prescaler int int - Prescaler value (0..4095). It reduces thewaveform output sampling rate as follows:Tsout = prescaler ∙ 10 ns. 0 means prescalerdisabled.

waveformType int int - Waveform Type (Table 6 on page 14)

waveformPoints int int - Number of points of the waveform, which mustbe a multiple of 10 points and a minimum of20

waveformDataA double* double* - Array with waveform points. Analog wave-forms are defined with floating point numbers,which correspond to a normalized amplitude(-1 to 1)

waveformDataB double* double* - Array with waveform points, only for the wave-forms which have a second component (e.g.Q in IQ modulations defined in cartesian, orphase in IQ modulations defined with polars)

waveformFile char* char* - File containing the waveform points

errorIn - - - If it contains an error, the function will not beexecuted and errorIn will be passed to erro-rOut

Outputs

moduleIDOut - - - A copy of moduleID

availableRAM int int - Available onboard RAM in waveform points, ornegative number for errors (see error codes inTable 22 on page 71)

errorOut - - - See error codes in Table 22 on page 71

Rev. 1.4 (May 30, 2013) 49 / 73

Page 50: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

C Function

int SD AOU AWGfromArray(int moduleID, int nAWG, int triggerMode, int startDelay, int cycles, int prescaler,int waveformType, int waveformPoints, double* waveformDataA, double* waveformDataB=0);

int SD AOU AWGfromFile(int moduleID, int nAWG, char* waveformFile, int triggerMode, int startDelay, int cycles,int prescaler);

C++ Function

int SD AOU::AWG(int nAWG, int triggerMode, int startDelay, int cycles, int prescaler, int waveformType,int waveformPoints, double* waveformDataA, double* waveformDataB=0);

int SD AOU::AWG(int nAWG, char* waveformFile, int triggerMode, int startDelay, int cycles, int prescaler);

LabVIEW

SD Module AWGfromArray.vi SD Module AWGfromFile.vi

50 / 73 Rev. 1.4 (May 30, 2013)

Page 51: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.17 AWGqueueWaveform

This function queues the specified waveform in one of the Arbitrary Waveform Generators (AWGs) of the module (Sec-tion 1.2.2 on page 12). The waveform must be already loaded in the module onboard RAM (function waveformLoad,Section 3.3.14 on page 47).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int - AWG number where the waveform is queued

waveformNumber int int constant Waveform to be queued into the AWG. It must be al-ready loaded with WaveformLoad

triggerMode int int - Trigger method to launch the waveform (Table 3 onpage 14)

startDelay int int - Defines the delay between the trigger and the waveformlaunch in tens of ns

cycles int int - Number of times the waveform is repeated oncelaunched (negative means infinite)

prescaler int int - Prescaler value (0..4095). It reduces the waveform out-put sampling rate as follows: Tsout = prescaler ∙ 10 ns.0 means prescaler disabled.

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGqueueWaveform(int moduleID, int nAWG, int waveformNumber, int triggerMode, int startDelay,int cycles, int prescaler);

C++ Function

int SD AOU::AWGqueueWaveform(int nAWG, int waveformNumber, int triggerMode, int startDelay, int cycles, int prescaler);

ProcessFlow

AWGqueueWaveformAWGWaveform numberTrigger modeStart delay

TypeValue

Cycles

LabVIEW

SD Module AWGqueueWaveform.vi

Rev. 1.4 (May 30, 2013) 51 / 73

Page 52: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.18 AWGflush

This function empties the queue of the selected Arbitrary Waveform Generator (AWG) (Section 1.2.2 on page 12). Wave-forms are not removed from the module onboard RAM.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int selection list AWG number

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGflush(int moduleID, int nAWG);

C++ Function

int SD AOU::AWGflush(int nAWG);

ProcessFlow

AWGflushAWG

LabVIEW

SD Module AWGflush.vi

52 / 73 Rev. 1.4 (May 30, 2013)

Page 53: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.19 AWGstart

This function starts the selected Arbitrary Waveform Generator (AWG) (Section 1.2.2 on page 12) from the beginning of itsqueue. The generation will start immediately or when a trigger is received, depending on the trigger selection of the firstwaveform in the queue and provided that at least one waveform is queued in the AWG (functions AWGqueueWaveform, orAWG).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int selection list AWG number

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGstart(int moduleID, int nAWG);

C++ Function

int SD AOU::AWGstart(int nAWG);

ProcessFlow

AWGstartAWG

LabVIEW

SD Module AWGstart.vi

Rev. 1.4 (May 30, 2013) 53 / 73

Page 54: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.20 AWGstartMultiple

This function starts the selected Arbitrary Waveform Generators (AWGs) (Section 1.2.2 on page 12) from the beginning oftheir queues. The generation will start immediately or when a trigger is received, depending on the trigger selection of thefirst waveform in their queues and provided that at least one waveform is queued in these AWGs (functions AWGqueue-Waveform, or AWG).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

AWGmask int int - Mask to select the AWGs to be started (LSB is AWG 0, bit 1is AWG 1 and so forth)

AWG - - - selection list AWG to be started

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGstartMultiple(int moduleID, int AWGmask);

C++ Function

int SD AOU::AWGstartMultiple(int AWGmask);

LabVIEW

SD Module AWGstartMultiple.vi

54 / 73 Rev. 1.4 (May 30, 2013)

Page 55: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.21 AWGpause

This function pauses the selected Arbitrary Waveform Generator (AWG) (Section 1.2.2 on page 12), leaving the last wave-form point at the output, and ignoring all incoming triggers. The waveform generation can be resumed calling AWGresume.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int selection list AWG number

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGpause(int moduleID, int nAWG);

C++ Function

int SD AOU::AWGpause(int nAWG);

ProcessFlow

AWGpauseAWG

LabVIEW

SD Module AWGpause.vi

Rev. 1.4 (May 30, 2013) 55 / 73

Page 56: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.22 AWGpauseMultiple

This function pauses the selected Arbitrary Waveform Generators (AWGs) (Section 1.2.2 on page 12), leaving the lastwaveform point at the output, and ignoring all incoming triggers. The waveform generation can be resumed calling AWGre-sumeMultiple.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

AWGmask int int - Mask to select the AWGs to be paused (LSB is AWG 0, bit 1is AWG 1 and so forth)

AWG - - - selection list AWG to be paused

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGpauseMultiple(int moduleID, int AWGmask);

C++ Function

int SD AOU::AWGpauseMultiple(int AWGmask);

LabVIEW

SD Module AWGpauseMultiple.vi

56 / 73 Rev. 1.4 (May 30, 2013)

Page 57: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.23 AWGresume

This function resumes the operation of the selected Arbitrary Waveform Generator (AWG) (Section 1.2.2 on page 12) fromthe current position of the queue.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int selection list AWG number

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGresume(int moduleID, int nAWG);

C++ Function

int SD AOU::AWGresume(int nAWG);

ProcessFlow

AWGresumeAWG

LabVIEW

SD Module AWGresume.vi

Rev. 1.4 (May 30, 2013) 57 / 73

Page 58: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.24 AWGresumeMultiple

This function resumes the operation of the selected Arbitrary Waveform Generators (AWGs) (Section 1.2.2 on page 12)from the current position of their respective queues.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

AWGmask int int - Mask to select the AWGs to be resumed (LSB is AWG 0, bit1 is AWG 1 and so forth)

AWG - - - selection list AWG to be resumed

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGresumeMultiple(int moduleID, int AWGmask);

C++ Function

int SD AOU::AWGresumeMultiple(int AWGmask);

LabVIEW

SD Module AWGresumeMultiple.vi

58 / 73 Rev. 1.4 (May 30, 2013)

Page 59: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.25 AWGstop

This function stops the selected Arbitrary Waveform Generator (AWG) (Section 1.2.2 on page 12), setting the output tozero and resetting the AWG queue to its initial position. All following incoming triggers are ignored.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int selection list AWG number

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGstop(int moduleID, int nAWG);

C++ Function

int SD AOU::AWGstop(int nAWG);

ProcessFlow

AWGstopAWG

LabVIEW

SD Module AWGstop.vi

Rev. 1.4 (May 30, 2013) 59 / 73

Page 60: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.26 AWGstopMultiple

This function stops the selected Arbitrary Waveform Generators (AWGs) (Section 1.2.2 on page 12), setting their outputsto zero and resetting their respective queues to the initial positions. All following incoming triggers are ignored.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

AWGmask int int - Mask to select the AWGs to be stopped (LSB is AWG 0, bit1 is AWG 1 and so forth)

AWG - - - selection list AWG to be stopped

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGstopMultiple(int moduleID, int AWGmask);

C++ Function

int SD AOU::AWGstopMultiple(int AWGmask);

LabVIEW

SD Module AWGstopMultiple.vi

60 / 73 Rev. 1.4 (May 30, 2013)

Page 61: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.27 AWGtriggerExternalConfig

This function configures the external triggers for the selected Arbitrary Waveform Generator (AWG) (Section 1.2.2 onpage 12). The external trigger is used in case the waveform is queued with the external trigger mode option (functionAWGqueueWaveform, Section 3.3.17 on page 51).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int selection list AWG number

externalSource int int - External trigger source (Table 4 on page 14)

triggerBehavior int int - Trigger behaviour (Table 5 on page 14)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGtriggerExternalConfig(int moduleID, int nAWG, int externalSource, int triggerBehaviour);

C++ Function

int SD AOU::AWGtriggerExternalConfig(int nAWG, int externalSource, int triggerBehaviour);

LabVIEW

SD Module AWGtriggerExternalConfig.vi

Rev. 1.4 (May 30, 2013) 61 / 73

Page 62: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.28 AWGtrigger

This function triggers the selected Arbitrary Waveform Generator (AWG) (Section 1.2.2 on page 12). The waveform waitingin the current position of the queue is launched provided it is configured with VI/HVI Trigger.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

nAWG int int selection list AWG number

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGtrigger(int moduleID, int nAWG);

C++ Function

int SD AOU::AWGtrigger(int nAWG);

ProcessFlow

AWGtriggerAWG

LabVIEW

SD Module AWGtrigger.vi

62 / 73 Rev. 1.4 (May 30, 2013)

Page 63: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.29 AWGtriggerMultiple

This function triggers the selected Arbitrary Waveform Generators (AWGs) (Section 1.2.2 on page 12). The waveformwaiting in the current position of the queue is launched provided it is configured with VI/HVI Trigger.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

AWGmask int int - Mask to select the AWGs to be triggered (LSB is AWG 0, bit1 is AWG 1 and so forth)

AWG - - - selection list AWG to be triggered

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD AOU AWGtriggerMultiple(int moduleID, int AWGmask);

C++ Function

int SD AOU::AWGtriggerMultiple(int AWGmask);

ProcessFlow

AWGtriggerMultipleAWG

LabVIEW

SD Module AWGtriggerMultiple.vi

Rev. 1.4 (May 30, 2013) 63 / 73

Page 64: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.30 MathAssign (D=S)

This function copies the value of the source parameter (S) into the destination variable (D).

Compatibility

Signadyne ProcessFlow v0.9 or newerSignadyne ProcessFlow

Execution Latency: 50 ns

Timing resolution: 2 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

destination - - - variable Destination local variable

source - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Source local variable

- - - trigger Digital value of the trigger input

ProcessFlow

MathAssign (D=S)DestinationSource

TypeValue

64 / 73 Rev. 1.4 (May 30, 2013)

Page 65: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.31 MathArithmetics (R=A[+-*/]B)

This function subtracts, adds, multiplies or divides the values of the operands A and B, writing the result in R.

Compatibility

Signadyne ProcessFlow v0.9 or newerSignadyne ProcessFlow

Execution Latency: 50 ns

Timing resolution: 2 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

Result - - - variable Destination local variable

A - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - trigger Digital value of the trigger input

Operation - - - selection list Arithmetic operation (+, -, *, /)

B - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - trigger Digital value of the trigger input

ProcessFlow

MathArithmetics (R=A[+-*/]B)ResultA

TypeValue

OperationB

TypeValue

Rev. 1.4 (May 30, 2013) 65 / 73

Page 66: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.32 MathMultAcc (R=A[+-]B[*/]C)

This function performs a Multiplication and Accumulation (MAC) operation, widely used in digital signal processing.

Compatibility

Signadyne ProcessFlow v0.9 or newerSignadyne ProcessFlow

Execution Latency: 50 ns

Timing resolution: 2 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

Result - - - variable Destination local variable

A - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - trigger Digital value of the trigger input

Operation - - - selection list Arithmetic operation for the Accumulation (+ or -)

B - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - trigger Digital value of the trigger input

Operation - - - selection list Arithmetic operation for the Multiplication (* or /)

C - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - trigger Digital value of the trigger input

ProcessFlow

MathMultAcc (R=A[+-]B[*/]C)ResultA

TypeValue

OperationB

TypeValue

OperationC

TypeValue

66 / 73 Rev. 1.4 (May 30, 2013)

Page 67: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.33 open

This function initializes a hardware module, therefore it must be called before using any other module-related function. Amodule can be opened using the serial number or the chassis and slot number. The first option ensures the same moduleis always opened regardless its chassis or slot location.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

partNumber char* char* - Complete module part number (e.g. ”SD-PXE-AOU-H0001”)

serialNumber char* char* - Module Serial Number (e.g. ”ND23G86A”). This infor-mation can be found on the product, in Signadyne Man-ager (SDM), or in nearly any Signadyne software

chassis int int - Chassis number where the device is located. This infor-mation can be found in Signadyne Manager (SDM)

slot int int - Slot number where the device is plugged in

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleID int int - Module identifier or negative numbers for errors (see er-ror codes in Table 22 on page 71)

errorOut - - - See error codes in Table 22 on page 71

C Function

int SD Module openWithSerialNumber(char* partNumber, char* serialNumber);int SD Module openWithSlot(char* partNumber, int chassis, int slot);

C++ Function

int SD AOU::open(char* partNumber, char* serialNumber);int SD AOU::open(char* partNumber, int chassis, int slot);

LabVIEW

SD Module openWithSerialNumber.vi SD Module openWithSlot.vi

Rev. 1.4 (May 30, 2013) 67 / 73

Page 68: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.3.34 close

This function releases all the resources allocated for the module instance. It must be always called before exiting theapplication.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

errorIn - - - If it contains an error, the function will not be executed and er-rorIn will be passed to errorOut

Outputs

errorOut int int - See error codes in Table 22 on page 71

C Function

int SD Module close(int moduleID);

C++ Function

int SD AOU::close();

LabVIEW

SD Module close.vi

68 / 73 Rev. 1.4 (May 30, 2013)

Page 69: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.4 SD-Wave Class Functions

3.4.1 new

This function creates a waveform object from data points contained in an array in memory or in a file.

ADVANCED:

Memory usage: Waveforms created with New are stored in the PC RAM, not in the module onboard RAM. Therefore,the limitation in the number of waveforms and their sizes is given by the amount of PC RAM.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

waveformType int int - Waveform Type (Table 6 on page 14)

waveformPoints int int - Number of points of the waveform, which mustbe a multiple of 10 points and a minimum of20

waveformDataA double* double* - Array with waveform points. Analog wave-forms are defined with floating point numbers,which correspond to a normalized amplitude(-1 to 1)

waveformDataB double* double* - Array with waveform points, only for the wave-forms which have a second component (e.g.Q in IQ modulations defined in cartesian, orphase in IQ modulations defined with polars)

waveformFile char* char* - File containing the waveform points

errorIn - - - If it contains an error, the function will not beexecuted and errorIn will be passed to erro-rOut

Outputs

waveformID int - - Waveform identifier, or a negative numberfor errors (see error codes in Table 22 onpage 71)

errorOut - int - See error codes in Table 22 on page 71

C Function

int SD Wave newFromArrayDouble(int waveformType, int waveformPoints, double* waveformDataA,double* waveformDataB=0);

int SD Wave newFromFile(char* waveformFile);

C++ Function

int SD Wave::SD Wave(int waveformType, int waveformPoints, double* waveformDataA, double* waveformDataB=0));int SD Wave::SD Wave(char* waveformFile);

LabVIEW

SD Wave newFromArray.vi SD Wave newFromFile.vi

Rev. 1.4 (May 30, 2013) 69 / 73

Page 70: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.4.2 delete

This function removes a waveform created with the new function.

ADVANCED:

Onboard waveforms: Waveforms are removed from the PC RAM only, not from the module onboard RAM.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

waveformID int - - Waveform identifier (returned by new)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

errorOut int int - See error codes in Table 22 on the next page

C Function

int SD Wave delete(int waveformID);

C++ Function

int SD Wave::∼SD Wave();

LabVIEW

SD Wave delete.vi

70 / 73 Rev. 1.4 (May 30, 2013)

Page 71: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

3.5 Error Codes

error errorDescription

-1 Wrong module slot

-2 Wrong module chassis

-2 Wrong serial number

-3 Wrong devicesID

-4 Wrong channel

-5 Wrong clock configuration

others No error

Table 22: Software error codes

Rev. 1.4 (May 30, 2013) 71 / 73

Page 72: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

References

[1] Signadyne VirtualKnob, Software Front Panels for Live Operation. Product Website.

[2] Signadyne Programming Libraries for Virtual Instrumentation. Product Website.

[3] Signadyne ProcessFlow, Hard Virtual Instrument (HVI) Programming Environment. Product Website.

[4] SD-PXE-AOU-H0002, 4-Channel, 500-MSPS, 16-Bit, FPGA-Based Analog Output / AWG Module for PXIe. ProductWebsite.

[5] SD-PXE-AOU-H0003, 2-Channel, 1-GSPS, 14-Bit, FPGA-Based Analog Output / AWG Module for PXIe. ProductWebsite.

[6] SD-PXE-AOU-H0003, 4-Channel, 1-GSPS, 14-Bit, FPGA-Based Analog Output / AWG Module for PXIe. ProductWebsite.

72 / 73 Rev. 1.4 (May 30, 2013)

Page 73: SD-PXE-AOU-H0001 2-Channel, 500-MSPS, 16-Bit, … 2-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module Contents 1 Theory of Operation 9 1.1 Overview ...

SD-PXE-AOU-H0001

SD-PXE-AOU-H00012-Channel, 500-MSPS, 16-Bit, FPGA-Based AWG / Vector Signal Generator Module

Rev. 1.4 (May 30, 2013)

Signadyne and its subsidiaries reserve the right to makecorrections, modifications, enhancements, improvements,and other changes to its products and services at any time.

Information delivered by Signadyne is believed to be ac-curate and reliable. However, no responsibility is assumedby Signadyne for its use, nor for any infringements of patentsor other rights of third parties that may result from its use.

No license is granted by implication or otherwise underany patent or patent rights of Signadyne.

Trademarks and registered trademarks are the propertyof their respective owners.

c©2013 Signadyne. All rights reserved.

www.signadyne.com

Rev. 1.4 (May 30, 2013) 73 / 73