后仿真中《SDF反标必懂连载篇》之关联SDF与specify块

之前的文章,从理论讲述了 SDF 反标相关知识,通过学习,大家想必已经掌握了不少。老话讲:纸上得来终觉浅,绝知此事要躬行。不错,今天我们一起来探究一下 SDF延迟文件中的数据信息,是如何与标准单元库或者网表代码进行关联的。

下面一个module 是来自于某家单元库。库中的specify...endspecify 块结构,采用了module-path-delay 的方式,指定延时信息。

`timescale 1ns/1ps

module  my_std_cell(Y, A, B);

output  Y;
input  A,  B;

     nor (Y, A, B);

specify

(B => (Y:1'b1)) = (0.01 , 0.01);
(A => (Y:1'b1)) = (0.01 , 0.01);

endspecify

endmodule

下面的数据描述信息,来源于经过PT 工具提取的SDF文件延迟片段信息。可见:SDF中的IOPATH delay 用于描述 my_std_cell中的module-path-delay 延迟大小。

(CELL
   (CELLTYPE  "my_std_cell")
   (INSTANCE a/b/c/d/my_std_cell_inst)
   (DELAY
      (ABSOLUTE
      (IOPATH A Y (0.016::0.016) (0.003::0.002))
      (IOPATH B Y (0.021::0.025) (-0.000::-0.001))
      )
   )
)

另外,在my_std_cell 中的 specify...endspecify block 中定义的延迟路径信息,理论上应该和SDF文件中的延迟标注路径信息和列表数目,完全相等。