ChronosQ RFSoC Driver. More...

Public Member Functions | |
| def | acquire_demod_state (self, List[int] demodID_list, int num_shots) |
| Acquire demodulator state. More... | |
| def | acquire_iq_data (self, List[DemodBlock] demod_block_list, int num_shots) |
| Acquire IQ data. More... | |
| def | acquire_raw_adc_data (self, List[ADCChannel] adc_to_read, int num_shots) |
| Acquire raw ADC data. More... | |
| def | dev_test_command (self, int sub_cmd_id, **kwargs) |
| Development Test Command Tx. More... | |
| def | get_current_dc_offset (self) |
| Retrieve current DAC DC offset configuration. More... | |
| def | get_demodulator_state (self, int num_shots, List[int] demod_ids) |
| Triggers the acquisition of demodulator state data stream. More... | |
| def | get_dev_test_command_reply (self, int sub_cmd_id) |
| Retrieves reply for sub-command. More... | |
| def | get_jump_regs_config (self) |
| Retrieve the current jump registers configurations. More... | |
| def | get_status (self) |
| Retrieves current settings of DACs and ADCs. More... | |
| def | get_system_config (self, int request_type=0) |
| Retrieve System configuration. More... | |
| str | get_version (self) |
| Retrieves the version. More... | |
| def | load_waveforms (self, Dict[int, np.ndarray] waveform_map, Dict[int, int] address_map=None) |
| Loads waveforms into the selected DAC memory. More... | |
| def | reset_delays (self, bool reset_dacs=False, bool reset_adcs=False) |
| Reset DAC and/or ADC delays configuration. More... | |
| def | set_continuous_playback (self, bool enabled) |
| Sets the continuous playback setting of the RFSoC. More... | |
| def | set_jump_regs_config (self, List[DACJumpRegister] jump_regs) |
| Configures the jump registers/. More... | |
| def | set_relaxation_time (self, int relax_time) |
| Configures the relaxation time. More... | |
| def | start_playback (self, **kwargs) |
| Triggers the RFSoC to start DAC only playback. More... | |
| def | stop_playback (self) |
| Stops ongoing DAC ONLY playback. More... | |
| def | sync_delay (self) |
| Synchronizes channel delay setting with the RFSoC. More... | |
| def | sync_demod (self) |
| Synchronizes demodulator with the RFSoC. More... | |
| def | sync_setup (self) |
| Synchronizes the settings with the RFSoC. More... | |
Public Attributes | |
| adc | |
| List of ADC channel objects. More... | |
| adc_sampling_interval | |
| Interval between ADC Sampling. More... | |
| adc_sampling_rate | |
| ADC Sampling rate. More... | |
| comm_sock | |
| Socket object for established connection to CHRONOS-Q board. More... | |
| dac | |
| List of DAC channel objects. More... | |
| dac_sampling_interval | |
| Interval between DAC Sampling. More... | |
| dac_sampling_rate | |
| DAC Sampling Rate. More... | |
| demod | |
| List of demodulation block objects. More... | |
| fmc_sampling_interval | |
| Interval between FMC DAC sampling. More... | |
| fmc_sampling_rate | |
| FMC DAC's Sampling Rate. More... | |
CHRONOS-Q Driver object that whereby the end user's program interacts with the ChronosQ CHRONOS-Q.
| acquire_demod_state | ( | self, | |
| List[int] | demodID_list, | ||
| int | num_shots | ||
| ) |
Triggers acquisition of demodulator states for a list of demodulator for desired number of shots.
*_NOTE:* _Invoking this function also triggers DACs playback.
| [in] | demodID_list | List of demodulator block IDs. |
| [in] | num_shots | Number of shots. |
| acquire_iq_data | ( | self, | |
| List[DemodBlock] | demod_block_list, | ||
| int | num_shots | ||
| ) |
Triggers acquisition of IQ data from demodulator for desired number of shots.
*_NOTE:* _Invoking this function also triggers DACs playback.
| [in] | demod_block_list | Demodulator block list. |
| [in] | num_shots | Number of shots. |
| def acquire_raw_adc_data | ( | self, | |
| List[ADCChannel] | adc_to_read, | ||
| int | num_shots | ||
| ) |
Triggers acquisition of raw ADC data for desired number of shots.
*_NOTE:* _Invoking this function also triggers DACs playback.
| [in] | adc_to_read | A list of ADCs to acquire data from. |
| [in] | num_shots | Number of shots. |
| dev_test_command | ( | self, | |
| int | sub_cmd_id, | ||
| ** | kwargs | ||
| ) |
Invoke the Development Test command on the Chronos-Q system.
| [in] | sub_cmd_id | Development test command's sub-command ID as defined in the protocol. Refer to protocol specifications for defined values. |
| [in] | kwargs | Variadic list of parameters required for the sub-command. |
| get_current_dc_offset | ( | self | ) |
Retrieve the current DAC DC offset configuration on the RFSOC system.
| Name | Description |
|---|---|
| id | DAC channel ID |
| dc_offset | DC Offset configuration |
| dc_calibration | DC Calibration configuration |
| get_demodulator_state | ( | self, | |
| int | num_shots, | ||
| List[int] | demod_ids | ||
| ) |
Trigger the CHRONOS-Q to begin streaming state data of the demodulator(s).
The function only returns upon completing acquisition of ALL state data for ALL shots from requested demodulator.
| [in] | num_shots | Number of shots to acquire the demodulator state data. |
| [in] | demod_ids | A list of demodulator IDs to acquire the state information from. |
| def get_dev_test_command_reply | ( | self, | |
| int | sub_cmd_id | ||
| ) |
Retrieves the reply for the transmitted sub-command.
| [in] | sub_cmd_id | Development test command's sub-command ID as defined in the protocol. Refer to protocol specifications for defined values. |
| get_jump_regs_config | ( | self | ) |
details Retrieves the current DAC jump registers configurations.
| get_status | ( | self | ) |
Retrieves the DAC & ADC sampling rates and their individual channel settings.
| def get_system_config | ( | self, | |
| int | request_type = 0 |
||
| ) |
Retrieves the current system configuration information.
| [in] | request_type | Type of system configuration to return.
|
| Information Type | Description | Request Type |
|---|---|---|
| system_config | Brief System configuration | Brief (0x01) & Detailed (0x00) |
| xydac_config | XY DAC Configuration | Detailed (0x00) |
| rodac_config | XRO DAC Configuration | Detailed (0x00) |
| zdac_config | Z DAC Configuration | Detailed (0x00) |
| adc_config | ADC Configuration | Detailed (0x00) |
| get_version | ( | self | ) |
Current firmware version of CHRONOS-Q Server.
Retrieves the current firmware version of connected CHRONOS-Q Server.
| load_waveforms | ( | self, | |
| Dict[int, np.ndarray] | waveform_map, | ||
| Dict[int, int] | address_map = None |
||
| ) |
Loads waveforms into the selected DAC memory.
| [in] | waveform_map | Dictionary mapping DAC channels to waveforms to be uploaded. |
| [in] | address_map | (Optional) Dictionary mapping DAC channels to the memory address where DAC playback will end. In the event this parameter is used, the address information is basically the waveform data's index for the given DAC. In the event this parameter is not given, the playback will end at the last item in the waveform data. |
| def reset_delays | ( | self, | |
| bool | reset_dacs = False, |
||
| bool | reset_adcs = False |
||
| ) |
Resets the delay configurations for all DACs and/or ADCs to zero.
| [in] | reset_dacs | (Optional) Set to true to reset the delays for DACs. Defaults to false. |
| [in] | reset_adcs | (Optional) Set to true to reset the delays for ADCs. Defaults to false. |

