This documents 2 approaches of data communication between PS and PL of Xilinx Zynq based SoCs. A major challenge in designing hardware-software co-design systems is the PS-PL communiction. The PL components interface to PS through AXI protocol standard, and present themselves as AXI slaves or AXI masters to the PS. The PS provides high performance AXI slave ports for PL AXI masters to communicate with the main memory (DRAM). The 2 approaches of data communication are Programmed I/O and Direct Memory Access (and a potential 3rd one: PL peripheral directly mastering the DDR without DMA(?))
For low bandwidth control path interface, userspace application can be easily developed using PS-programmed I/O. In this, the PS uses the AXI MM Master interface to communicate with AXI MM slave interface peripherals. This is a processor load-store based approach, wherein PS picks up data from DDR, and writes to the memory mapped