Dev/xilinx acq (#901)

* period and exptime(patternwaittime level 0)

* added new regsieterdefs and updated api version and fixedpattern reg

* autogenerate commands

* formatting

* minor

* wip resetflow, readout mode, transceiver mask, transceiver enable

* acquisition, but streaming done bit and busy (exposing + read chip to fifo) not known yet from fw

* programming fpga and device tree done

* most configuration done, need to connect configuretransceiver to client

* stuck at resetting transciever timed out

* minor

* fixed virtual, added chip busyto fifo, streaming busy, set/getnext framenumber

* configuretransceiver from client, added help in client

* make formatt and command generation

* tests for xilinx ctb works

* command generation

* dacs added and tested, power not done

* power added

* added temp_fpga

* binaries in

* ctrlreg is 0 to enable chip=fixed, high dac val = min val= fixed, power regulators in weird order=fixed, device tree could be loaded with dacs before adcs=fixed

* start works

* virtual server sends

* receiver works

* tests

* python function and enum generation, commands generatorn and autocomplete, formatting, tests

* tests fail at start(transceiver not aligned)

* tests passed

* all binaries compiled

* eiger binary in

* added --nomodule cehck for xilinx
This commit is contained in:
2024-02-07 13:23:08 +01:00
committed by GitHub
parent f6b0ba9703
commit 3d21bb64c4
67 changed files with 3927 additions and 2055 deletions

View File

@ -441,7 +441,7 @@ period:
function: setPeriod
delay:
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Moench] Delay after trigger"
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Moench][Xilinx Ctb] Delay after trigger"
inherit_actions: TIME_COMMAND
actions:
GET:
@ -496,14 +496,14 @@ burstperiod:
################# TIME_GET_COMMAND #############
delayl:
help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Delay Left in Acquisition. \n\t[Gotthard2] only in continuous mode."
help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay Left in Acquisition. \n\t[Gotthard2] only in continuous mode."
inherit_actions: TIME_GET_COMMAND
actions:
GET:
function: getDelayAfterTriggerLeft
periodl:
help: "\n\t[Gotthard][Jungfrau][Moench][Ctb][Mythen3][Gotthard2] Period left for current frame. \n\t[Gotthard2] only in continuous mode."
help: "\n\t[Gotthard][Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period left for current frame. \n\t[Gotthard2] only in continuous mode."
inherit_actions: TIME_GET_COMMAND
actions:
GET:
@ -531,14 +531,14 @@ exptimel:
function: getExptimeLeft
runtime:
help: "[(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Time from detector start up.\n\t[Gotthard2] not in burst and auto mode."
help: "[(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Time from detector start up.\n\t[Gotthard2] not in burst and auto mode."
inherit_actions: TIME_GET_COMMAND
actions:
GET:
function: getActualTime
frametime:
help: "[(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Timestamp at a frame start.\n\t[Gotthard2] not in burst and auto mode."
help: "[(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Timestamp at a frame start.\n\t[Gotthard2] not in burst and auto mode."
inherit_actions: TIME_GET_COMMAND
actions:
GET:
@ -622,7 +622,7 @@ adcenable10g:
function: setTenGigaADCEnableMask
transceiverenable:
help: "[bitmask]\n\t[Ctb] Transceiver Enable Mask. Enable for each 4 Transceiver channel."
help: "[bitmask]\n\t[Ctb][Xilinx Ctb] Transceiver Enable Mask. Enable for each 4 Transceiver channel."
inherit_actions: INTEGER_COMMAND_HEX
actions:
GET:
@ -707,7 +707,7 @@ highvoltage:
function: setHighVoltage
powerchip:
help: "[0, 1]\n\t[Jungfrau][Moench][Mythen3][Gotthard2] Power the chip. \n\t[Jungfrau][Moench] Default is 0. Get will return power status. Can be off if temperature event occured (temperature over temp_threshold with temp_control enabled. Will configure chip (only chip v1.1)\n\t[Mythen3][Gotthard2] Default is 1. If module not connected or wrong module, powerchip will fail."
help: "[0, 1]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Xilinx Ctb] Power the chip. \n\t[Jungfrau][Moench] Default is 0. Get will return power status. Can be off if temperature event occured (temperature over temp_threshold with temp_control enabled. Will configure chip (only chip v1.1)\n\t[Mythen3][Gotthard2] Default is 1. If module not connected or wrong module, powerchip will fail.\n\t[Xilinx Ctb] Default is 0. Also configures the chip if powered on."
inherit_actions: INTEGER_COMMAND_VEC_ID
actions:
GET:
@ -764,7 +764,7 @@ readnrows:
function: setReadNRows
nextframenumber:
help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Ctb] Next frame number. Stopping acquisition might result in different frame numbers for different modules."
help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Ctb][Xilinx Ctb] Next frame number. Stopping acquisition might result in different frame numbers for different modules."
inherit_actions: INTEGER_COMMAND_VEC_ID
actions:
GET:
@ -1298,7 +1298,7 @@ dsamples:
function: setNumberOfDigitalSamples
tsamples:
help: "[n_value]\n\t[Ctb] Number of transceiver samples expected."
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Number of transceiver samples expected."
inherit_actions: INTEGER_COMMAND_VEC_ID
actions:
GET:
@ -1307,7 +1307,7 @@ tsamples:
function: setNumberOfTransceiverSamples
romode:
help: "[analog|digital|analog_digital|transceiver|digital_transceiver]\n\t[Ctb] Readout mode. Default is analog."
help: "[analog|digital|analog_digital|transceiver|digital_transceiver]\n\t[Ctb][xilinx Ctb] Readout mode. [Ctb] Default is analog. [Xilinx Ctb] Default is Transceiver (only one implemented so far)"
inherit_actions: INTEGER_COMMAND_VEC_ID
actions:
GET:
@ -1555,7 +1555,7 @@ fmaster:
################# INTEGER_IND_COMMAND #######################
v_limit:
inherit_actions: INTEGER_IND_COMMAND
help: "[n_value]\n\t[Ctb] Soft limit for power supplies (ctb only) and DACS in mV."
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Soft limit for power supplies (ctb only) and DACS in mV."
actions:
GET:
function: getPower
@ -1566,7 +1566,7 @@ v_limit:
v_a:
inherit_actions: INTEGER_IND_COMMAND
help: "[n_value]\n\t[Ctb] Power supply a in mV."
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply a in mV."
actions:
GET:
function: getPower
@ -1577,7 +1577,7 @@ v_a:
v_b:
inherit_actions: INTEGER_IND_COMMAND
help: "[n_value]\n\t[Ctb] Power supply b in mV."
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply b in mV."
actions:
GET:
function: getPower
@ -1588,7 +1588,7 @@ v_b:
v_c:
inherit_actions: INTEGER_IND_COMMAND
help: "[n_value]\n\t[Ctb] Power supply c in mV."
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply c in mV."
actions:
GET:
function: getPower
@ -1599,7 +1599,7 @@ v_c:
v_d:
inherit_actions: INTEGER_IND_COMMAND
help: "[n_value]\n\t[Ctb] Power supply d in mV."
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply d in mV."
actions:
GET:
function: getPower
@ -1610,7 +1610,7 @@ v_d:
v_io:
inherit_actions: INTEGER_IND_COMMAND
help: "[n_value]\n\t[Ctb] Power supply io in mV. Minimum 1200 mV. Must be the first power regulator to be set after fpga reset (on-board detector server start up)."
help: "[n_value]\n\t[Ctb][Xilinx Ctb] Power supply io in mV. Minimum 1200 mV. Must be the first power regulator to be set after fpga reset (on-board detector server start up)."
actions:
GET:
function: getPower
@ -1792,21 +1792,21 @@ patternstart:
resetfpga:
inherit_actions: EXECUTE_SET_COMMAND
help: "\n\t[Jungfrau][Moench][Ctb] Reset FPGA."
help: "\n\t[Jungfrau][Moench][Ctb][Xilinx Ctb] Reset FPGA."
actions:
PUT:
function: resetFPGA
rebootcontroller:
inherit_actions: EXECUTE_SET_COMMAND
help: "\n\t[Jungfrau][Moench][Ctb][Gotthard][Mythen3][Gotthard2] Reboot controller of detector."
help: "\n\t[Jungfrau][Moench][Ctb][Gotthard][Mythen3][Gotthard2][Xilinx Ctb] Reboot controller of detector."
actions:
PUT:
function: rebootController
firmwaretest:
inherit_actions: EXECUTE_SET_COMMAND
help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb] Firmware test, ie. reads a read fixed pattern from a register."
help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware test, ie. reads a read fixed pattern from a register."
actions:
PUT:
function: executeFirmwareTest
@ -1818,6 +1818,13 @@ bustest:
PUT:
function: executeBusTest
configtransceiver:
inherit_actions: EXECUTE_SET_COMMAND
help: "\n\t[Xilinx Ctb] Waits for transceiver to be aligned. Chip had to be configured (powered on) before this."
actions:
PUT:
function: configureTransceiver
################# EXECUTE_SET_COMMAND_NOID_1ARG ##############
config:
inherit_actions: EXECUTE_SET_COMMAND_NOID_1ARG
@ -2011,7 +2018,7 @@ lastclient:
framecounter:
inherit_actions: GET_COMMAND
help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Number of frames from start run control.\n\t[Gotthard2] only in continuous mode."
help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of frames from start run control.\n\t[Gotthard2] only in continuous mode."
actions:
GET:
function: getNumberOfFramesFromStart
@ -2080,7 +2087,7 @@ temp_adc:
temp_fpga:
inherit_actions: GET_IND_COMMAND
help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Gotthard][Mythen3][Gotthard2] FPGA Temperature"
help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Xilinx CTB] FPGA Temperature"
actions:
GET:
function: getTemperature
@ -2307,7 +2314,7 @@ slowadcvalues:
GETFCNLIST: getSlowADCList
GETFCNNAME: getSlowADCNames
GETFCN: getSlowADC
suffix: "mV"
suffix: "uV"
printable_name: "*name_it++"
tempvalues:
@ -2818,7 +2825,7 @@ Exptime:
exptime:
inherit_actions: Exptime
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Ctb] Exposure time\n\t[Mythen3] Exposure time of all gate signals in auto and trigger mode (internal gating). To specify gate index, use exptime1, exptime2, exptime3."
help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Ctb][Xilinx Ctb] Exposure time\n\t[Mythen3] Exposure time of all gate signals in auto and trigger mode (internal gating). To specify gate index, use exptime1, exptime2, exptime3."
actions:
GET:
function: getExptime