V
valxiao
Guest
hi, guys,
i kyla problemų su vartų lygio modeliavimas, vykstančioje ModelSim, ji atrodo taip:
-------------------------------------------------- ----------
r: ../../libs/modelsim_asic/fsc0g_d_sc.v (18445): $ setup (negedge D & & & ~ SEL: 2841 ps, posedge CK: 3 ns, 267 ps);
Laikas: 3 ns Iteracja: 5 instancijos: /../../../../../ reg_coeff_data_reg_210_
-------------------------------------------------- ----------
CLK į testbench: amžinai # 3 CLK CLK <= ~ CLK (6ns)
CLK į sintezė: nustatyti clk_period 4.8ns * 0,9
nustatyti clk_skew 0.4ns
...
ir report_max_path yra: 0.006ns
kodėl vis dar sutrikimu su $ setup dėl reg_coeff_data_reg_210_?ačiū!
į SDF:
(CELL
(CELLTYPE "QDFZCGD")
(INSTANCIJOS ../../reg_coeff_data_reg_210_)
(ATIDĖJIMAS
(Absolute
(IOPATH CK K (0.381:0.381:0.381) (0.346:0.346:0.346))
)
)
(TIMINGCHECK
(PLOTIS (posedge CK) (0.258:0.258:0.258))
(PLOTIS (negedge CK) (0.620:0.620:0.620))
(Pirmininkas (posedge D) (posedge CK) (0.276:0.282:0.282))
(Pirmininkas (negedge D) (posedge CK) (0.261:0.267:0.267))
(HOLD (posedge D) (posedge CK) (-0,099: -0,103: -0,103))
(HOLD (negedge D) (posedge CK) (-0,037: -0,039: -0,039))
(Pirmininkas (posedge TD) (posedge CK) (0.421:0.421:0.421))
(Pirmininkas (negedge TD) (posedge CK) (0.817:0.817:0.817))
(HOLD (posedge TD) (posedge CK) (-0,192: -0,192: -0,192))
(HOLD (negedge TD) (posedge CK) (-0,155: -0,155: -0,155))
(Pirmininkas (posedge SEL) (posedge CK) (0.783:0.783:0.783))
(Pirmininkas (negedge SEL) (posedge CK) (0.353:0.353:0.353))
(HOLD (posedge SEL) (posedge CK) (-0,128: -0,128: -0,128))
(HOLD (negedge SEL) (posedge CK) (-0,034: -0,034: -0,034))
)
)budėjimo ląstelių
modulis QDFZCGD (K, D, TD, CK SEL);
reg vėliavos / / pranešiklį vėliava
produkcija K;
įvesties D CK, TD SEL;
supply1 VCC;
viela d_CK, d_D, d_TD, d_SEL;
/ / Function Block
"apsaugoti
BUF G3 (Q, qt);
dffrsb_udp g2 (qt, d1, d_CK, VCC, VCC, vėliava);
mux2_udp G4 (d1, d_D, d_TD, d_SEL);
/ / Nurodykite Mikrorajonas
nurodyti
/ / Modulis kelio Delay
(posedge CK *> (Q: 1'bx)) = (10.68:16.82:30.00, 11.19:17.49:31.13);
/ / Setup ir Laikydami valanda
specparam setup_D_CK = 9,30;
specparam hold_D_CK = 0,00;
specparam setup_TD_CK = 10,30;
specparam hold_TD_CK = 0,00;
specparam setup_SEL_CK = 8,60;
specparam hold_SEL_CK = 0,00;
$ setuphold (posedge CK, posedge D & & & ~ SEL, 7.91:13.35:25.21, -2,94: -4,93: -8,41, vėliava, d_CK, d_D);
$ setuphold (posedge CK, negedge D & & & ~ SEL, 6.55:11.99:24.10, -1,46: -2,09: -2,87, vėliava, d_CK, d_D);
$ setuphold (posedge CK, posedge TD & & & SEL, 10.87:18.28:36.31, -4,92: -8,14: -14,82, vėliava, d_CK, d_TD);
$ setuphold (posedge CK, negedge TD & & & SEL, 22.09:38.87:79.21, -7,51: -9,99: -14,21, vėliava, d_CK, d_TD);
$ setuphold (posedge CK, posedge SEL, 22.58:38.87:78.10, -4,92: -7,64: -13,35, vėliava, d_CK, d_SEL);
$ setuphold (posedge CK, negedge SEL, 11.61:19.14:35.81, -1,59: -2,59: -3,36, vėliava, d_CK, d_SEL);
/ / Minimali Pulsas Plotis
specparam mpw_pos_CK = 15,64;
specparam mpw_neg_CK = 17,40;
$ plotis (posedge CK, 6.87:12.53:25.83, 0, vėliava);
$ plotis (negedge CK, 17.95:30.51:62.04, 0, vėliava);
endspecify
"endprotect
endmodule
"endcelldefine
kai sintezė, i naudojamas "set_fix_hold CLK"
i kyla problemų su vartų lygio modeliavimas, vykstančioje ModelSim, ji atrodo taip:
-------------------------------------------------- ----------
r: ../../libs/modelsim_asic/fsc0g_d_sc.v (18445): $ setup (negedge D & & & ~ SEL: 2841 ps, posedge CK: 3 ns, 267 ps);
Laikas: 3 ns Iteracja: 5 instancijos: /../../../../../ reg_coeff_data_reg_210_
-------------------------------------------------- ----------
CLK į testbench: amžinai # 3 CLK CLK <= ~ CLK (6ns)
CLK į sintezė: nustatyti clk_period 4.8ns * 0,9
nustatyti clk_skew 0.4ns
...
ir report_max_path yra: 0.006ns
kodėl vis dar sutrikimu su $ setup dėl reg_coeff_data_reg_210_?ačiū!
į SDF:
(CELL
(CELLTYPE "QDFZCGD")
(INSTANCIJOS ../../reg_coeff_data_reg_210_)
(ATIDĖJIMAS
(Absolute
(IOPATH CK K (0.381:0.381:0.381) (0.346:0.346:0.346))
)
)
(TIMINGCHECK
(PLOTIS (posedge CK) (0.258:0.258:0.258))
(PLOTIS (negedge CK) (0.620:0.620:0.620))
(Pirmininkas (posedge D) (posedge CK) (0.276:0.282:0.282))
(Pirmininkas (negedge D) (posedge CK) (0.261:0.267:0.267))
(HOLD (posedge D) (posedge CK) (-0,099: -0,103: -0,103))
(HOLD (negedge D) (posedge CK) (-0,037: -0,039: -0,039))
(Pirmininkas (posedge TD) (posedge CK) (0.421:0.421:0.421))
(Pirmininkas (negedge TD) (posedge CK) (0.817:0.817:0.817))
(HOLD (posedge TD) (posedge CK) (-0,192: -0,192: -0,192))
(HOLD (negedge TD) (posedge CK) (-0,155: -0,155: -0,155))
(Pirmininkas (posedge SEL) (posedge CK) (0.783:0.783:0.783))
(Pirmininkas (negedge SEL) (posedge CK) (0.353:0.353:0.353))
(HOLD (posedge SEL) (posedge CK) (-0,128: -0,128: -0,128))
(HOLD (negedge SEL) (posedge CK) (-0,034: -0,034: -0,034))
)
)budėjimo ląstelių
modulis QDFZCGD (K, D, TD, CK SEL);
reg vėliavos / / pranešiklį vėliava
produkcija K;
įvesties D CK, TD SEL;
supply1 VCC;
viela d_CK, d_D, d_TD, d_SEL;
/ / Function Block
"apsaugoti
BUF G3 (Q, qt);
dffrsb_udp g2 (qt, d1, d_CK, VCC, VCC, vėliava);
mux2_udp G4 (d1, d_D, d_TD, d_SEL);
/ / Nurodykite Mikrorajonas
nurodyti
/ / Modulis kelio Delay
(posedge CK *> (Q: 1'bx)) = (10.68:16.82:30.00, 11.19:17.49:31.13);
/ / Setup ir Laikydami valanda
specparam setup_D_CK = 9,30;
specparam hold_D_CK = 0,00;
specparam setup_TD_CK = 10,30;
specparam hold_TD_CK = 0,00;
specparam setup_SEL_CK = 8,60;
specparam hold_SEL_CK = 0,00;
$ setuphold (posedge CK, posedge D & & & ~ SEL, 7.91:13.35:25.21, -2,94: -4,93: -8,41, vėliava, d_CK, d_D);
$ setuphold (posedge CK, negedge D & & & ~ SEL, 6.55:11.99:24.10, -1,46: -2,09: -2,87, vėliava, d_CK, d_D);
$ setuphold (posedge CK, posedge TD & & & SEL, 10.87:18.28:36.31, -4,92: -8,14: -14,82, vėliava, d_CK, d_TD);
$ setuphold (posedge CK, negedge TD & & & SEL, 22.09:38.87:79.21, -7,51: -9,99: -14,21, vėliava, d_CK, d_TD);
$ setuphold (posedge CK, posedge SEL, 22.58:38.87:78.10, -4,92: -7,64: -13,35, vėliava, d_CK, d_SEL);
$ setuphold (posedge CK, negedge SEL, 11.61:19.14:35.81, -1,59: -2,59: -3,36, vėliava, d_CK, d_SEL);
/ / Minimali Pulsas Plotis
specparam mpw_pos_CK = 15,64;
specparam mpw_neg_CK = 17,40;
$ plotis (posedge CK, 6.87:12.53:25.83, 0, vėliava);
$ plotis (negedge CK, 17.95:30.51:62.04, 0, vėliava);
endspecify
"endprotect
endmodule
"endcelldefine
kai sintezė, i naudojamas "set_fix_hold CLK"