0

how to handle the multi-clock design signals with the clock generated from the same source? For example, one clock domain is 25Mhz the other one is 100Mhz how can I handle the data bus from 25Mhz to 100Mhz and also 100Mhz to 25Hhz?

don't want to use AFIFO tho any other easy CDC way to handle it?

  • Here are two good papers on CDC and AFIFO: http://www.sunburst-design.com/papers/CummingsSNUG2001SJ_AsyncClk.pdf and http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf – Greg Jun 12 '17 at 16:58

3 Answers3

2

Case 1: If the source ensures that the edges of the clocks are aligned, there is no need to do anything in the design. A single-bit and multi-bit data have no difference.

Case 2: If the edges are not aligned, but the phase relationship is known, the clocks are still synchronous. The synthesis/STA/P&R tool can calculate the worst cases for timing (e.g. setup/hold) checks. In case there is no violation, no need to do anything again. The most important part here is defining the timing constraints correctly.

Case 3: If the clocks are asynchronous, one solution is carrying an enable signal with the bus. The enable signal is synchronized by a pair of flip-flops. Then the data bits are masked or passed according to the value of synchronized enable signal. This solution is explained here as well as many other solutions and cases.

0

Depends if the two clocks are synchronous or asynchronous with respect to each other. You can use a 2 bit/n-bit synchronizer to eliminate the meta stability issue in CDC. Other approaches are mux based handshake mechanism, gray code counter.

0

If you are sending data from slower clock domain to faster clock domain, fast clock should be 1.5 times that of the slow clock. for faster clock to slower clock domain, Data of Fast clock should be 1.5 times that of the slower clock.

Rottenengg
  • 115
  • 2
  • 12