Več o problem Simulacija

M

Matrix_YL

Guest
Hi vsem My modul Verilog lahko ogledate preizkus val in pričakovanih rezultatov simulacije je prav, "Simulacija Behavioral Model". ampak ko sem naredil "simulacijo Post-Prevajalnik Verilog Model", pričakovanih rezultatov simulacije je precej drugačen Lahko vam povem, kaj je narobe z njim? hvala!
 
Prosimo define "precej drugačna". Med simulacijo po poti, boste videli vse časovne zamude in skews, ampak splošno funkcijo logiki bi morala biti enaka kot vaše vedenjske simulacijo, razen če ste potiskanja chip prehitro.
 
Preverite, ali theSetUp / Hold kršitev Opozorila med Simulation. Prav tako boste morali zagnati ur simulacijo 100 ns, in ki veljajo po vhodnih vektorjev. To 100 ns je za globalno Reset Set. Morda obstaja tudi drugi razlogi, ki jih bo treba bolj explaination problema.
 
Rad bi izhod moj naslov, ki ga [16:00], ko je pre_ld_Frame_out 1 in izhod 17'bz_zzzz_zzzz_zzzz_zzzz ko pre_ld_Frame_out je 0 ali izhod moj naslov po 45ns kdaj Simulirajte Behaviorl Model je ok narediti simulacijo Post-Prevajalnik Verilog Model izhod [ 16:00] vedno 17'bz_zzzz_zzzz_zzzz_zzzz sem hople si lahko ogledate moj modul za več podrobnosti!
 
če je A = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!); Drugje začeli = naslov; # 7 DOUT = 1'b1; # 45 = 17'bz_zzzz_zzzz_zzzz_zzzz; DOUT = 1'b0; konec koncu
1) Delay ni synthesizable, morda U dobili opozorilo za to. 2) = 17'bz_zzzz_zzzz_zzzz_zzzz; => 'se bomo storili = naslov; =>' se bomo storili U r dobili Simulacija neusklajenosti kot kadarkoli pre_ld_Frame_out = 0 = 17'bz_zzzz_zzzz_zzzz_zzzz; DOUT = 1'b0, je treba odgovoriti . Je to tako?
 
Obstajata dve sliki -----> moje Simulirajte rezultate opravi Model Simulirajte Behaviorl in s simulacijo Post-Prevajalnik
 
OK .. Torej ur problem, če jaz sem ga dobili pravilno je, da signal "A" se ne posodablja z "Naslov" v Post-Xlate simulacijo. Ali je to? No, u pač preprosta vaja, ki lahko jasno ur ta dvom in bomo dal u več dvomov, vendar sem lahko stavil, da bomo resnično pomaga U. Pravkar premik "# 45 = 17'bz_zzzz_zzzz_zzzz_zzzz;" pred "naslov = ; "v vedno @ (naslov) blok in ne ur simulacije.
 
To se mi zdi, ko se Simulirajte Post-Prevajalnik Verilog Model vedno so ta opozorila OPOZORILO: Xst: 854 - "read_a_frame1.v" vrstica 24: Prezrti začetno izjavo. OPOZORILO: Xst: 916 - "read_a_frame1.v" vrstica 63: Delay se ne upošteva za sintezo. Hočem vedeti, zakaj? in ali Simulirajte Post-Prevajalnik Verilog Model vedno prezrta Delay Hvala!
 
To ni simulator, ki je ignoriranje zamudo izjavo, da je fizično sintetizator in kraj-in-poti orodij. FPGA / CPLD ne vsebuje samovoljno linije zamude, tako da ne more izvajati vašo zahtevo za zamudo. To je temeljni problem. Moraš najti drugačen način (morda premik register ali morda DLL) za ustvarjanje zamude, ki jo želite. Tisti začetni izjavo opozorila so frustrirajuće. FPGA / CPLD * lahko * izvajanje najbolj začetnih pogojev, vendar sinteza orodja preprosto odločite, da jih ignorirajo. Morda nekega dne bodo orodja dobili pametnejši.
 
[Quote = echo47]. Moraš najti drugačen način (morda premik register ali morda DLL) za ustvarjanje zamude, ki jo želite. [/Quote] Ali mi lahko poveste nekaj primerov za izvajanje moj modul! najlepša hvala!
 
Ne morem dati uporabne primere, ker bi močno odvisne od vaših obstoječih design, ura stopnje, čip tipa, in kako daleč lahko odstopajo od 45ns cilja. Morda imate 20MHz uro. Mogoče lahko preprosto prenesti svoje signala skozi eno clocked D-flop, da bi dobili 50ns zamude. Mogoče 50ns je dovolj blizu, da 45ns. Mogoče naprava vsebuje DLL. Mogoče lahko nastavite eno od njih ustvariti novo uro, ki je nagnjen od vašega master clock z 45ns. Morda ga lahko uporabite za ustvarjanje svojega zamudo signal. Mogoče DLL jitter ne bo povzročilo težav. Preveč maybes! Jaz bi poskusil za preoblikovanje čas, da se vse dogaja lepo in čisto na uro robovih. To včasih zahteva povečanje uro tečaja.
 
