Guppi Developer's Guide

Command Line "Primitives"

The GUPPI command line has 4 basic operations: get, set, unload, and load.

get

The get command has two functions:
  • retrieves the value(s) of specified parameter(s)
  • if no parameters are specified retrieves a list of known parameters
    • this list will be based on what parameters the running profiles on the BEE2 or IBOB contain
    • if nothing is running, no parameters will appear as available on the BEE2 or IBOB

Example (the example register and profile names do not represent anything existent in the real system):
guppi> get()
['BEE2/FPGA2/example_register', 'DAQ/another_param']
guppi> get('BEE2/FPGA2/example_register')
'5'
guppi>

set

The set command sets the value(s) of the specified parameter(s).

Example:
guppi> get()
['BEE2/FPGA2/example_register', 'DAQ/another_param']
guppi> get('BEE2/FPGA2/example_register')
'5'
guppi> set('BEE2/FPGA2/example_register', '6')
'True'
guppi> get('BEE2/FPGA2/example_register')
'6'

unload

The unload command has two functions:
  • unloads a running profile (bof on the BEE2)
  • if no profiles are specified retrieves a list of known bofs that are available to be unloaded

Example:
guppi> unload()
['BEE2/example_bof_for_fpga1.bof', 'BEE2/example_bof_for_fpga2.bof', 'BEE2/example_bof_for_fpga3.bof']
guppi> unload('BEE2/example_bof_for_fpga2.bof')
'True'
guppi> unload()
['BEE2/example_bof_for_fpga1.bof', 'BEE2/example_bof_for_fpga3.bof']

Additional note: the unload command uses partial string matching to uniquely identify bofs. So it is not strictly necessary to use the full bof name, only enough to (uniquely!) identify it. Thus something like the following should work:
guppi> unload('fpga2')
because the Xilinx/CASPER toolflow always adds an appropriate tag in the bof name for FPGA-specific designs. Other tricks include this one to unload all currently running the bofs:
guppi> unload(unload())
The inner unload() returns the list of running bofs, which are in turn passed as arguments to the outer call.

load

The load command has two functions:
  • loads a profile (bof file on the BEE2)
  • if no profiles are specified retrieves a list of known bofs that are available to be loaded

The first operation is fairly straightforward:

guppi> load()
['BEE2/example_bof_for_fpga1.bof', 'BEE2/example_bof_for_fpga2.bof', 'BEE2/other_bof_for_fpga2.bof', 'BEE2/example_bof_for_fpga3.bof']
guppi> load('BEE2/example_bof_for_fpga2.bof')
'True'
guppi>

If you loaded a profile onto FPGA2 as in the example above, no profiles for FPGA2 would appear in the list returned by load().

guppi> load('BEE2/example_for_fpga2.bof')
'True'
guppi> load()
['BEE2/example_bof_for_fpga1.bof', 'BEE2/example_bof_for_fpga3.bof']
guppi> unload('BEE2/example_bof_for_fpga2.bof')
'True'
guppi> load()
['BEE2/example_bof_for_fpga1.bof', 'BEE2/example_bof_for_fpga2.bof', 'BEE2/other_bof_for_fpga2.bof', 'BEE2/example_bof_for_fpga3.bof']

Scripts

TBD
Topic revision: r2 - 2009-06-10, PatrickBrandt
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback