We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 50826

Zynq-7000 Example Design - Cache coherent CDMA transfers from block RAM to OCM


This example design allocates 4K of block RAM attached to the CPU via M_AXI_GP0. The same block RAM is also accessible by the CDMA. 

The CPU initializes the block RAM. The CDMA in simple mode is transferring data from the block RAM to the OCM via ACP port. The transfer is cache coherent and when the transfer is complete, the CPU sees the updated OCM without invalidating or flushing the cache.

Note: An Example Design is an answer record that provides technical tips to test a specific functionality on Zynq-7000. A tip can be a snippet of code, a snapshot, a diagram or a full design implemented with a specific version of the Xilinx tools. It is up to the user to "update" these tips to future Xilinx tools releases and to "modify" the Example Design to fulfil their needs. Limited support is provided by Xilinx on these Example Designs.


Please see the table below:









Implementation Details
Design Type PS and PL
SW Type Standalone
CPUs Single CPU @ 667MHz
PS Features MMU, OCM
Boards/Tools ZC702
Xilinx Tools Version Vivado 2015.1
Other details FCLK @ 50MHz
Address Map

Files Provided
 Archived Vivado project.
hello_axi_cdma.c Snippet of code.
 Block Diagram


Step-by-Step Instructions

  1. Extract and open archived Vivado design, generate bitstream, export hardware with bitstream and launch SDK.
  2. In SDK, create an Empty Application example.
  3. Import the included snippet of C code.
  4. Program the PL using the BITSTREAM generated by XPS.
  5. Run the application.

Important Notes

  1. The HIGH OCM must be accessible through the ACP port.
    In the .MHS, the processing_system7 has the following:
  2. The MMU table has the HIGH OCM shareable:

          /* S=b1 TEX=b100 AP=b11, Domain=b0, C=b1, B=b1 */

Expected Results

On the Terminal, at the end of the test, the destination memory should match the source memory.

The CPU can see the data transferred by the CDMA without any particular software implemented.


文件名 文件大小 File Type
hello_axi_cdma.c 4 KB C
cdma_acp_design_2015_1.xpr.zip 376 KB ZIP



Answer Number 问答标题 问题版本 已解决问题的版本
51779 Zynq-7000 AP SoC - Example Designs and Tech Tips N/A N/A


Answer Number 问答标题 问题版本 已解决问题的版本
60821 Vivado 2014.2 - Zynq-7000 Example Design - Cache coherent CDMA transfers from block RAM to OCM N/A N/A
AR# 50826
日期 12/23/2015
状态 Active
Type 综合文章
  • Zynq-7000
  • Vivado Design Suite - 2015.1
  • AXI Central DMA Controller