SignalGeneratorNode#
- class FIREQ_SYSTEM.signal_generator_node.SignalGeneratorNode(*args: Any, **kwargs: Any)[source]#
Bases:
_GenericNodeObject representing the signal generator system.
Configuration dictionary keys:
_name(str): Name of the signal generator node instance._ll_handler(GeneratorDriver): Low-level handler for the signal generator.$dfrequency(float): Drive frequency, in MHz.$rfrequency(float): Readout frequency, in MHz.$rphase(float): Readout phase, in radians.$rchannel(int): Readout trigger channel. Set to0to deactivate.$dchannel(int): Drive trigger channel. Set to0to deactivate.$lfsr_seed(int): Seed for the LFSR.$drive_order(list[str]): Ordered list of pulse names to be generated.
- nodetype = 'signal_generation'#
- wraps = ['GeneratorDriver']#
- init_memory() int[source]#
Initialize the memory of the signal generator.
- Returns:
Error code (0 on success)
- Return type:
int
- reserve_envelope_segment(sample_depth: int) int[source]#
Reserve a segment of the envelope memory.
This function does not check if the segment is actually valid; it always returns an address and advances the internal pointer.
- Parameters:
sample_depth (int) – Length of the segment in samples
- Returns:
The starting address of the reserved segment
- Return type:
int
- reserve_wdw() int[source]#
Reserve a wave definition word slot in memory.
- Returns:
The index of the reserved WDW slot
- Return type:
int
- set_drive_frequency(frequency: float) int[source]#
Set the drive frequency.
- Parameters:
frequency (float) – Frequency in MHz
- Returns:
Error code (0 on success)
- Return type:
int
- set_readout_frequency(frequency: float) int[source]#
Set the readout frequency.
- Parameters:
frequency (float) – Frequency in MHz
- Returns:
Error code (0 on success)
- Return type:
int
- set_readout_phase(phase: float) int[source]#
Set the readout phase.
- Parameters:
phase (float) – Phase in radians
- Returns:
Error code (0 on success)
- Return type:
int
- set_readout_channel(channel: int) int[source]#
Set the readout trigger channel.
- Parameters:
channel (int) – Channel number, set to 0 to deactivate
- Returns:
Error code (0 on success)
- Return type:
int
- set_drive_channel(channel: int) int[source]#
Set the drive trigger channel.
- Parameters:
channel (int) – Channel number, set to 0 to deactivate
- Returns:
Error code (0 on success)
- Return type:
int
- set_lfsr_seed(seed: int) int[source]#
Set the LFSR seed.
- Parameters:
seed (int) – Seed for the LFSR
- Returns:
Error code (0 on success)
- Return type:
int
- set_drive_order(order: list[str]) int[source]#
Set the order of drive generation.
- Parameters:
order (list[str]) – Ordered list of pulse names to be generated
- Returns:
Error code (0 on success)
- Return type:
int
- set_manual_wave_destination(destination: str) int[source]#
Set the destination where manual waves should be sent.
- Parameters:
destination (str) – ‘readout’ or ‘drive’
- Returns:
Error code (0 on success)
- Return type:
int
- create_child(name: str, of_type: str, **kwargs: dict[str, Any]) _GenericEnvelope | _Pulse | _VZGate[source]#
Create a child node of the specified type.
- Parameters:
name (str) – Name of the child node
of_type (str) – Type of child node —
"envelope","pulse"or"vzgate"kwargs (dict[str, Any]) – Additional arguments to pass to the child node
- Returns:
The created child node
- Return type:
_GenericEnvelope or _Pulse or _VZGate
- Raises:
ValueError – If the name is already taken or the type is unsupported