Skip to content

ALPHA15 adc-dac-dma example missing points #634

@AveryWong03

Description

@AveryWong03

When running the adc-dac-dma example for the ALPHA15 the first 77 data points are consistently mismatched, corresponding to a previous acquisition.

I believe this issue arises due to the signal adc_dac/adc_valid being sent to the axi-stream (axis_dwidth_converter/s_axis_tvalid) prior to the axi-dma being started/setup. To fix this, a module can be made to only assert adc_valid once the axi-dma has asserted tready (axi_dma/s_axis_s2mm_tready).

With this solution, there are still 8 sample points that appear to be apart of a previous acquisition. This may be explained by the AXI DMA LogiCORE IP Product Guide (PG021)

In the absence of any setup (that is, before it is programmed to run), AXI DMA will pull the s_axis_s2mm_tready signal Low after taking in four beats of streaming data. This will throttle the input data stream. To have a minimum amount of throttling, ensure that the AXI DMA is set up to run much before the actual data arrives.

Since the stream is 64-bits, made up of 2 32-bit sample points (18-bit padded), I assume that the axi-dma will take 4 64-bit samples, giving us the 8 32-bit sample points. A more complete solution could involve an enable control signal for adc_valid that is asserted by the python application long after the axi-dma is started.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions