在design里往往会有一些特殊需求,例如约束两个异步clock之间的path,而异步path对于工具来说往往是不做任何约束的,那么我们应该怎么去对异步clock之间的path做约束呢?
异步clock可以通过两个办法来约束:
1、set_clock_group
2、set_false_path
对于clka和clkb,要设置两个为异步clock的话,可以进行如下设置
1、set_clock_group -group {clka} -group {clkb}
2、set_false_path -from clka -to clkb; set_false_path -from clkb -to clka
上面这种方法都会让工具忽略这两个clock之间的timing path,也就不会对这两个clock之间的path做任何约束;
但是可能design有某些特殊需求,需要在clka的rega和clkb之间的regb之间有delay的要求,那应该怎么做呢?
通过set_max_delay,我们可以实现点对点的约束,例如
set_max_delay -from rega/CP -to regb/D
但是set_max_delay的优先级并没有set_false_path高,也就是说,即使在环境里设置了上面的constraint,依旧无效?
那么怎么做才能设置上max delay呢?