| set_continuous_playback | ( | self, | |
| bool | enabled | ||
| ) |
Enables or Disables the continuous playback functionality of CHRONOS-Q.
| [in] | enabled | True to enable continuous playback. Else False. Default is True. |

| def set_jump_regs_config | ( | self, | |
| List[DACJumpRegister] | jump_regs | ||
| ) |
Configures the DACs jump registers for playback operation.
It should be noted that all jump register configuration shall fall within the actual waveform data loaded to the DACs data memory until to the defined end address.
| [in] | jump_regs | A list of channel.dac.DACJumpRegister objects containing the desired DAC jump registers configurations. |
| set_relaxation_time | ( | self, | |
| int | relax_time | ||
| ) |
Configures the time interval between shots acquisitions.
| [in] | relax_time | Time interval (in microseconds). |
| start_playback | ( | self, | |
| ** | kwargs | ||
| ) |
Triggers the RFSoC to start DAC only playback.
Invoking this function when acquisition related function will be invoked later (e.g. ChronosQRFSoC.acquire_raw_adc_data / ChronosQRFSoC.acquire_iq_data) is redundant.
This is because both function calls will trigger DACs playback.
Use of this function only if DACs playback is required when there isn't a need for acquisition e.g. Measurement of DAC output signal for testing.
| [in] | kwargs | Optional keyword based arguments for the DAC only playback requests.
|

