NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Namespaces Files Functions Variables Macros Pages
Author
Jeromy Tompkins
Date
January 23, 2017

Introduction

The cfgPixie16.txt file is a simple human readable configuration for the DDAS system. It is required by the nscope and readout programs at startup to specify which modules exist and how to boot them. It also allows the user to override the default firmware or provide firmware information if it is absent.

The cfgPixie16.txt format

The cfgPixie16.txt file has the basic general structure:

Crate Id (not used)
Number of modules in crate
Slot of 1st module
Slot of 2nd module
...
Slot of Nth module
Path to parameter file (.set)

# As many of the following optional sections can be supplied
[Rev<X>-<Y>Bit-<Z>MSPS]
Path to FPGA firmware file
Path to fippi firmware file
Path to dsp firmware file
Path to dsp parameter file
Clock calibration integer

Let's break down this structure a little more. There are essentially two parts to the file. The topmost part contains mandatory information regarding the layout of the modules in the crate and also the path to the parameters file (i.e. the "set file"). The remainder of the file consists of optional sections that each begin with hardware id tags. These tagged sections contain the location of firmware files for the tagged hardware type. There can be as many of these sections as the user desires. The firmware paths specified in these sections override the default firmware for a given module type or provide information where there is no default.

Each hardware tag has the form [Rev<X>-<Y>Bit-<Z>MSPS]. Here the <X> parameter is a number specifying the hardware revision number. It can be provided in either decimal, octal, or hexadecimal using the C-language convention (e.g 14 = 0xe = 0xE = 016). The <Y> and <Z> parameters specify the number of bits and the frequency of the ADC, respectively. These latter two values must be provided in decimal.

Following a tag, there must be 5 lines that specify, in order, the path to the FPGA firmware, fippi firmware, dsp firmware, and dsp parameter files and the clock calibration. It is a fatal error for an incomplete set of files to be provided.

For example, consider a DDAS system with four Pixie-16 modules. These reside in slots 2, 3, 4, and 6 and a settings file exists for all of them located at /path/to/my/params.set. Let's further assume that the module in slots 4 and 6 need special attention regarding firmware. The slot 4 module will use a different firmware than default so that it has some extended behavior and the other module in slot 6 is a brand new type of hardware without a default firmware. The slot 4 module has a 12 bit, 100MSPS ADC at revision 23, and the slot 6 module has a 20 bit, 1000 MSPS ADC at revision 23432. The cfgPixie16.txt file for such a setup would look like:

1                       # crate id
4                       # number of cards
2                       # slot of first card
3
4
6
/path/to/my/params.set  # path to params

# special firmware for module in slot 4
[Rev0x17-12Bit-100MSPS]
/path/to/special/fpgafirmware_12b100m.bin
/path/to/special/fippifirmware_12b100m.bin
/path/to/special/dsp_12b100m.bin
/path/to/special/dsp_12b100m.var
10.0

# special firmware for futuristic module in slot 6
[Rev23432-20Bit-1000MSPS]
/path/to/fpgafirmware_20b1000m.bin
/path/to/fippifirmware_20b1000m.bin
/path/to/dsp_20b1000m.bin
/path/to/dsp_20b1000m.var
1.0

The human-readable notes at the end of each line n the topmost part are allowed in the file, because all characters after the first whitespace character in each line are ignored. If this is the first time that you have set up a DDAS system and you have no preexisting parameter settings file, then you can find one at $DDAS_SHARE/crate_1.set.