hcu
Advanced Member level 4
Hi,
Spec : three modules connected from left to right.
module 1 works at 125 Mhz.
module 2 works at 750 Mhz.
module 3 works again at 125 Mhz.
module 1 performs some operations and generates a "module1_valid" (high only for 2 clocks) and a "module1_data" on a data_bus at every (451 clock cycles at 125mhz clock). this data on the databus remains stable until next new data overrides it which comes after a another 451 clocks.
module 2 gets into the working state after receiving "module1_valid" and works on the input data and then outputs "module2_vld" and "module2_data" at every (450 clock cycles of 125 mhz) note: mentioned at 125mhz rate.
here "module2_vld" stays for 1 clocks high (125mhz) and goes low. but the "module2_data" held constant untill next new data comes and overrides.
module 3 starts working once it samples "module2_valid" and "module2_data". works on it and produces the output.
one can observe , a slow to fast clock and then fast to slow clock transition is involved.
will it cause any cdc issues like metastablity ? if yes, what should be done ? any reference design plz.
Apart from this, what are the sta constraints to set for these 2 clocks. is it asynchronous clock grouping or a false_path constraint ?
note: currently i dont have spyglass CDC to work on it.
please don't suggest me fifo or assertions.
Thanks,
hcu
Spec : three modules connected from left to right.
module 1 works at 125 Mhz.
module 2 works at 750 Mhz.
module 3 works again at 125 Mhz.
module 1 performs some operations and generates a "module1_valid" (high only for 2 clocks) and a "module1_data" on a data_bus at every (451 clock cycles at 125mhz clock). this data on the databus remains stable until next new data overrides it which comes after a another 451 clocks.
module 2 gets into the working state after receiving "module1_valid" and works on the input data and then outputs "module2_vld" and "module2_data" at every (450 clock cycles of 125 mhz) note: mentioned at 125mhz rate.
here "module2_vld" stays for 1 clocks high (125mhz) and goes low. but the "module2_data" held constant untill next new data comes and overrides.
module 3 starts working once it samples "module2_valid" and "module2_data". works on it and produces the output.
one can observe , a slow to fast clock and then fast to slow clock transition is involved.
will it cause any cdc issues like metastablity ? if yes, what should be done ? any reference design plz.
Apart from this, what are the sta constraints to set for these 2 clocks. is it asynchronous clock grouping or a false_path constraint ?
note: currently i dont have spyglass CDC to work on it.
please don't suggest me fifo or assertions.
Thanks,
hcu