Stop_at_clocks substitute in Quartus Standard
- 4 years ago
Hi Pawel,
Got some ideas from software experts. Please try them and let me know if things work for you.
The following procedures take a node or a pin, and return the list of all clock targets feeding it. You should be able to modify these to make them return the clock target(s) feeding the register. You can then create a map of clock targets to clock names, so that you can find the clocks that exist on those targets. Once you have the clocks, you can simply string-compare them against each other to see if they are equivalent (since clock names are unique).
proc get_clock_targets_feeding_node { node } {
set my_clocks [list]
foreach_in_collection path [get_path -to [get_object_info -name [get_edge_info -src [get_node_info -clock_edges $node]]]] {
lappend my_clocks [get_object_info -name [get_path_info -from $path]]
}
return $my_clocks
}
proc get_clock_targets_feeding_pin { pin } {
set my_clocks [list]
foreach_in_collection path [get_path -to $pin] {
lappend my_clocks [get_object_info -name [get_path_info -from $path]]
}
return $my_clocks
}
Regards