cdc_pulse_tester HDL Worker

Detail

The cdc_pulse_tester worker uses the src_rdy output from the pulse primitive to enable a pulse generator circuit and the pulse from the pulse generator is used as an input to the pulse primitive. The synchronized pulse output from the pulse primitive is stored in a FIFO until the worker’s output port is ready for the data. The FIFO is used because the data is sent only once and also used to mitigate synchronizing the backpressure from the output port to the LFSR.

The src_clk_hz and dst_clk_hz parameter properties are used to define the source and destination domain clock frequencies.

A clock generator is used to generate the clocks for the source and destination clock domains when the source and destination clock domains are different.

Fast clock domain to slow clock domain:

When the source clock frequency is faster than destination clock frequency, the destination domain reset signal is sent through a reset synchronizer to synchronize it to the source domain. The source domain uses the synchronized reset and src_rdy output from the pulse primitive to enable the pulse generator circuit. The FIFO is enabled when the destination clock domain has come out of reset.

Slow clock domain to fast clock domain:

When the source clock frequency is slower than the destination clock frequency, the pulse generator circuit is enabled when the source domain has come out of reset and src_rdy output from the pulse primitive is high. The source domain reset signal is sent through a reset synchronizer to synchronize it to the destination domain and is used to enable the FIFO.

Same clock domain:

When the source clock frequency is equal to the destination clock frequency, the destination domain reset signal is sent through a reset synchronizer to synchronize it to the source domain. The source domain uses the synchronized reset and src_rdy output from the pulse primitive to enable the pulse generator circuit. The source domain reset signal is sent through a reset synchronizer to synchronize it to the destination domain and is used to enable the FIFO.

Worker Properties

  • ocpi_buffer_size_out

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: True

      • Volatile: False

      • Read back: False

    • Default value: 0

  • ocpi_blocked_out

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_max_latency_out

    • Type: ushort

    • Access:

      • Parameter: True

      • Writable: False

      • Initial: False

      • Volatile: False

      • Read back: False

    • Default value: None

  • ocpi_latency_out

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_messages_out

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

  • ocpi_bytes_out

    • Type: ulong

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: False

      • Volatile: True

      • Read back: False

    • Default value: None

Worker Ports

    Outputs:

  • out

    • Protocol: None

    • Optional: False

Utilization

Utilization reporting is not currently implemented.