| stop_playback | ( | self | ) |
Stops any ongoing DAC ONLY playback operation.

| sync_delay | ( | self | ) |
Synchronizes the DAC and ADC delay settings to CHRONOS-Q.
Only DAC(s) and/or ADC(s) with modified settings are sent to CHRONOS-Q.

| sync_demod | ( | self | ) |
Synchronizes the demodulator settings to CHRONOS-Q.
Only demodulator(s) with modified settings are sent to CHRONOS-Q.
| sync_setup | ( | self | ) |
Synchronizes the DAC and ADC settings to CHRONOS-Q.
Only modified DAC(s) and/or ADC(s) with modified settings are sent to CHRONOS-Q.
| adc |
List of ADC channel objects(channel.adc.ADCChannel) containing ADC settings .
The ADC channel objects are initialized using the channel status information obtained during ChronosQRFSoC object creation.
| adc_sampling_interval |
Time interval (in seconds) between ADC sampling.
Calculated and assigned based on the ADC sampling rate information during ChronosQRFSoC initialization.
| adc_sampling_rate |
CHRONOS-Q's ADC sampling rate in Hz.
This information is initially set during ChronosQRFSoC initialization process whereby the info is obtained directly from connected CHRONOS-Q via calls to ChronosQRFSoC.get_status.
| comm_sock |
Socket object for established connection to CHRONOS-Q board.
| dac |
List of DAC channel objects(channel.dac.DACChannel) containing DAC settings.
The DAC channel objects are initialized using the channel status information obtained during ChronosQRFSoC object creation.
| dac_sampling_interval |
Time interval (in seconds) between DAC sampling.
Calculated and assigned based on the DAC sampling rate information during ChronosQRFSoC initialization.
| dac_sampling_rate |
CHRONOS-Q's DAC sampling rate in Hz.
This information is initially set during ChronosQRFSoC initialization process whereby the info is obtained directly from connected CHRONOS-Q via calls to ChronosQRFSoC.get_status.
| demod |
List of demodulation block objects(acquisition.demod.DemodBlock) containing demodulation block settings.
| fmc_sampling_interval |
Time interval (in seconds) between FMC DAC's sampling.
Calculated and assigned based on the FMC sampling rate information during ChronosQRFSoC initialization.
When no FMC support exists for the system, 0 is returned.
| fmc_sampling_rate |
CHRONOS-Q's FMC DAC's sampling rate in Hz.
This information is initially set during ChronosQRFSoC initialization process whereby the info is obtained directly from connected CHRONOS-Q via calls to ChronosQRFSoC.get_status.
When no FMC support exists for the system, 0 is returned.