I get a ASIC design. And the path structure as follows.
Clock_a -----> IP1 use positive edge of Clock_a ------------> Pad_a: always capture the data on the
| | positive edge of Clock_a.
---> IP2 use negative edge of Clock_a -----
I want to set the output delay from the IP1 to "Clock_a period * 0.5".
And I also want to set the output delay from the IP2 to "Clock_a period * 0.25" at the same time.
How to constraint the output delay on the Pad_a from the different path?
Originally, I want to use "-through" command for "set_out_delay" command.
But "set_out_delay" command don't support it.
Could someone can help me about this?
Thank you very much.
As discussed in your other post, the clocks are first set up using create_generated_clock constraints. If you are saying that these generated clocks are output clocks that are used by external devices, then you need additional generated clock constraints to put these clocks at output ports of the device. Then you create your set_output_delay constraints with the -clock option pointing to these generated clocks. You also need the correct calculated values for the -max and -min output delay and false path constraints for the clock paths so they are not analyzed as data. Essentially, you're created a source synchronous output. See the online training for the details of what you probably need and adjust accordingly:
My method is as follows constraints. I create two virtual clock for the out pin. Then set different output delay for those virtual clock on the output pin. And add false constraint to disable non-exist path.
create V1 -period 20 -waveform [0 10]
create V2 -period 10 -waveform [0 5]
set_output_delay -max 10 -clock V1 [get_ports Pad_a]
set_output_delay -min 0.0 -clock V1 [get_ports Pad_a]
set_output_delay -max 5.0 -clock V2 [get_ports Pad_a]
set_output_delay -min 0.0 -clock V2 [get_ports Pad_a]
set_false_path -from [get_clocks Clock_a] -through IP1 to [get_clocks V2]
set_false_path -from [get_clocks Clock_a] -through IP2 to [get_clocks V1]