Question regarding WaitVid data handoff timing
Hey,
I am recently trying to understand the synchronization process of the cogs and their video generators, for a project of my university.
In the manual/data sheet it says:
"WAITVID consumes 4 clocks itself; however, complete data handoff requires 7 clocks
(6 at some frequencies) between frames..."
I do not understand how a different frequency ( from system clock ? ) affects the number of cycles used for the data handoff in the waitvid instruction, so that it may take only 6 cycles on some frequencies.
Is it because of the synchronization process, so that some systemclock/PLLA frequencies in combination lead to 6 cycles for the waitvid command and others lead to 7 cycles ?
Or is it just bound to the systemclock frequency and has other reasons ?
Eighter way for my project it would be interesting, if there is a way to calculate if 6 or 7 cycles will appear and thats why I am thankful for any hint and help from you
Comments
I think the documentation is just somewhat misleading there.
So from the beginning:
Ah okey yes I think I get this, so when waitvid at least takes 6 cycles this means the 7 clocks in "...complete data handoff requires 7 clocks..." refers to the moment, when the new data is already availbale in the video generator, but the cog is not blocked anymore by the wait vid instruction ?
This may be not important in practice, but my project includes writing a simulation for the video generator, the logic is not that difficult, but I need to find out, for how long the CPU is blocked by the "handoff" procedur, at the time, the video generator is ready for new data, thus loads the new Pixels and Colors values from the source and destination busses,...
If you need exact details, examine the Verilog code.
Haha yes I also thought about that, but I was a bit overwhelmed by the complexity of it, because I am not used to verilog code and so I thought I'll ask here first.
Thank you!