BERT optimisations, summary in merge request
- trying to improve BERT of Optoboard in preparation for integration tests during construction.
- goal: testing all lanes as fast as possible, as reliable as possible
- fixed bug in
bert_by_elink
andbert_internal
. The main methodbert
had a misleading argumenteprx_group
. This variable can also be an EPTX group. I changedeprx_group
tobertsource_g
and made the logging consistent with whatever arrives at thebert
method. The user should use the simpler methodbert_by_elink
so there is less gymnastics with thebertsource_*
variables/arguments. - created a method
bert_full_rx
that goes through all EPRX links of one lpGBT - with the standard
bertmeastime=11
abert_full
takes now 20 to 30 s. Previously this included 1200 status reads sent to FELIX (can take up to max. 6x328=1968 reads). A sleep statement inside the while loop prevents this now, thesleep_time
is by default 0.5 s but forbertmeastime
> 12 (more than 4 s) thesleep_time
is 10 s to not fill the logs. - the bit errors are now given while the measurement is ongoing in steps of the
sleep_time
- added a flag
high_ber_check
that aborts the BERT if low BER values can't be reached anymore. This is very practical if we have many modules that are not powered/connected or have bad data transmission. There is no need to measure minutes if there are already more than 10000 error bits after half a second. -
bert_by_elink
supports now also lpGBT internal BERT, for examplebert_by_elink("EPRX20", internal=True)
Edited by Roman Mueller