
3156B User Manual
Using the Instrument 3-22
Racal Instrument © 2005
Arbitrary Memory
Management
Correct memory management is required for best utilization of the
arbitrary memory. An explanation of how to manage the arbitrary
waveform memory is given below.
The arbitrary memory in comprised of a finite number of words. The
maximum size of a single waveform that can be loaded into memory is
1Meg long. However, waveforms are created using small sections of
the arbitrary memory. The memory can be partitioned into smaller
segments (up to 16k) and different waveforms can be loaded into each
segment, each having a unique length. Information on how to partition
the memory is given in the following paragraphs.
Memory
Management
Commands
Arbitrary memory can be divided into smaller segments; up to 16k
different arbitrary waveforms can be stored in working memory of the
Model 3156B. The length of each segment and its associated sample
clock rate are left for the user to program. Segment length are defined
using the following function call:
ri3156B_define_arb_segment ()
This function call has two variables: segment number and size. Note
that numbers, not names, are assigned to segments. Segment
numbers can range from 1 through 16k. The order of assignment is
not important as long as segment size does not alter after it has been
defined.
You cannot query the segment definition parameters so make sure
you keep good track if you intend to partition the memory into many
segments. There is a easier way to create a memory partition table for
waveform segments, this time creating the complete table from one
array. Use the command:
ri3156B_load_segment_table
()
This function has two arrays, one array of segment numbers and
another array of size. Using this function, the complete memory
partition table will be downloaded to the instrument in one shot. Note
however, that you still need to load the memory segments with
waveform coordinates before they can be generated at the outputs.
If a mistake is made and removal of one or more segments from the
active directory is needed, use the following command:
ri3156B_delete_segment (n)
where <n> is the segment number to be removed from memory. Note
that if a segment is deleted, the memory portion that belonged to this