Post Go back to editing
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Accessing ADC Sample Data from AD9467-FMC using KC705


      We are using AD9467-FMC with Xilinx Kintex-7 evaluation kit KC705. The example design describes the procedure for capturing some ADC samples and looking at them with Xilinx Chipscope tool. But we can only see a limited number of samples in this way. We want to fill up the whole memory of KC705 (DDR3) and dump it out using UART or some other means. Can you please suggest an easy way to do this?

Thank you so much.

Best regards,

[locked by: CsomI at 11:39 AM (GMT -4) on 25 Oct 2018]

Top Replies

  • Which branch/tool version are you using? 

    The DMA has a transfer limit of 2^24 bytes, so you need to configure multiple transfers.


  • Moved to FPGA Ref Design Community.

  • Hello Istavn:

         Thank you so much for replying to my question. 

          I am using hdl_2017_r1 branch as we have all the tools from that release installed. I wanted to use the same version of tool for Xilinx Vivado and SDK.

          We are OK with making multiple transfers if we the size goes beyond 2^24 bytes.

          Thank you so much.

    Best regards,

  • Here is a step-by-step guide to help you out:

    1) Increase the DMA_LENGTH_WIDTH parameter to 32 in the HDL block design, by adding the following line to the Tcl script:

    ad_ip_parameter axi_ad9467_dma CONFIG.DMA_LENGTH_WIDTH 32

    With this configuration, you can capture up to 4GB of data with one single capture. Do not forget to re-generate the bit file.

    2) You just simply increase the length of the transfer, run the software. After that you can read back the data through XSDB, using the following script: no-OS/xilinx_capture.tcl at 2017_R1 · analogdevicesinc/no-OS · GitHub 

    Be aware that the code is running in the DDR memory too, so you will not be able to use the whole 1GB. In general, we are using a 0x8000000 byte offset for the start address of the capture. 

    As you see, you should use the 2017_r1 branch for both HDL and no-OS.

    If you have issues or questions, ask.



  • Hi Deepesh,

    Can you please be a little bit more specific as to what is the current problem you are having? 

    If you are making changes to the original code we ship with the product, you need to tell us in detail what changes you made and why. 

    You last entry made it sound like you were all set. that is why no one replied.



  • Hi Charly,

          We need support, we are not all set. Nothing in my posting implied we are all set.

          Our question is about the methodology. How to go about doing this. We have not tried anything yet. Since the time we posted this question on May 9th we have been waiting for support. One kind user replied and we responded promptly.

         Our original post is very clear. If you have any questions or something is not clear please ask right away.

         We are trying to fill up memory with ADC samples and later we want to read out from the memory. We need support in how to do this. Are there any Sw functions that we can use to read data and display on screen or there is another way?


  • Hi Istvan,

           Thank you for your feedback. I will try this. To confirm that I can read out data from memory through XSDB can I try it with out creating a new bit file? If I don’t create a new bit file what is the maximum amount of data I can read?

          I am using a PUTTY terminal to connect to KC705. Do I run the TCL script on the PC that I am using for putty? Or is this TCL script is supposed to run inside XSDK?


  • You don't need to create a new bit file, by default the max length of a DMA transfer is 2^24 bytes.

    You need to run that script with the XSDB tool. The tool can be found at <your_xilins_installation_direcotry>/SKD/2017.4/bin/ . Make sure you have this path in your $PATH environment variable.

    For your project you should use the following arguments:

    [~]xsdb xilinx_capture.tcl MICROBLAZE  0x8000000 8192 1 16

  • Thanks for your feedback. With this approach what is the maximum amount of data we can read from the memory? If we keep the max length of DMA transfer to 2^24 we will have 16 MB of data. Will this data be stored in the following location in memory?

    0x8000000 - 0x8FFFFFF

          If we change the command that you have suggested to the one below will it work?

    xsdb xilinx_capture.tcl MICROBLAZE  0x8000000 16777216 1 16

          Thank you so much.

    Best regards,

  • Hi,

    By the way, do you have the option of running Linux instead of no-OS on the KC705 board? If the answer is positive, libiio (What is libiio? [Analog Devices Wiki]) would simplify a little bit everything.