
PulseBlasterESR QuadCore 250 (Turbo)
II. Installing and Using Your PulseBlasterESR QuadCore Board
Installation
To install t e board you must complete t e following t ree steps:
- Install t e latest SpinAPI version, available at t e address ttp://spincore.com/support/spinapi/
- S ut down computer, insert PulseBlasterESR QuadCore Turbo 250 card, and fasten t e PC bracket
securely wit a screw.
- Power up and follow t e installation prompts.
Now you are ready to run t e test programs provided in t e SpinAPI package.
Note: W en installing t e ardware, t e device may s ow up as PulseBlasterESR-Pro, t is is OK.
Note: T e PulseBlaster Interpreter t at is included in t e SpinAPI package CANNOT be used to program t e
PBESR QuadCore board.
Note: To compile and run your own C programs, you may want to download t e SpinAPI Tools package t at
contains a pre-configured compiler; t e SpinAPI Tools package is also available for download at t e URL above.
General API Programming Information
Four test programs (executables and t eir C source files) are available for testing t e boards. Assuming t e
default installation, t e test programs will be available on t e computer at t e following location: Windows
“Start” → All Programs → SpinAPI → PBESR_QuadCore (t e default installation location is: C:\Program
Files\SpinCore\SpinAPI\PBESR-QuadCore). T e .c files can be modified and recompiled to create custom test
programs.
Eac core can be programmed wit a unique pulse program by using t e pb_select_core(unsigned int
core_sel) function, w ere t e lower four bits of core_sel are used to select t e cores (bit0 corresponds to Core0,
bit1 corresponds to Core1, etc) and multiple combinations are acceptable (i.e. a value of 0xF, or 15 will select all
four cores).
T e overall system timing is based on Core0 in order to ensure t at all cores are precisely sync ronized. T is
requires t at Core0 be t e last core (or part of t e group of last cores) t at is programmed before starting
execution of t e pulse program(s).
Two separate SpinAPI functions are used to write pulse programs for t e PulseBlasterESR QuadCore:
pb_4C_inst(int flag, double lengt ) and pb_4C_stop(void).
pb_4C_inst(...) is used to define t e pulse program. T e input parameter 'flag' must eit er be '1' to turn t e
flag on, or '0' to turn t e flag off. T e input parameter 'lengt ' defines t e time interval for t e current instruction
and must be multiplied by 'ns' (nanoseconds), 'us' (microseconds), or 'ms' (milliseconds).
pb_4C_stop() defines t e end of t e pulse program.
It is ver important to note t at because t e sync ronization is based on Core0, if Core0's pulse program is
still running, t e ot er cores may continue to output values from memory even after t e pb_4C_stop() instruction.
Also, if Core0's pulse program stops, it will cause all ot er cores to stop even if t ey ave not completed t eir
pulse program. For t is reason it is ig ly recommended t at t e pulse program for Core0 as t e longest
duration, and t e pulse programs for t e ot er cores are extended using t e pb_4C_inst(...) instruction wit a '0'
output so t at t e total duration of eac pulse program is t e same causing t em to stop at exactly t e same
time.
www.spincore.com 5 02/17/09