报错的寄存器在.lib和verilog model,以及SDF中都是存在的
(1) SDF中
(CELL
(CELLTYPE "DFQRXM4RA")
(INSTANCE inst_Core.a1.S4_0.S_0.out_reg[0])
(DELAY
(ABSOLUTE
(PORT RB (::0.0))
(PORT CK (::0.0))
(PORT D (::0.0))
(IOPATH RB Q () (::87068))
(IOPATH CK Q (::169104) (::204988))
)
)
(TIMINGCHECK
(REMOVAL (posedge RB) (posedge CK) (::96023))
(RECOVERY (posedge RB) (posedge CK) (::-37630))
(SETUPHOLD (negedge D) (COND adacond_RB (posedge CK)) (::56220) (::17686))
(SETUPHOLD (posedge D) (COND adacond_RB (posedge CK)) (::100124) (::-43486))
)
)
(2)Verilog model中
specify
(negedge RB => (Q+:1'b0)) = 0;
(posedge CK => (Q+)) = 0;
$setuphold (posedge CK &&& adacond_RB, posedge D &&& adacond_RB, 0, 0, notifier,,, delayed_CK, delayed_D);
$setuphold (posedge CK &&& adacond_RB, negedge D &&& adacond_RB, 0, 0, notifier,,, delayed_CK, delayed_D);
$recovery (posedge RB, posedge CK, 0, notifier);
$hold (posedge CK, posedge RB, 0, notifier);
$width (negedge RB, 0, 0, notifier);
$width (posedge CK, 0, 0, notifier);
$width (negedge CK, 0, 0, notifier);
endspecify
(3)lib中
rise_constraint (constraint_template_3x3) {
index_1 ("2, 20, 200");
index_2 ("2, 20, 200");
values ( \
"-39.9499, -51.6369, -168.385", \
"-49.1528, -60.9628, -176.849", \
"31.9458, 19.5018, -105.14" \
);
}
}
timing () {
related_pin : "CK";
sdf_edges : both_edges;
timing_type : removal_rising;
rise_constraint (constraint_template_3x3) {
index_1 ("2, 20, 200");
index_2 ("2, 20, 200");
values ( \
"97.5979, 107.965, 213.6", \
"101.4, 111.749, 217.04", \
"159.54, 170.01, 275.754" \
);
}
|