pre_layout dc和pt生成的sdf文件+网表进行vcs仿真结果不同
分别用dc和pt生成sdf文件(时序约束都相同 ),但是dc的sdf文件读入vcs进行仿真 能够得到正确的波形图 ,而pt得到的sdf进行vcs仿真却得不到波形图 必须将仿真周期加到很大(Period=20ns)才有正确的波形,但是pt的report里面setup和hold time slack都为正(period=5ns),不知道什么原因 看了一下dc和pt生成的sdf文件,基本相同 ,但是vcs仿真结果却不一样,感觉pt的sdf文件没有正确加入
vcs读入dc生成的sdf文件 有提示+neg_tchk的error 但是读入pt生成的sdf文件却没有
vcs读入sdf文件 都是在testbench里面 加 initial $sdf_annotate("sdf file location","instance name")这条语句吗
会不会读入pt和dc生成的sdf文件的方法不一样啊 按说布图布线之前dc和pt的仿真结果应该没有什么差别啊
PT sdf
(CELL
(CELLTYPE "XOR3X2")
(INSTANCE U3908)
(DELAY
(ABSOLUTE
(IOPATH A Y (0.579::0.620) (0.585::0.612))
(IOPATH B Y (0.443::0.492) (0.468::0.520))
(IOPATH C Y (0.377::0.420) (0.329::0.359))
(COND B==1'b0&&C==1'b1 (IOPATH A Y (0.575::0.580) (0.607::0.608)))
(COND A==1'b0&&C==1'b1 (IOPATH B Y (0.443::0.448) (0.422::0.422)))
(COND B==1'b1&&C==1'b0 (IOPATH A Y (0.579::0.584) (0.612::0.612)))
(COND (A==1'b0&&B==1'b0)||(A==1'b1&&B==1'b1) (IOPATH C Y (0.280::0.280) (0.300::0.305)))
(COND A==1'b0&&C==1'b0 (IOPATH B Y (0.412::0.412) (0.402::0.407)))
(COND B==1'b1&&C==1'b1 (IOPATH A Y (0.403::0.404) (0.465::0.470)))
(COND A==1'b1&&C==1'b1 (IOPATH B Y (0.348::0.348) (0.468::0.473)))
(COND A==1'b1&&C==1'b0 (IOPATH B Y (0.418::0.423) (0.482::0.482)))
(COND (A==1'b0&&B==1'b1)||(A==1'b1&&B==1'b0) (IOPATH C Y (0.377::0.382) (0.359::0.359)))
(COND B==1'b0&&C==1'b0 (IOPATH A Y (0.415::0.416) (0.467::0.472)))
)
)
)
DC sdf
(CELL
(CELLTYPE "XOR3X2")
(INSTANCE U3908)
(DELAY
(ABSOLUTE
(COND B == 1'b0 && C == 1'b0 (IOPATH A Y (0.415:0.416:0.416) (0.467:0.472:0.472)))
(COND B == 1'b1 && C == 1'b1 (IOPATH A Y (0.403:0.404:0.404) (0.465:0.470:0.470)))
(COND B == 1'b0 && C == 1'b1 (IOPATH A Y (0.575:0.580:0.580) (0.607:0.608:0.608)))
(COND B == 1'b1 && C == 1'b0 (IOPATH A Y (0.579:0.584:0.584) (0.612:0.612:0.612)))
(IOPATH (posedge A) Y (0.619:0.620:0.620) (0.612:0.612:0.612))
(IOPATH (negedge A) Y (0.579:0.584:0.584) (0.585:0.588:0.588))
(COND A == 1'b0 && C == 1'b0 (IOPATH B Y (0.412:0.412:0.412) (0.402:0.407:0.407)))
(COND A == 1'b1 && C == 1'b1 (IOPATH B Y (0.348:0.348:0.348) (0.468:0.473:0.473)))
(COND A == 1'b0 && C == 1'b1 (IOPATH B Y (0.443:0.448:0.448) (0.422:0.422:0.422)))
(COND A == 1'b1 && C == 1'b0 (IOPATH B Y (0.418:0.423:0.423) (0.482:0.482:0.482)))
(IOPATH (posedge B) Y (0.491:0.492:0.492) (0.519:0.520:0.520))
(IOPATH (negedge B) Y (0.443:0.448:0.448) (0.468:0.473:0.473))
(COND (A == 1'b0 && B == 1'b0) || (A == 1'b1 && B == 1'b1) (IOPATH C Y (0.280:0.280:0.280) (0.300:0.305:0.305)))
(COND (A == 1'b0 && B == 1'b1) || (A == 1'b1 && B == 1'b0) (IOPATH C Y (0.377:0.382:0.382) (0.359:0.359:0.359)))
(IOPATH (posedge C) Y (0.420:0.420:0.420) (0.359:0.359:0.359))
(IOPATH (negedge C) Y (0.377:0.382:0.382) (0.329:0.333:0.333))
)
)
)
。
