tpm_test_firmware

Overview

This is the class which contains methods for monitoring and control of FPGA firmware for SKA-Low TPM. These methods are the basis for all TPM versions.

Note

Inheritance means TPM 1.6 and higher can have additional or different methods if overloaded.

Python Class & Methods Index

Hardware functions for the TPM 1.2 hardware.

This is a transcript of the corresponding class from the pyaavs library, with code style modified for SKA coding conventions. It depends heavily on the pyfabil low level software and specific hardware module plugins.

class pyaavs.plugins.tpm.tpm_test_firmware.TpmTestFirmware(board: Any, **kwargs: Any)[source]

FirmwareBlock tests class.

check_ddr_initialisation() bool[source]

Check whether DDR has initialised.

check_ddr_user_reset_counter(show_result=True) int[source]

Return value of DDR user reset counter - increments each falling edge of the DDR generated user logic reset.

check_ddr_voltage() None[source]

Check if DDR voltage regulator is enabled, if not enable it. TPM 1.2 only

check_pps_status() bool[source]

Check PPS detected and error free

clean_up() bool[source]

Perform cleanup.

Returns:

Success

clear_ddr_user_reset_counter() None[source]

Reset value of DDR reset counter

clear_lmc_data_request() None[source]

Stop transmission of all LMC data.

clear_pps_status() None[source]

Clear PPS errors

download_beamforming_weights(weights: list[float], antenna: int) None[source]

Apply beamforming weights.

Parameters:
  • weights – Weights array

  • antenna – Antenna ID

initialise() bool[source]

Initialise TpmTestFirmware.

Returns:

success status

initialise_ddr() None[source]

Initialise DDR.

initialise_firmware() None[source]

Initialise firmware components.

Raises:

BoardError – cannot configure JESD core

load_plugin() None[source]

Load required plugin.

send_beam_data() None[source]

Send beam data from the TPM.

send_channelised_data(number_of_samples: int = 128, first_channel: int = 0, last_channel: int = 511) None[source]

Send channelized data from the TPM.

Parameters:
  • number_of_samples – contiguous time samples sent per channel

  • first_channel – First channel transmitted

  • last_channel – Last channel transmitted + 1 (python range convention)

send_channelised_data_continuous(channel_id: int, number_of_samples: int = 128) None[source]

Continuously send channelised data from a single channel.

Parameters:
  • channel_id – Channel ID

  • number_of_samples – contiguous time samples sent per channel

send_channelised_data_narrowband(band_frequency: int, round_bits: int, number_of_samples: int = 128) None[source]

Continuously send channelised data from a single channel in narrowband mode.

Parameters:
  • band_frequency – central frequency (in Hz) of narrowband

  • round_bits – number of bits rounded after filter

  • number_of_samples – samples per lmc packet

send_raw_data() None[source]

Send raw data from the TPM.

send_raw_data_synchronised() None[source]

Send raw data from the TPM.

start_ddr_initialisation() None[source]

Start DDR initialisation.

status_check() Any[source]

Perform status check.

Returns:

Status

stop_channelised_data() None[source]

Stop sending channelised data.

stop_channelised_data_continuous() None[source]

Stop transmission of continuous channel data.

stop_channelised_data_narrowband() None[source]

Stop transmission of narrowband channel data.

stop_integrated_beam_data() None[source]

Stop receiving integrated beam data from the board.

stop_integrated_channel_data() None[source]

Stop receiving integrated beam data from the board.

stop_integrated_data() None[source]

Stop transmission of integrated data.