I need help if my SDC constraints are correct for a digitally noise filtered CLOCK and DATA inputs. I'm not sure if CLK3 grouping and create_clk CLK2 are correct. I would like to know on how to make a constraints of the following.
- Constraints for CLK3 (create/generated clock).
- Constraints for Input Delay of DATAIN.
- Constraints for Output Delay of DATAOUT with respect to CLK2, to guarantee the minimum Input Delay feeding the Master device which will be captured by CLK2 rising edge to insure enough hold time.
Note: The reason for using CLK3 as clock input of FF10 is to minimize power consumption because other than FF10, there are hundreds or even more than a thousand FF's after the filter circuit. CLK2 or CLK3 are not continuous, it will run only as needed and its frequency is much slower than the continuous CLK1 coming from the external oscillator.
create_clock -period 20 -name CLK1 -waveform {0 10} [get_ports CLK1]
create_clock -period 1000 -name CLK2 -waveform {0 500} [get_ports CLK2]
create_generated_clock -name CLK3 -combinational -source [get_pins FF4/Q ]
set_clock_groups -asynchronous -group [get_clocks {CLK1}] -group [get_clocks {CLK2 CLK3}]
# -min 80 due to CLK2 filtering
set_output_delay -clock [get_clocks CLK2] -min 80 [get_ports DATAOUT]
set_output_delay -clock [get_clocks CLK2] -max 90 [get_ports DATAOUT]
The expected timing should look like below.
Any help would be appreciated. Thank you.