关于库文件的时序模型和SDF的时序参数
时间:10-02
整理:3721RD
点击:
在做后仿的时候,有几个问题不理解,想请教一下。在后仿时会加入时序文件sdf,但是PT写出的sdf文件格式为 (SETUP (posedge CENB) (posedge CLKB) (0.44583::0.44761)),如果使用反标语句 $sdf_annotate ("/home/sxt/convolution-pt/image_smici.typ.sdf", dut,,"sdf.log");会告诉默认采取的是typical的值。然后跑后仿的时候会报出很多违例如下:
/v/smic18.v", 20009: Timing violation in image_smici_test.dut.top_pll.IMAGE_inst_img_correct.count_line_reg_6_
$setuphold( posedge CK &&& (SandRandSE == 1'b1):17452.00 ns, negedge SI:17452.00 ns, limits: (1.00 ns,0.50 ns) );
这个时候报出违例的时候 limits: (1.00 ns,0.50 ns)的值是库文件的specify值,与sdf文件中查出的对应的寄存器的hold值(HOLD (negedge SI) (posedge CK) (0.26065::0.26065))不同。这种情况是不是表示sdf文件没有正确加在上去?
还有一个疑问,sdf文件中(xx:xx:xx)是不是指的slow typical fast三个情况下库文件的值?如果只载入一个库文件比如slow.db的时候写出的sdf文件中(xx::xx)是一样的?
/v/smic18.v", 20009: Timing violation in image_smici_test.dut.top_pll.IMAGE_inst_img_correct.count_line_reg_6_
$setuphold( posedge CK &&& (SandRandSE == 1'b1):17452.00 ns, negedge SI:17452.00 ns, limits: (1.00 ns,0.50 ns) );
这个时候报出违例的时候 limits: (1.00 ns,0.50 ns)的值是库文件的specify值,与sdf文件中查出的对应的寄存器的hold值(HOLD (negedge SI) (posedge CK) (0.26065::0.26065))不同。这种情况是不是表示sdf文件没有正确加在上去?
还有一个疑问,sdf文件中(xx:xx:xx)是不是指的slow typical fast三个情况下库文件的值?如果只载入一个库文件比如slow.db的时候写出的sdf文件中(xx::xx)是一样的?
对,应该是没有标上去,
现在的pt-si写出的sdf都是这种max::min 值的,即2个值, 你看看vcs/ncverilog的参数吧,
要标上去再说
有个叫做 -no_specify的参数,你找manual看看