Dynamic Genlock Master - 6.3 English

AXI Video Direct Memory Access v6.3 Product Guide (PG020)

Document ID
PG020
Release Date
2022-06-08
Version
6.3 English

Read (MM2S) channel: When configured as Dynamic Genlock Master, the channel skips the frame buffers that Dynamic Genlock Slave is operating on. It is done by either skipping or repeating frames. It samples the Dynamic Genlock Slave frame number on mm2s_frame_ptr_in. It outputs the previously accessed frame number on mm2s_frame_ptr_out.

To set up the channel in Dynamic Genlock Master mode, the following settings should be used:

Set GenlockEn (MM2S_VDMACR[3]=1) to enable Genlock synchronization between master and slave.

Set GenlockSrc (MM2S_VDMACR[7]=1) to enable Internal Genlock mode. This bit is set to 1 by default if both channels are enabled in the Vivado IDE. When it is set to 1, you do not need to connect *_frame_ptr_out and *_frame_ptr_in signals externally. They are routed internally in the core.

Example: In case of three frame stores, the Dynamic Genlock Master will rotate around 0,1,2,0,1,2 and so on as long as it is not stepping on the Slave buffer. If it does detect that it is stepping on the Slave buffer, it skips that buffer and keeps on rotating. Thus if the Slave buffer is 1 for a long time, the Master rotates between 0,2,0,2 and so on.

Write (S2MM) channel: When configured as Dynamic Genlock Master, the channel skips the frame buffers that Dynamic Genlock Slave is operating on. It is done by either skipping or repeating frames. It samples the Dynamic Genlock Slave frame number on s2mm_frame_ptr_in. It outputs the previously accessed frame number on s2mm_frame_ptr_out.

To set up the channel in Dynamic Genlock Master mode, the following settings should be used:

Set GenlockEn (S2MM_VDMACR[3]=1) to enable Genlock synchronization between master and slave.

Set GenlockSrc (S2MM_VDMACR[7]=1) to enable Internal Genlock mode. This bit is set to 1 by default if both channels are enabled in the Vivado IDE. When it is set to 1, you do not need to connect *_frame_ptr_out and *_frame_ptr_in signals externally. They are routed internally in the core.