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_elinkandbert_internal. The main methodberthad a misleading argumenteprx_group. This variable can also be an EPTX group. I changedeprx_grouptobertsource_gand made the logging consistent with whatever arrives at thebertmethod. The user should use the simpler methodbert_by_elinkso there is less gymnastics with thebertsource_*variables/arguments. - created a method
bert_full_rxthat goes through all EPRX links of one lpGBT - with the standard
bertmeastime=11abert_fulltakes 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_timeis by default 0.5 s but forbertmeastime> 12 (more than 4 s) thesleep_timeis 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_checkthat 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_elinksupports now also lpGBT internal BERT, for examplebert_by_elink("EPRX20", internal=True)
Edited by Roman Roth