一、时序引擎是如何进行建立时间和保持时间分析的
-
setup检查
时序引擎会找出发起时钟和捕获时钟的最小公共周期,然后在最小公共周期内找到所有发起时钟沿和捕获时钟沿的所有可能情况,并在所有情况中挑选出最严苛的情况确定launch edge 和capture edge. -
hold time检查
保持时间要求是以建立时间要求为基准的。
有两种保持时间发起沿和捕获沿确定方法:
a.当前建立时间发起沿产生的数据不能被当前建立时间捕获沿的前一个时钟沿捕获;
b.当前建立时间发起沿的下一个有效沿产生的数据不能被当前建立时间的捕获沿捕获。
从两种状况中确定所有的保持时间需求(可正可负),并以最大的保持时间需求来确定保持时间发起沿和捕获沿的位置。
二、Multicycle约束
- 为什么要进行Multilcycle约束
时序引擎默认情况下会分析建立时间/保持时间需求最严苛的情况,而这不一定与实际需要相符。实际情狂可能并不需要这么严格的时序,因此用户可以借用set_multicycle_path命令来放松某些路径的约束力度。 - tcl命令格式
set_multicycle_path <path_multiplier> [setup|hold] [-start|-end] [-from] [-to] [-through<pins|cells|nets>] - 调整规则
a.[setup|hold