hoe dit op te lossen $ setup schending in gate-level simulatie

V

valxiao

Guest
hi, guys,
i een probleem met poort-niveau simulatie, uitgevoerd in modelsim, lijken zij het volgende:
-------------------------------------------------- ----------
R: ../../libs/modelsim_asic/fsc0g_d_sc.v (18445): $ setup (negedge D & & & ~ SEL: 2841 PS, posedge CK: 3 ns, 267 ps);
: 3 ns Iteratie: 5 aanleg: /../../../../../ reg_coeff_data_reg_210_
-------------------------------------------------- ----------

CLK in testbench: Forever # 3 clk clk <= ~ clk; (6ns)
CLK in de synthese: set clk_period 4.8ns * 0,9
set clk_skew 0.4ns
...
en report_max_path is: 0.006ns
waarom nog steeds strijd met $ setup voor reg_coeff_data_reg_210_?bedankt!

in sdf:
(Cel
(CELLTYPE "QDFZCGD")
(AANLEG ../../reg_coeff_data_reg_210_)
(Vertraging
(Absolute
(IOPATH CK Q (0.381:0.381:0.381) (0.346:0.346:0.346))
)
)
(TIMINGCHECK
(WIDTH (posedge CK) (0.258:0.258:0.258))
(WIDTH (negedge CK) (0.620:0.620:0.620))
(SETUP (posedge D) (posedge CK) (0.276:0.282:0.282))
(SETUP (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))
(SETUP (posedge TD) (posedge CK) (0.421:0.421:0.421))
(SETUP (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))
(SETUP (posedge SEL) (posedge CK) (0.783:0.783:0.783))
(SETUP (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))
)
)in de stand-cel
module QDFZCGD (Q, D, TD, CK, SEL);
reg vlag; / / Notifier flag
uitgang Q;
D-ingang, CK, TD, SEL;
supply1 Vcc;

draad d_CK, d_D, d_TD, d_SEL;

/ / Function Block
`beschermen
buf g3 (Q, qt);
dffrsb_udp G2 (qt, D1, d_CK, Vcc, Vcc, vlag);
mux2_udp G4 (D1, d_D, d_TD, d_SEL);

/ / Geef de Block
specificeren

/ / Module Path Delay
(posedge CK *> (Q: 1'bx)) = (10.68:16.82:30.00, 11.19:17.49:31.13);

/ / Setup en Hold Time
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, vlag,,, d_CK, d_D);
$ setuphold (posedge CK, negedge D & & & ~ SEL, 6.55:11.99:24.10, -1,46: -2,09: -2,87, vlag,,, d_CK, d_D);
$ setuphold (posedge CK, posedge TD & & & SEL, 10.87:18.28:36.31, -4,92: -8,14: -14,82, vlag,,, d_CK, d_TD);
$ setuphold (posedge CK, negedge TD & & & SEL, 22.09:38.87:79.21, -7,51: -9,99: -14,21, vlag,,, d_CK, d_TD);
$ setuphold (posedge CK, posedge SEL, 22.58:38.87:78.10, -4,92: -7,64: -13,35, vlag,,, d_CK, d_SEL);
$ setuphold (posedge CK, negedge SEL, 11.61:19.14:35.81, -1,59: -2,59: -3,36, vlag,,, d_CK, d_SEL);

/ / Minimum Pulse Width
specparam mpw_pos_CK = 15,64;
specparam mpw_neg_CK = 17,40;
$ breedte (posedge CK, 6.87:12.53:25.83, 0, vlag);
$ breedte (negedge CK, 17.95:30.51:62.04, 0, vlag);
endspecify
`endprotect
endmodule
`endcelldefine

wanneer synthese, ik heb gebruikt "set_fix_hold clk"

 
Je moet draaien STA instrument ter controle van de schending.

 
hoi,
eerste plaats het gebruik STA om te controleren of de timing is voldaan.
zo niet en je nog wilt gaan, pls-bestand handmatig te wijzigen sdf

 
De schending gebeurt op de eerste klok stijgende flank.Ziet u een probleem in testbench setup.Hoe rijdt u de input pinnen aan het ontwerp?
Normaal gesproken is de beste manier om te debuggen dit soort problemen is de golfvorm dump en het tijdstip waarop overtreding gebeurt controleren.
De GUI netlist debug tool GOF uit NanDigits is erg handig in de debug gate-niveau netlist.Het kan isoleren van de schending cel en sporenelementen de ingangen van de cel tot aan de wortel van overtreding.
Neem een buit bij de gedeeltelijke schema bij het isoleren van logica
http://www.nandigits.com/partial_schematic.htm
Ook zij heeft interface gtkwave en Novas nWave.
http://www.nandigits.com/waveform_restore.htm

Hoop dat dit helpt.

Nandy
www.nandigits.com
Netlist Debug / ECO in de GUI-modus

 
Hoi,

De setup gemeld door de tool zei dat wanneer de gegevens veranderd op 2.841ns, en de klok ontstaan bij 3ns.Zoals de FF 0.267ns setup eis is, is er een (2,841 0,267 - 3) setup violatoin.

Base op je beschrijving, lijkt het dat de klok moet stijgen om 6ns, en niet een 3ns.

Groeten,
Eng Han

 

Welcome to EDABoard.com

Sponsor

Back
Top