针对 IN2REG 的 timing group,其 timing 模型是假设 input pin 外面有一个虚拟的reg(如图中的 reg1),这个虚拟reg的 clock 是 virtual clock (sdc 中创建的),然后就可以套用 reg2reg 的模型来分析了。
但是这样有个问题,tool 无法计算 virtual clock 的latency(即图中的T4),需要根据real clock 的latency T5 来手动计算,而且不同 corner 下的 latency 都不一样,需要计算多次,太麻烦。
对于这个问题,可以设置 reference pin ,找出 IN2REG 中的REG 的clock,选取这个clock 的某一个 sink 点(如图中的 reg3 的 ck pin)作为reference pin,然后计算虚拟 reg 的 clock latency 时,就是用这个reference pin 作为 clock sink 点来计算的(就是用T3 替代 T4)
所以设置 reference pin 之后,在timing report 中,IN2REG 的timing path 中的 launch path 就是:T3 ->T1 -> T2,latch path 是 T5
reference pin 设置方法:
set_input_delay -clock clk01 -reference_pin [get_pins reg3/CK] T1 [get_ports in_clk]
其中 clk01 是 reference pin 所属的 clock, T1 是input_delay, in_clk 是 input port