Hvala echo47 Vem, da pomeni! Rad bi samo nadzor SRAM za branje data.The SRAM PREBERITE Timing zahtevajo me na to Delay želim uporabljati Xilinx Spartan 2 izvajati svoj design! Lahko dam SRAM PREBERITE TIMING CE OE UB LB je pod nadzorom stroj stanju tako da sem samo uporabo DOUT obvesti podatkov je pripravljen, lahko gremo ven, če = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!); Drugje začeli = naslov; / / ko je pogoj izpolnjen, izžarevati naslova # 7 DOUT = 1'b1; / / ko toha je konec, Dout obvesti podatki pripravljeni # 45 = 17'bz_zzzz_zzzz_zzzz_zzzz; / / jasen naslov DOUT = 1'b0; / / jasno DOUT konec
 
Sem radoveden, zakaj morate float (nastavljen na Z) naslov avtobus. Ali ste delitev avtobus z drugimi napravami? Če je vaš SRAM povezana samo z FPGA, potem boste morda poskuša preveč težko, da bo vaše signale videti natanko tako kot lista SRAM. Vi morda ne bo treba float naslov avtobus, ali skrbeti toha, ali jasno DOUT na nič, ali se počaka natanko 45ns. Tipičen način, da se glasi od statične SRAM je izhodni signali naslov in nadzor na eno uro, nato pa zapah branje podatkov na uro kasneje (po TAA). Če res potrebujete, da plovec naslov avtobus, potem lahko to storite ob istem času boste zapah branje podatkov. Ampak ponavadi le signal, ki ga je treba v zraku so podatki avtobus, tako da lahko preklopite iz pisanja do branja.
 
Hvala echo47 želim uporabiti svoj FPGA nadzor dveh SRAM in istočasno, ko je eden SRAM bral drugo SRAM pisal! ko je bil okvir slike zgrabil dve funkcijski SRAM'S sprememb med seboj
tipičen način, da se glasi od statične SRAM je izhodni signali naslov in nadzor na eno uro, nato pa zapah branje podatkov na kasnejši uro (po TAA). Če res potrebujete, da plovec naslov avtobus, potem lahko to storite ob istem času boste zapah branje podatkov. Ampak ponavadi le signal, ki ga je treba v zraku so podatki avtobus, tako da lahko preklopite iz pisanja do branja
Ali mi lahko poveste nekaj primerov?
 
Nikoli nisem videl samostojno primer vmesnikom SRAM. Memory cikel čas je običajno združena v skupno sestavo projekta, tako da vmesnik SRAM postane skoraj nič vrstic kode. Morda obstaja nekje tutorial, ki kaže osnovno branje / pisanje konceptov. Kdo videl enega?
 
Hi echo47
modula top (CLK, clkout); parameter divider = 25000000 / 400; / mora / biti sodo število vhodnih CLK, reg [15:00] count = 0; izhod reg clkout = 0; vedno @ (posedge CLK) začeti štetje
 
Prosim pojasni, "se je izgubil val clkout = STX". Kateri "isto stvar" se dogaja? Če prav razumem vaše spremembe:
Code:
 modul top (CLK, count, clkout); parameter divider = 25000000 / 400; / mora / biti sodo število vhodnih CLK; izhod reg [15:00] count = 0; izhod reg clkout = 0; vedno @ (posedge CLK) začeti štetje
 
Hvala echo47 Naj poskusim še enkrat! glej števec za vožnjo sem posebej določi šteje za izhod!
 
Vidim vašo clkout spreminja na X. To se ne zgodi, ko sem simulirajo modul, da sem objavil nekaj sporočil nazaj. My "count" je modul izhod preveč. Prosimo, poskusite moj modul, ali nam pokaže svojo kodo. Prav tako nam časovni okvir vaše simulacije izhod - ga obrezana off vaše jpeg. Tukaj je prvih nekaj vrstic moj post-simulacija poti. Začetna 100ns zamuda, ki jih povzroča globalno čip utrip reset.
 
Hvala echo47 sem vedel, kaj je narobe z mano! Ko sem uporabo 40ns z uro časa informacij, tako da sem dobil napačen rezultat! ko uporabljam uro, kot ste 10ns rezultat enako pravico kot vi! `Roku 1ns / 1ps sem rabil, ampak jaz še vedno ne vem, zakaj bom privzeta vrednost dobili napačen rezultat! Na srečo sem 146ns dobil pravi rezultat! najlepša hvala [/quote]
 

Welcome to EDABoard.com

Sponsor

Back
Top