ad9146 HDL Worker

Device worker for the AD9146 Dual, 16-Bit, 1230 MSPS DAC.

Detail

Registers

The raw properties corresponding to the AD9146 registers are directly connected to the rawprops interface. This is required to be connected to a separate SPI worker that converts reads and writes to the raw properties to SPI transfers to the device.

Data transmission

The AD9146 receives data over an 8-bit parallel LVDS bus with a source synchronous clock. The data is transmitted as edge aligned DDR data at twice the sample rate, with the I channel data transferred on the first two clock edges and the Q channel data transferred on the second two clock edges. This is illustrated by the following diagram from the datasheet:

../../../_images/ddr.png

To transmit the data several clock domains are used that are generated by the LMK04816 worker and distributed of a devsignals interface. It is important that these clocks have the correct phase relationship, and that the correct constraints are used, to ensure that correct timing is achieved on the LVDS interface.

The data is received over a devsignals interface using the qdac-16-signals protocol. This is intended to interface to a data_sink_qdac_csts device worker. The radclk clock domain is supplied over the devsignals interface to be used to clock the data.

The data transmitted to the DAC is updated when both the valid signal from the devsignals interface and the enable property are asserted. This allows the DRC to enable the data stream when the full RF path has been configured.

Worker Properties

  • enable

    • Type: bool

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • comm

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • power_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • tx_enable_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • data_format

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • interrupt_enable_0

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • interrupt_enable_1

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • event_flag_0

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • event_flag_1

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • clock_receiver_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_pad_0x09

    • Type: uchar

      • Array dimensions: ['1']

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • pll_control_0

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_pad_0x0b

    • Type: uchar

      • Array dimensions: ['1']

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • pll_control_1

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • pll_control_2

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • pll_status_0

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • pll_status_1

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sync_control_0

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sync_control_1

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sync_status_0

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sync_status_1

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_pad_0x14

    • Type: uchar

      • Array dimensions: ['1']

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • data_receiver_status

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • dci_delay

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • fifo_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • fifo_status_0

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • fifo_status_1

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_pad_0x1a

    • Type: uchar

      • Array dimensions: ['1']

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • datapath_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • hb1_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • hb2_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • datapath_config

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • chip_id

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_pad_0x20_to_0x37

    • Type: uchar

      • Array dimensions: ['24']

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • i_phase_adj_lsb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • i_phase_adj_msb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_phase_adj_lsb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_phase_adj_msb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • i_dac_offset_lsb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • i_dac_offset_msb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_dac_offset_lsb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_dac_offset_msb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • i_dac_fs_adjust

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • i_dac_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • i_aux_dac_data

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • i_aux_dac_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_dac_fs_adjust

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_dac_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_aux_dac_data

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • q_aux_dac_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • die_temp_range_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • die_temp_lsb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • die_temp_msb

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_pad_0x4b_to_0x66

    • Type: uchar

      • Array dimensions: ['28']

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • sed_control

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_i0_lsbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_i0_msbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_q0_lsbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_q0_msbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_i1_lsbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_i1_msbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_q1_lsbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • compare_q1_msbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sed_i_lsbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sed_i_msbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sed_q_lsbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • sed_q_msbs

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_pad_0x74_to_7e

    • Type: uchar

      • Array dimensions: ['11']

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • revision

    • Type: uchar

    • Access:

      • Parameter: False

      • Writable: True

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

Worker Ports

    Interfaces (other than data I/O ports):

  • dev

    • Type: devsignal

  • rfclk

    • Type: devsignal

  • rawprops

    • Type: rawprop

  • Subdevice Connections:

    • Supported device worker: data_sink_qdac_csts


      Connections:


      • Subdevice port: dev

      • Supported worker port: dev

        • Index: None


Worker Signals

  • clk

    • Direction: in

    • Differential: false

    • Pin: false

  • data_i

    • Direction: out

    • Width: 16

    • Differential: false

    • Pin: false

  • data_q

    • Direction: out

    • Width: 16

    • Differential: false

    • Pin: false

  • valid

    • Direction: out

    • Differential: false

    • Pin: false

  • present

    • Direction: out

    • Differential: false

    • Pin: false

  • radclk

    • Direction: in

    • Differential: false

    • Pin: false

  • radclk2x

    • Direction: in

    • Differential: false

    • Pin: false

  • dciclk

    • Direction: in

    • Differential: false

    • Pin: false

  • DCI_P

    • Direction: out

    • Differential: false

    • Pin: true

  • DCI_N

    • Direction: out

    • Differential: false

    • Pin: true

  • FRAME_P

    • Direction: out

    • Differential: false

    • Pin: true

  • FRAME_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D0_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D0_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D1_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D1_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D2_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D2_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D3_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D3_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D4_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D4_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D5_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D5_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D6_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D6_N

    • Direction: out

    • Differential: false

    • Pin: true

  • D7_P

    • Direction: out

    • Differential: false

    • Pin: true

  • D7_N

    • Direction: out

    • Differential: false

    • Pin: true

  • ENABLE

    • Direction: out

    • Differential: false

    • Pin: false

Utilization

Utilization reporting is not currently implemented.