Changes between Version 2 and Version 3 of ApolloSM Software ToDo


Ignore:
Timestamp:
Jun 14, 2020, 2:19:10 PM (2 years ago)
Author:
Felex
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ApolloSM Software ToDo

    v2 v3  
    666. There are probably a good number of class variables/functions that can be private in the classes that the standalone daemons use (ie. CM, FPGA, daemon). They should be made private. More: there are probably several places that variables and function arguments can be made const; it would be good practice to do that
    777. A full eyescan currently uses a precision map (related to the BER confidence level table). This map is utilized in the EyeScanLink.cc class. A single eyescan point should also do this (Apollo_eyescan) but it doesn't. Although the single eyescan command from BUTool will probably rarely be used, it would be more technically correct if it used a precision map.
    8 8. User can specify a prescale in the config file, but looking at the EyeScanLink.cc class we note that only certain prescales have defined confidence levels (datasheet), so currently, any calculated BER below the precision is rounded upto the next biggest precision (ex: if a prescale of 7 is between 10^-4^ and 10^-3^, 10^-3^ is used). Actually, the prescale should be rounded down to the nearest well defined prescale BEFORE the scan is performed and the BER is calculated because there is no point of scanning up to a non-well defined prescale. It might even make more sense, however, for a user simply to specify the precision they want in the config file instead of the prescale (ie 10^-6 or 10^-7 or 10^-9 etc). More: May also be good to have the eyescan daemon warn the user when they have specified a precision that will take a very long time (ie longer than the polltime they specify) to scan (remember these are exponential).
     88. User can specify a prescale in the config file, but looking at the EyeScanLink.cc class we note that only certain prescales have defined confidence levels (datasheet), so currently, any calculated BER below the precision is rounded upto the next biggest precision (ex: if a prescale of 7 is between 10^-4^ and 10^-3^, 10^-3^ is used). Actually, the prescale should be rounded down to the nearest well defined prescale BEFORE the scan is performed and the BER is calculated because there is no point of scanning up to a non-well defined prescale. It might even make more sense, however, for a user simply to specify the precision they want in the config file instead of the prescale (ie 10^-6^ or 10^-7^ or 10^-9^ etc). More: May also be good to have the eyescan daemon warn the user when they have specified a precision that will take a very long time (ie longer than the polltime they specify) to scan (remember these are exponential).
    999. LPM and DFE eyescan modes are currently implemented in the code. The code automatically checks the RXLPMEN port to see what mode is being used. That code can be condensed a little. May also be good to be able to configure the mode (although we currently aren't writing to any ports). More: The difference between these two modes, as far as eyescan is concerned, is taking 1 or 2 eyescans after changing the UT sign. Since the UT sign is important, it should probably be its own separate node in both the 7 series and ultrascale plus DRP address tables.
    101010. Print firmware build date function is written but doesn't work for some reason (maybe the node name changed). that should be checked and also a decision to put it either in the CM or FPGA class should be made
     
    262626. CM class should be named something else
    272727. In a lot of daemons a 'configFilePO' variable is passed to other object constructors; this variable should be passed by reference to save time/memory
    28 28. The algorithm for parsing the SMboot and eyescan config files scale as n^3 (3 nested for loops). This is terrible from a theoretical standpoint but since we aren't using many options currently it's fine for now
     2828. The algorithm for parsing the SMboot and eyescan config files scale as n^3^ (3 nested for loops). This is terrible from a theoretical standpoint but since we aren't using many options currently it's fine for now
    292929. The call to openlog() takes certain different options and since openlog() is called in daemon.cc for all daemons, all daemons have logs opened with the same options. This should be changed if some daemons prefer different options
    303030. EnableEyeScan() function doesn't need its second argument anymore since all prescales are retreived from config files and scanning always starts at prescale = 0