![Alpha Data XRM(2)-DAC-D4/1G User Manual Download Page 28](http://html1.mh-extra.com/html/alpha-data/xrm-2-dac-d4-1g/xrm-2-dac-d4-1g_user-manual_2905503028.webp)
XRM(2)-DAC-D4/1G User Guide
V2.2 - Mar 8, 2018
3.3.4 Square/Pulse Waveform Generator
For square wave generation, the waveform output is set to the mark value for a given number of FABRCLK
cycles and is then followed by the space value for separetely specified number of clock cycles.
One 32-bit register is used to specify the mark and space durations whilst a second is used to specify the mark
and space levels.
Additional pulse width resolution is provided by four control bits in a separate register, which allow the mark and
space durations to be adjusted in DAC smaple clock cycles to provide fine control of pulse/square waveforms.
3.3.5 Arbitrary Waveform Generator
ARB memory consists of 4k samples (16 bits wide) in each channel. ARB waveforms can be any length but
should be zero-filled if not an exact multiple of 4 samples. An ARB sequence can be a single non-zero value, but
the number of samples read out to the DAC is always a multiple of 4 (minimum 4 samples) because of the
FABRCLK and DAC sample clock ratios. In the example code, data is automatically zero-filled to the end of the
RAM.
Writing more data than the capacity of ARB memory will cause the write address to wrap around and thus
over-write previously-written values (this is prevented from occurring in the example code routines).
The data writes are controlled by an 11-bit address counter, where each address references a pair of 16-bit
samples. Data is written by sequential writes to the I_ARBWRITE_REG (and/or Q_ARBWRITE_REG) register as
pairs of consecutive samples, each 16 bits wide.
Data pairs are written in time-order and each 32 bit write must have the earliest of the two samples in the low
word and the latest sample in the upper word. The ARB busy bit pulses high during the process of writing to the
ARB memory, but each write completes within the access time of the host doing the write thus eliminating any
need for handshaking during this process.
The write address is auto-incremented by each write to the ARB ; the initial sample is written at address zero (the
write address is reset to zero when the (FPGA) generator reset bit is pulsed high).
The length of the ARB sequence (4096 samples maximum) played out from the RAM is controlled by a
programmable-length end address counter. The end address for playout is written into hardware by setting the
appropriate last address value in the ARB control register and then pulsing the 'Load Enable' bit for that channel
in the same register.
The 'Run Enable' bit is the global enable bit which must be set for the ARB to produce a non-zero signal on any
channel.
The ARB can function in two modes - continuous or burst mode. The active operating mode is controlled by the
value of the Continuous/Burst enable bit in the ARB control register; in both cases the 'Run Enable' bit must be
set to obtain non-zero output.
In continuous mode, samples from the start of the RAM to the end address are played out, with the RAM address
rolling over to 0 following the end address. This sample sequence is repeated continuously. Short burst-type
waveforms can be created by setting the ARB length to include zero-padding samples stored in the RAM.
As an example, assume the signal is
N samples of a sine wave followed by M samples of zero values. The ARB
length,
L, is thus specified as (N+M), where (N+M) modulo 4 =0 and (N+M) <= 4096. This results in a burst of N
sine samples followed by
M zero samples, which repeats every (N+M) DAC sample clocks. With the same data
set, specifying the ARB length
L to be N (assuming N modulo 4 = 0), only the sine samples are continuously read
out.
The limited length of the memory (4k samples), means that the maximum repetition rate at 1GHz DAC sample
clock rate is limited to approximately 4 us.
Page 24
VHDL Structure
xrm-dac-d4-1g-manual_v2_2.pdf