(generated_monitoring_points_dsp)= # DSP (generated_monitoring_points_dsp_tile_beamf)= ## Tile Beamformer **Description**: Tile beamformer error flag status. The TPM FPGAs each channelize data for eight dual polarisation antennas. In addition to beam calibration and steering, the tile beamformer produces beams for sixteen dual polarisation antennas by exchanging data over the FPGA-to-FPGA interface. These error flags relate to this external interface of the tile beamformer. The tile beamformer status is ``False`` if any of the below errors are detected: * Packet boundaries for the data received over the FPGA-to-FPGA interface are not aligned with the local data. * Local data FIFO buffer is written when full (overflow). Data from the FPGA-to-FPGA interface is arriving too slow or not at all. * Local data FIFO buffer is read when empty. Data from the FPGA-to-FPGA interface is arriving too fast. - **Groups**: ``dsp``, ``tile_beamf`` - **Reported By**: TPM FPGAs - **Expected**: `True` - **Cleared When Read**: Yes
Developer info - **Tile Method**: `check_tile_beamformer_status` - **Arguments:** - **fpga_id** (*int*): Specify which FPGA, 0, 1, or None for both FPGAs - **Returns**: True when Status is OK, no errors (*bool*) - **Tile Method to Clear**: `clear_tile_beamformer_status`

(generated_monitoring_points_dsp_station_beamf)= ## Station Beamformer (generated_monitoring_points_dsp_station_beamf_status)= ### Status **Description**: Station beamformer error flag status. Tiles in a station produce station beams by summing tile beams transmitted over a 40GbE network. Beams for sixteen dual polarisation antennas are summed into beams for 256 dual polarisation antennas. The station beamformer status is ``False`` if any of the below errors are detected: * The Core RAM FIFO buffer is read when empty. * The Core RAM FIFO buffer is written when full (overflow). * The SPEAD RAM FIFO buffer is read when empty. * The SPEAD RAM FIFO buffer is written when full (overflow). * The SPEAD packet FIFO buffer receives packets that are too short. * The SPEAD packet FIFO buffer receives packets that are too long. * The Corner Turner RAM FIFO buffer is read when empty. * The Corner Turner RAM FIFO buffer is written when full (overflow). - **Groups**: ``dsp``, ``station_beamf`` - **Reported By**: TPM FPGAs - **Expected**: `True` - **Cleared When Read**: Yes
Developer info - **Tile Method**: `check_station_beamformer_status` - **Arguments:** - **fpga_id** (*int*): Specify which FPGA, 0, 1, or None for both FPGAs - **show_result** (*bool*): prints error counts on logger - **Returns**: True when Status is OK, no errors (*bool*) - **Tile Method to Clear**: `clear_station_beamformer_status`

(generated_monitoring_points_dsp_station_beamf_discarded_or_flagged_packet_count)= ### Discarded Or Flagged Packet Count **Description**: Number of discarded or flagged packets reportd by the final tile in the station beamformering chain. This is in units of packets received by the last tile in the station, travelling station beam packets that are $ \frac{1}{8} $ of a CSP packet. When station beam flagging is disabled the number of discarded packets is reported. This will always be a multiple of 8 as a full CSP packet is discarded if it is not complete. When station beam flagging is enabled, the number of substituted (flagged) packets is reported. **NOTE**: This should only be polled for the last tile in the station. For all other tiles the values will be 0. - **Groups**: ``dsp``, ``station_beamf`` - **Reported By**: TPM FPGAs - **Expected**: `{'FPGA0': 0, 'FPGA1': 0}` - **Cleared When Read**: Yes
Developer info - **Tile Method**: `check_station_beamformer_discarded_or_flagged_packet_count` - **Arguments:** - **fpga_id** (*int*): Specify which FPGA, 0, 1, or None for both FPGAs - **Returns**: counter values (*dict*) - **Tile Method to Clear**: `clear_station_beamformer_status`

(generated_monitoring_points_dsp_station_beamf_ddr_parity_error_count)= ### DDR Parity Error Count **Description**: DDR parity error counter. The TPM FPGA generates a basic parity which is used to detect errors in station beamformed samples read from the DDR memory during corner turning. This counter will increment for every error detected. Any errors suggests a hardware degredation of the TPM DDR4 SDRAM chips. **NOTE**: For now, this is not full ECC (Error Correcting Code). A more complex parity alogorithm would be requires to provide automatic correction of parity errors as well as detection. - **Groups**: ``dsp``, ``station_beamf`` - **Reported By**: TPM FPGAs - **Expected**: `{'FPGA0': 0, 'FPGA1': 0}` - **Cleared When Read**: Yes
Developer info - **Tile Method**: `check_ddr_parity_error_counter` - **Arguments:** - **fpga_id** (*int*): Specify which FPGA, 0, 1, or None for both FPGAs - **Returns**: counter values (*dict*) - **Tile Method to Clear**: `clear_station_beamformer_status`

(generated_monitoring_points_dsp_station_beamf_dsp_latency_error)= ### DSP Latency Error **Description**: Station signal processing chain latency status. The final TPM in the station verifies the processing latency from ADC capture and time-tag to transmission in the final tile in the beamforming chain to CSP. The DSP latency is calculated by measuring the difference between the SPEAD transmission timestamp in the station beamformer and the ADC sampling timestamp for the same packet. The measured latency is compared to a threshold, typically 10 ms. The status is ``False`` if the latency exceeds the threshold. The current latency can be read using `check_dsp_latency`. Check if the DSP latency has exceeded the allowed threshold. Returns Ture if the DSP latency is OK, else False. **NOTE**: This should only be polled for the last tile in the station. For all other tiles the measured latency will be 0 ms so latency status will be `True`. - **Groups**: ``dsp``, ``station_beamf`` - **Reported By**: TPM FPGAs - **Expected**: `True` - **Cleared When Read**: Yes
Developer info - **Tile Method**: `check_dsp_latency_status` - **Arguments:** - **fpga_id** (*int*): Specify which FPGA, 0, 1, or None for both FPGAs - **Returns**: True if DSP latency is OK, else False. (*bool*) - **Tile Method to Clear**: `clear_dsp_latency_status`

(generated_monitoring_points_dsp_max_broadband_rfi)= ## Max Broadband RFI **Description**: The maximum number of ADC frames containing broadband RFI across all antennas. A count is maintained per dual polarisation antenna (and associated ADC) of broadband RFI-affected frames. The value returned is the highest of these counters. A count of ADC frames containing broadband RFI for all dual polarisation antennas can be read using `read_broadband_rfi`. - **Groups**: ``dsp``, ``max_broadband_rfi`` - **Reported By**: TPM FPGAs - **Expected**: up to 65535 - **Cleared When Read**: Yes
Developer info - **Tile Method**: `max_broadband_rfi` - **Returns**: Maximum number of ADC frames containing broadband RFI (*int*) - **Tile Method to Clear**: `clear_broadband_rfi`