--- Quote Start ---
Thanks for the sample project. It works and does not show the warning.
I think the warning is caused by something else in the project.
I reviewed my digital design and like to ask the experts here for there input/remarks.
The following scenario:
An internal state machines creates a couple of signals to trigger events in other modules. So far I used this signals as clocks in the other modules and in the main data path. This was working fine. However, this generated clock is not synchronized with the original clock driving the state machine.
My questions:
1.) Can someone suggest good background literature and best practice regarding this?
2.) I took the approach to gate the main clock with the signals generated by the state machine. This should keep the clock synchronized. But now I run into trouble during the timing analysis. Quartus recognized that the gated clock is derived from the main clock and issues setup/hold violations with respect to the main clock. I think the multi cycle statement could solve this, as there is some time between the input into the data path and the actual usage of its output; both are triggered by gated clocks with a fixed number of main clock cycles between them. How does the multi-cycle statement work?
Can is be automatically attached to node driven by a specific gated clock?
I think something like: From clock_cycle1 to clock_cycle2 are always 5 cycles of the main clock.
3.) Are there other methods to do this more efficiently and properly?
Thanks
Peter
--- Quote End ---
How many trigger events do you have ? A better way is to use this signals as enable signals for the FF instead as a clock. Maybe you can try the "gated" clock conversion in Quartus 8.1.