如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到:
-
表头需要特别关注的是command, 确定report 的对象及加的option;
-
From/To pin: cell 的input pin 和 output pin;
-
Cell: 该cell 对应的lib cell;
-
Library: 该cell 来自哪个lib, 需要特别关注一下,确定用的lib 正确,避免低级错误;
-
Arc sense: Arc sense 分三种positive unate, negetive unate, non unate; 输出信号同输入信号跳变方向相同的称为positive unate 如buffer 的timing arc; 输出信号同输入信号跳变方向相反的称为negetive unate 如inverter 的timing arc; 输出信号的跳变方向由另一个输入信号的值决定称为non unate 如xor 的timing arc;
-
Delay type: 标示是cell delay 还是net delay;
-
Base or SI: 因为加了option -si, 所以当前是SI delay;
-
RC summary for net: 从这一块可以得到电容电阻个数、net 电容值、总上升电容值、总下降电容值、总电