SDF (Standard Delay Format),标准延时格式文件,常用延迟反标注。该文件包含了仿真用到的所有 IOPATH,INTERCONNECT的延时。
线延时:
(INTERCONNECT fsm_block/U27/Q fsm_block/U41/C (0.002::0.002) (0.002::0.002))
表示 fsm_block/U27/Q端口到fsm_block/U41/C端口的连线延时最小是0.002,最大是0.002。典型值在sdf中没有说明。因此在Modelsim里反标sdf延时时,要指定-sdfmin或者sdfmax。如果制定-sdftyp的话,由于sdf文件里并没有关于延时典型值的说明,则Modelsim将不会将延时反标到标准单元上面,而是将库文件里specify指定的延时反标上去,如下代码块里的 0.02。
module AN22HDLLX1 (A, B, C, D, Q);input A, B, C, D;output Q;wire n_0, n_1;// Function Q: !((A*B)+(C*D))and i0 (n_0, A, B);and i1 (n_1, C, D);nor i2 (Q, n_0, n_1);// timing section:specify(A -=> Q) = (0.02, 0.02);if ((B == 1'b1 && C == 1'b1)) (A -=> Q) = (0.02, 0.02);(B -=> Q) = (0.02, 0.02);if ((A == 1'b1 && C == 1'b1)) (B -=> Q) = (0.02, 0.02);(C -=> Q) = (0.02, 0.02);if ((A == 1'b0 && B == 1'b1)) (C -=> Q) = (0.02, 0.02);if ((A == 1'b1 && B == 1'b0)) (C -=> Q) = (0.02, 0.02);(D -=> Q) = (0.02, 0.02);if ((A == 1'b0 && B == 1'b1)) (D -=> Q) = (0.02, 0.02);if ((A == 1'b1 && B == 1'b0)) (D -=> Q) = (0.02, 0.02);endspecify
endmodule
单元延时:
(CELL(CELLTYPE "AN31HDLLX1")(INSTANCE reg_map/CB_Logic_i1/U16)(DELAY(ABSOLUTE(IOPATH A Q (0.262::0.262) (0.160::0.160))(IOPATH B Q (0.271::0.271) (0.167::0.167))(IOPATH C Q (0.233::0.233) (0.156::0.156))(IOPATH D Q (0.169::0.169) (0.097::0.097))(COND (A==1'b0&&B==1'b0&&C==1'b1) (IOPATH D Q (0.169::0.169) (0.097::0.097)))(COND (A==1'b0&&B==1'b1&&C==1'b1) (IOPATH D Q (0.169::0.169) (0.097::0.097)))(COND (A==1'b1&&B==1'b0&&C==1'b1) (IOPATH D Q (0.169::0.169) (0.097::0.097)))(COND (A==1'b1&&B==1'b1&&C==1'b0) (IOPATH D Q (0.169::0.169) (0.097::0.097))))))
(IOPATH A Q (0.262::0.262) (0.160::0.160))表示,上升沿最小延时是0.262,最大值也是0.262,典型值没有定义;下降沿最小延时是0.160,最大值也是0.160,典型值没有定义;
条件延时:
(COND (A1’b0&&B1’b0&&C==1’b1) (IOPATH D Q (0.169::0.169) (0.097::0.097)))表示 A为0并且B为1并且C为1的时候,上升延迟为0.169-0.169, 下降延迟为0.097-0.097。
Modelsim如何反标sdf【入门简单教程】