![Alpha Data XRM(2)-DAC-D4/1G User Manual Download Page 26](http://html1.mh-extra.com/html/alpha-data/xrm-2-dac-d4-1g/xrm-2-dac-d4-1g_user-manual_2905503026.webp)
XRM(2)-DAC-D4/1G User Guide
V2.2 - Mar 8, 2018
3.3 Waveform Generator Operation
The example code provides a number of built-in waveform generation options. In each case the fact that
FABRCLK (which drives the FPGA fabric) runs at one quarter of the DAC sample clock frequency requires that
four samples are produced by the generators on each FABRCLK cycle so typically four generators of each type,
acting in parallel, are required.
A number of registers are shared across the various signal types to reduce the total numebr of registers required.
Where applicable, this is indicated in the relevant register description in the register description section below,
which aslo details the allocation of register bits.
The waveform output is selected using a total of six bits which control a number of cascaded 2:1 multiplexers.
One bit is used to enable the data output to the DAC; if this bit is set to zero then all zeroes is transmitted. A
second bit is used to select betwen the pattern test data sequence and the fixeed sine as the test waveform (see
below).
In normal operation, the waveform output is selected from one of sine (DDS generated), ramp,triangle, pulse/
square or the arbitrary waveform, with the DDS sine being the default.
Figure 9 : Waveform Selection Diagram
The four waveform selection bits for each channel are located in the control register (D1,D28,D3,D2 for I
channel, D5,D29,D7,D6 for Q channel).
3.3.1 Sine Waveform Generator
The main sine wave generator is based on a DDS core. Four cores are used in parallel to provide the four
samples required on each FABRCLK cycle.
The signal frequency produced is determined by the value of the increment (rate of change of phase) specified
for the phase accumulatorof each core. This phase accumulator is 32 bits wide hence 0x8000_0000 corresponds
to a normalised frequency of 0.5. The actual frequency generated is given by:
F
out
= F
dac
* F
norm
= F
dac
* RegVal/(2
32
)
where F
dac
= the DAC sample clock frequency (= 4 * FABRCLK frequency), F
norm
is the normalised frequency and
RegVal is the register setting.
Page 22
VHDL Structure
xrm-dac-d4-1g-manual_v2_2.pdf