The Xilinx Vivado's set_max_delay
requires -from
to be set.
Basically I'd like to set max delay TO a register. Because there can be lots of registers source to my destination register, I don't know their name.
set_max_delay 3 -datapath_only -to [get_cells dest_reg*]
isn't valid because it doesn't have-from
option.
My plan
Get all the input pins (
D, CE, R
) of the destination registerset dest_pins [get_pins -of_objects $dest -filter {REF_PIN_NAME == "D" || REF_PIN_NAME == "CE" || REF_PIN_NAME == "R"}]
- The danger is that there might be other input pins...
Get all the nets connected to these input pins
set nets [get_nets -segments -of_objects $dest_pins]
Track down all the output pins connected to these nets
set source_pins [get_pins -of_objects $nets -filter {IS_LEAF && DIRECTION == "OUT"}]
Get all the registers of these pins
set source [get_cells -of_objects $source_pins]
This looks too overkill just to add a CDC constraint on a single register.
Question
- What's the best way of adding a constraint using only its name and nothing else?
-from [get_cells *]
and-from [get_ports in[*]]
to include all input ports and registers sourcing your destination register? \$\endgroup\$ – Mitu Raj Apr 7 at 7:59