The major modules of the VCU Sync IP core are the control, consumer, and producer modules.
The control module implements the programming register interface and the ring buffer mechanism of buffer control.
The consumer module receives AXI read transactions from the consumer and schedules the reads to memory based on the tracking information from the producer. The consumer module implements fencing: It holds the read transactions in the internal FIFO and waits for the producer write transactions to complete. When the producer write transactions for a specific section of memory are completed, the consumer allows the read transactions to go to the DRAM.
The producer module tracks AXI write transactions from the producer and sends write tracking information to the consumer for gating or un-gating the read transactions.