RadioProcessor
Timing and Flow Control Parameters
The RadioProcessor contains an integrated PulseBlaster pulse generation timing core. This timing core
controls all aspects of the systems functionality by setting internal control lines at user specified times. Six
user programmable digital outputs are also available for control of external hardware. The internal control lines
and user programmable outputs are collectively referred to as flags. The pulse program modifies these flags
in a user-defined way to control all aspects of an experiment.
Op Code and Explanation
The PulseBlaster uses a robust instruction set to enable the creation of complex pulse programs with ease.
Each instruction is defined by an Op Code which specifies the action of that instruction and an optional
Instruction data (inst_data) field which elaborates on that action. In addition, each instruction specifies the
desired value for the flags, as well as a time delay until the next instruction executes. The “next” instruction is
not necessarily the next sequential instruction, as the instruction set contains branching and looping
instructions which can cause the program to be executed out of sequential order. A list of the available
instructions is given in the table below.
Op Code #
Instruction
Inst_data field
Function
0
CONTINUE
Unused
Program execution continues to next
instruction. This can only be used up to a
delay of about 57 s.
1
STOP
Unused
Stop execution of program. All TTL
values remain from previous instruction, and
analog outputs may turn off
(1)
It is
recommended to provide a termination
command to deactivate outputs before a
STOP.
2
LOOP
Number of desired loops.
This value must be greater
than or equal to 1.
Specify beginning of a loop. Execution
continues to next instruction. Data used to
specify number of loops
3
END_LOOP
Address of beginning of
loop
Specify end of a loop. Execution returns
to begging of loop and decrements loop
counter.
4
JSR
Address of first subroutine
instruction
Program execution jumps to beginning of
a subroutine
5
RTS
Unused
Program execution returns to instruction
after JSR was called
6
BRANCH
Address of instruction to
skip to
Program execution continues at specified
instruction. This behaves like the goto
statement found in many programming
languages
7
LONG_DELAY
Number of desired loops.
This value must be greater
than or equal to 2.
For long interval instructions (instructions
with a delay over 57 s). Data field specifies
a multiplier of the delay field. Execution
continues to next instruction
8
WAIT
Unused
Program execution pauses and waits for
a software or hardware trigger to resume it.
The latency between a trigger occurring and
the program resuming is the time used as
the delay for the wait instruction plus a fixed
time of 6 clock cycles.
Table 3:
PulseBlaster instructions.
(1) On RadioProcessor boards with firmware versions 10-13 and 10-14, both analog
and
TTL outputs return to ground when a
STOP command is encountered.
2020-10-07
19
www.spincore.com