Converter Reference
AD9081
AD9081 combined transmit and receive model.
AD9082
AD9081 combined transmit and receive model.
AD9084
AD9084 Receive model.
AD9088
AD9088 Receive model.
AD9680
AD9680 high speed ADC clocking model.
- class adijif.converters.ad9680.ad9680(*args: Any, **kwargs: Any)
Bases:
ad9680_draw,ad9680_bfAD9680 high speed ADC model.
This model supports direct clock configurations
Clocking: AD9680 has directly clocked ADC that have optional input dividers. The sample rate can be determined as follows:
baseband_sample_rate = (input_clock / input_clock_divider) / datapath_decimation
- get_config(solution: CpoSolveResult | None = None) Dict
Extract configurations from solver results.
Collect internal converter configuration and output clock definitions leading to connected devices (clock chips, FPGAs)
- Args:
solution (CpoSolveResult): CPlex solution. Only needed for CPlex solver
- Returns:
Dict: Dictionary of clocking rates and dividers for configuration
- get_required_clock_names() List[str]
Get list of strings of names of requested clocks.
This list of names is for the clocks defined by get_required_clocks
- Returns:
List[str]: List of strings of clock names in order
AD9144
AD9144 high speed DAC clocking model.
- class adijif.converters.ad9144.ad9144(*args: Any, **kwargs: Any)
Bases:
ad9144_bfAD9144 high speed DAC model.
This model supports both direct clock configurations and on-board generation
Clocking: AD9144 has directly clocked DAC that have optional input dividers. The sample rate can be determined as follows:
baseband_sample_rate = (input_clock / input_clock_divider) / datapath_decimation
- get_config(solution: CpoSolveResult | None = None) Dict
Extract configurations from solver results.
Collect internal converter configuration and output clock definitions leading to connected devices (clock chips, FPGAs)
- Args:
solution (CpoSolveResult): CPlex solution. Only needed for CPlex solver
- Returns:
Dict: Dictionary of clocking rates and dividers for configuration
ADRV9009
ADRV9009 transceiver clocking model.
- class adijif.converters.adrv9009.adrv9009(model: None | CpoModel = None, solver: str | None = None)
Bases:
adrv9009_coreADRV9009 combined transmit and receive model.
- get_required_clocks() List[Dict]
Generate list of required clocks.
For ADRV9009 this will contain: [device clock requirement SOS, sysref requirement SOS]
- Returns:
list[dict]: List of dictionaries of solver variables, equations, and constants
- Raises:
Exception: Invalid relation of rates between RX and TX AssertionError: Gekko called
- class adijif.converters.adrv9009.adrv9009_clock_common(model: None | CpoModel = None, solver: str | None = None)
Bases:
adrv9009_core,adrv9009_bfADRV9009 class managing common singleton (Rx,Tx) methods.
- get_config(solution: CpoSolveResult | None = None) Dict
Extract configurations from solver results.
Collect internal converter configuration and output clock definitions leading to connected devices (clock chips, FPGAs)
- Args:
solution (CpoSolveResult): CPlex solution. Only needed for CPlex solver
- Returns:
Dict: Dictionary of clocking rates and dividers for configuration
- class adijif.converters.adrv9009.adrv9009_core(model: None | CpoModel = None, solver: str | None = None)
Bases:
converterADRV9009 transceiver clocking model.
This model manage the JESD configuration and input clock constraints. External LO constraints are not modeled.
Clocking: ADRV9009 uses onboard PLLs to generate the JESD clocks
Lane Rate = I/Q Sample Rate * M * Np * (10 / 8) / L Lane Rate = sample_clock * M * Np * (10 / 8) / L
- get_config(solution: CpoSolveResult | None = None) Dict
Extract configurations from solver results.
Collect internal converter configuration and output clock definitions leading to connected devices (clock chips, FPGAs)
- Args:
solution (CpoSolveResult): CPlex solution. Only needed for CPlex solver
- Returns:
Dict: Dictionary of clocking rates and dividers for configuration
- class adijif.converters.adrv9009.adrv9009_rx(*args: Any, **kwargs: Any)
Bases:
adc,adrv9009_clock_common,adrv9009_coreADRV9009 Receive model.
- decimation_available = [4, 5, 8, 10, 16, 20, 32, 40]
ADRV9009 Rx decimation stages.
+-----------+ +-----------+ Dec 5 (5) +---------+ | +-----------+ | | | | +----------+ +----------+ | +------------+ +--------------+ >---+---+ RHB3 (2) +---+ RHB2 (2) +---+--+ RHB1 (1,2) +---+ RFIR (1,2,4) + +----------+ +----------+ +------------+ +--------------+
- class adijif.converters.adrv9009.adrv9009_tx(*args: Any, **kwargs: Any)
Bases:
dac,adrv9009_clock_common,adrv9009_coreADRV9009 Transmit model.
- get_required_clock_names() List[str]
Get list of strings of names of requested clocks.
This list of names is for the clocks defined by get_required_clocks
- Returns:
List[str]: List of strings of clock names mapped by get_required_clocks
- interpolation_available = [1, 2, 4, 5, 8, 10, 16, 20, 32]
ADRV9009 Tx interpolation stages.
+------------+ +--------------------+ Int 5 (5) +--------------------+ | +------------+ | | | | +------------+ +------------+ +------------+ | +--------------+ <---+---+ THB3 (1,2) +---+ THB2 (1,2) +---+ THB1 (1,2) +---+---+ TFIR (1,2,4) + +------------+ +------------+ +------------+ +--------------+