3.3 Status information¶
The driver provides functions to retrieve detailed information on the type of board, it’s configuration, settings and state. The information is split according to its scope and the computational requirements to query the information from the board.
-
int ndigo6g12_get_driver_revision()¶
Get the driver version in integer format.
- Returns:
The driver version in the same format as ndigo6g12_static_info::driver_revision.
-
const char *ndigo6g12_get_driver_revision_str()¶
Get the driver version in string format.
- Returns:
The Driver version including SVN build revision as a string with format x.y.z.svn.
-
int ndigo6g12_count_devices(int *error_code, const char **error_message)¶
Get the number of Ndigo6G-12 boards that are installed in the system.
- Parameters:
error_code – [out] Pointer to an integer in which to store the error code.
error_message – [out] Location in which to store the error message as plain text.
- Returns:
The number.
-
int ndigo6g12_get_static_info(ndigo6g12_device *device, ndigo6g12_static_info *static_info)¶
Get the static information.
The static information does not change after the device initialization.
- Parameters:
device – [in] Pointer to the device from which to get the information.
static_info – [out] Pointer to a structure in which to store the information.
- Returns:
-
int ndigo6g12_get_param_info(ndigo6g12_device *device, ndigo6g12_param_info *param_info)¶
Get parametric information.
The parametric information may change due to the configuration.
- Parameters:
device – [in] Pointer to the device from which to get the information.
param_info – [out] Pointer to a structure in which to store the information.
- Returns:
-
int ndigo6g12_get_fast_info(ndigo6g12_device *device, ndigo6g12_fast_info *fast_info)¶
Get fast status information.
The information can be retrieved within a few microseconds.
- Parameters:
device – [in] Pointer to the device from which to get the information.
fast_info – [out] Pointer to a structure in which to store the information.
- Returns:
-
int ndigo6g12_get_pcie_info(ndigo6g12_device *device, crono_pcie_info *pcie_info)¶
Reads the PCIe info like correctable and uncorrectable errors.
- Parameters:
device – [in] Pointer to the device.
pcie_info – [out] Pointer to the structure in which to store the information.
- Returns:
-
struct ndigo6g12_param_info¶
Contains configuration changes.
Structure filled by ndigo6g12_get_param_info(). This structure contains information that may change indirectly due to configuration changes.
Public Members
-
double bandwidth¶
Bandwidth.
4.5 or 6.5 GHz depending on ndigo6g12_configuration::extended_bandwidth.
-
int resolution¶
ADC sample resolution.
Always 12 bit.
-
double sample_rate¶
Actual ADC sample rate of currently sampled data.
Depending on ndigo6g12_configuration::adc_mode, that is,
sample_rate
= 6.4 GHz / channels.
-
double sample_period¶
The period that one sample in the data represents in picoseconds.
-
double tdc_period¶
The period that one TDC bin in the data represents in picoseconds.
-
double packet_ts_period¶
The period that one tick of the packet timestamp represents in picoseconds.
-
uint64_t tdc_packet_timestamp_offset¶
The TDC packet timestamp offset.
Since TDC packets carry the timestamp of the end of the packet, to calculate the start,
tdc_packet_timestamp_offset
has to be subtracted.
-
uint32_t tdc_rollover_period¶
Time span of one TDC timestamp rollover period in units of the TDC binsize.
All TDC hits within this period are written to one crono_packet.
-
double adc_sample_delay¶
The delay of the ADC samples due to pipelining in picoseconds.
-
int board_id¶
The ID the board uses to identify itself in the output data stream.
Takes values 0 to 255.
-
int channels¶
Number of ADC channels in the current mode.
-
int channel_mask¶
Mask with a set bit for each enabled input channel.
-
int tdc_channels¶
Number of TDC channels in the current mode.
-
int64_t total_buffer¶
The total amount of the DMA buffer in bytes.
-
int samples_per_clock¶
The number of samples in one clock cycle in the current mode.
-
double bandwidth¶
-
struct ndigo6g12_static_info¶
Structure contains static information.
This structure contains information about the board that does not change during run time. It is provided by ndigo6g12_get_static_info().
Public Members
-
char bitstream_date[NDIGO6G12_BITSTREAM_DATE_LEN]¶
Bitstream creation date.
DIN EN ISO 8601 string YYYY-MM-DD HH:DD:SS describing the time when the bitstream was created.
-
int board_configuration¶
Describes the schematic configuration of the board.
The same board schematic can be populated in multiple variants. This is a 8-bit code that can be read from a register.
-
int board_revision¶
Board revision number.
The board revision number can be read from a register. It is a four bit number that changes when the schematic of the board is changed.
0: Experimental version of the first board. Labeled “Rev. 1”.
2: First commercial version. Labeled “Rev. 2”
-
int board_serial¶
The board’s serial number.
With year and running number in 8.24 format (yy.nnn; 8 bits are used to encode the year, 24 bits to encode the number).
The number is identical to the one printed on the silvery sticker on the board.
-
char calibration_date[NDIGO6G12_CALIBRATION_DATE_LEN]¶
Calibration date.
DIN EN ISO 8601 string YYYY-MM-DD HH:DD describing the time when the card was calibrated.
-
int chip_id¶
16-bit factory ID of the ADC chip.
This is the chipID as read from the 16-bit ADC chip-ID register.
-
crono_bool_t dc_coupled¶
Shows if the inputs are DC-coupled.
Default is
false
, that is, AC-coupled.
-
int driver_revision¶
Encoded version number for the driver.
The lower three bytes contain a triple-level hierarchy of version numbers. E.g., 0x010103 encodes version 1.1.3.
A change in the first digit generally requires a recompilation of user applications. Change in the second digit denote significant improvements or changes that don’t break compatibility and the third digit changes with minor bugfixes and the like (see https://semver.org/).
-
int driver_build_revision¶
The build number of the driver according to cronologic’s internal versioning system.
-
crono_bool_t flash_valid¶
Calibration data read from flash is valid.
If not
false
, the driver found valid calibration data in the flash on the board and is using it.
-
int fw_revision¶
Revision number of the FPGA configuration.
-
int fw_type¶
Type of firmware, always 5 -> Ndigo6G-12.
-
int pcb_serial¶
Trenz serial number.
-
int svn_revision¶
Subversion revision ID of the FPGA configuration.
A number to track builds of the firmware in more detail than the firmware revision. It changes with every change in the firmware, even if there is no visible effect for the user. The subversion revision number can be read from a register.
-
int application_type¶
Shows the initialized mode.
See NDIGO6G12_APP_TYPE_* constants.
-
char config_flash_signature_primary[NDIGO6G12_FLASH_SIG_LEN]¶
Shows the signature of the primary flash.
-
char config_flash_signature_secondary[NDIGO6G12_FLASH_SIG_LEN]¶
Shows the signature of the secondary flash.
-
double auto_trigger_ref_clock¶
Auto trigger clock frequency.
The clock frequency of the auto trigger in Hz used for the calculations of ndigo6g12_configuration::auto_trigger_period.
Fixed at 200 MHz.
-
char bitstream_date[NDIGO6G12_BITSTREAM_DATE_LEN]¶
-
struct ndigo6g12_fast_info¶
Contains fast dynamic information.
This structure is filled by ndigo6g12_get_fast_info(). This information can be obtained within a few microseconds.
Public Members
-
int state¶
The current state of the device.
Should be one of the NDIGO6G12_DEVICE_STATE_* values.
-
int fan_speed¶
Speed of the FPGA fan in rounds per minute.
Reports 0 if no fan is present.
-
double fpga_temperature¶
Temperature of the FPGA in °C.
-
double fpga_vccint¶
Internal Voltage of the FPGA in V. Useful debugging information.
-
double fpga_vccaux¶
Auxillary Voltage of the FPGA in V. Useful debugging information.
-
double fpga_vccbram¶
BRAM Voltage of the FPGA in V. Useful debugging information.
-
double mgt_0v9¶
Shows measured voltage for the mgt_0v9 power supply in V. Useful debugging information.
-
double mgt_1v2¶
Shows measured Voltage for the mgt_1v2 power supply in V. Useful debugging information.
-
double adc_2v5¶
Shows measured voltage for the 2v5 power supply in V. Useful debugging information.
-
double clk_3v3¶
Shows measured voltage for the clk_3v3 power supply in V. Useful debugging information.
-
double adc_3v3¶
Shows measured voltage for the adc_3v3 power supply in V. Useful debugging information.
-
double pcie_3v3¶
Shows measured voltage for the pcie_3v3 power supply in V. Useful debugging information.
-
double opamp_5v2¶
Shows measured voltage for the opamp_5v2 power supply in V. Useful debugging information.
-
double temp4633_1¶
Shows temperature of voltage regulartor U3_1 in °C.
-
double temp4633_2¶
Shows temperature of voltage regulator U3_2 in °C.
-
double temp4644¶
Shows temperature of voltage regulator U4 in °C.
-
double tdc1_temp¶
Temperature of the TDC-chip in °C.
-
double ev12_cmiref¶
Shows voltage for differential ADC input common mode voltage in V.
Measured or calibration target depending on board revision and assembly variant.
-
double ev12_temp¶
Temperature of the ADC in °C.
-
int alerts¶
Alert bits from temperature sensor and the system monitor.
Bit 0 is set if the TDC temperature exceeds 140°C. In this case the TDC shut down and the device needs to be reinitialized.
See NDIGO6G12_ALERT_* .
-
int pcie_link_width¶
Number of PCIe lanes the card uses.
Should always be 8 for the Ndigo6G-12.
-
int pcie_link_speed¶
Data rate of the PCIe card.
Should always be 3 for the Ndigo6G-12.
-
int pcie_max_payload¶
Maximum size for a single PCIe transaction in bytes.
Depends on the system configuration.
-
crono_bool_t adc_data_pll_locked¶
ADC data clock is PLL locked.
-
crono_bool_t adc_data_pll_lost_lock¶
ADC data clock PLL lost lock (Sticky Bit).
-
int adc_lanes_synced¶
Shows the synced ADC lanes.
Each bit corresponds to one lane. Useful debugging information.
-
int adc_lanes_lost_sync¶
Shows the ADC lanes that lost sync.
Each bit corresponds to one lane. Useful debugging information.
-
int adc_lanes_fifo_empty¶
Shows which ADC lanes have an empty FIFO.
Each bit corresponds to one lane. Useful debugging information.
-
int adc_lanes_fifo_full¶
Shows which ADC lanes have a full FIFO.
Each bit corresponds to one lane. Useful debugging information.
-
int adc_lanes_running¶
Shows which ADC lanes are running.
Each bit corresponds to one lane. Useful debugging information.
-
int adc_lanes_sync_timeout¶
Shows which ADC lanes were unable to sync before a timeout.
Each bit corresponds to one lane. Useful debugging information.
-
int adc_sync_retry_count¶
The number of ADC lane synchronization retries.
Default is set to 0. Useful debugging information.
-
int adc_sync_strobe_retry_count¶
The number of ADC strobe synchronization retries.
Default is set to 0. Useful debugging information.
-
int adc_sync_delay_count¶
16 Bit number showing when the last ADC lane synchronization was achieved.
Useful debugging information.
-
crono_bool_t adc_mgt_power_good¶
Shows if the supplied mgt power is sufficient.
Useful debugging information.
-
crono_bool_t lmk_pll1_locked¶
Shows if lmk_pll1 is locked. Useful debugging information.
-
crono_bool_t lmk_pll2_locked¶
Shows if lmk_pll2 is locked. Useful debugging information.
-
crono_bool_t lmk_lost_lock¶
Shows if lmk lost lock. Useful debugging information.
-
int lmk_lock_wait_count¶
Wait count of the lmk. Useful debugging information.
-
int lmk_ctrl_vcxo¶
Usefull for hardware debugging.
-
crono_bool_t lmx_locked¶
lmx locked. Useful debugging information.
-
crono_bool_t lmx_lost_lock¶
lmx lost lock. Useful debugging information.
-
int lmx_lock_wait_count¶
lmx lock wait count. Useful debugging information.
-
int state¶
-
struct crono_pcie_info¶
Structure containing PCIe information.
Public Members
-
uint32_t pwr_mgmt¶
Organizes power supply of PCIe lanes.
-
uint32_t link_width¶
Number of PCIe lanes that the card uses.
Should be 1, 2, or 4 for Ndigo5G and 1, 2, 4, or 8 for the Ndigo6G-12. Ideally, should be the respective maximum.
-
uint32_t max_payload¶
Maximum size in bytes for one PCIe transaction.
Depends on the system configuration.
-
uint32_t link_speed¶
Data rate of the PCIe card.
Depends on the system configuration.
-
uint32_t error_status_supported¶
Different from 0 if the PCIe error status is supported for this device.
-
uint32_t correctable_error_status¶
Correctable error status flags, directly from the PCIe config register.
Useful for debugging PCIe problems. 0, if no error is present, otherwise one of CRONO_PCIE_* .
-
uint32_t uncorrectable_error_status¶
Uncorrectable error status flags, directly from the PCIe config register.
Useful for debugging PCIe problems. 0, if no error is present, otherwise one of CRONO_PCIE_UNC_* .
-
uint32_t reserved¶
For future extension.
-
uint32_t pwr_mgmt¶