Palīdzība par Simulate problēmu

M

Matrix_YL

Guest
Hi visiem maniem verilog modulis var redzēt testa viļņu un Paredzamie simulācijas rezultāti ir pareiza, "Simulēt Uzvedības modelis". bet, kad es "Simulēt Post-Tulkot verilog modelis", Sagaidāmie Simulācijas rezultāti ir diezgan atšķirīgi Vai varat pateikt, kas ir nepareizi ar to? paldies!
 
Lūdzu definē "diezgan atšķirīgi". Periodā pēc maršruta simulāciju jūs redzēsiet visus laika kavēšanās un skews, bet kopumā loģisko funkciju vajadzētu būt tādiem pašiem kā savu uzvedības simulācijas, ja jūs stumšanas mikroshēmā pārāk ātri.
 
Pārbaudiet theSetUp / Hold pārkāpumu Brīdinājumi laikā Simulācija. Tāpat Jums būs nepieciešams, lai palaistu ur simulācijas 100 ns, un pēc tam piemēro ieejas vektoriem. Šī 100 ns ir Global Set Reset. Tur varētu būt citi iemesli pārāk, kas būs nepieciešams vairāk explaination par šo problēmu.
 
Es gribu, lai atveidotu savu adresi [16:00], ja pre_ld_Frame_out ir 1, un izejas 17'bz_zzzz_zzzz_zzzz_zzzz kad pre_ld_Frame_out ir 0 vai izvades manu adresi, pēc 45ns kad do Simulēt Behaviorl modelis ir ok do Simulēt Post-Tulkot verilog modelis produkciju [ 16:00] vienmēr 17'bz_zzzz_zzzz_zzzz_zzzz es hople jūs varat redzēt manu moduli sīkāku informāciju!
 
tad, ja A = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!) Cits sākt = adrese; # 7 DOUT = 1'b1; # 45 = 17'bz_zzzz_zzzz_zzzz_zzzz; DOUT = 1'b0; beigu beigās
1) kavēšanās nav synthesizable, U var saņemt brīdinājumu par to. 2) A = 17'bz_zzzz_zzzz_zzzz_zzzz => 'll darīt = adrese; =>' ll darīt U r kļūst Simulation nesakritību, kā vienmēr, kad pre_ld_Frame_out = 0 = 17'bz_zzzz_zzzz_zzzz_zzzz; DOUT = 1'b0; būtu atbilde . Vai tas tā ir?
 
Ir divi attēla -----> mans Simulēt rezultātiem, ko veic Simulēt Behaviorl Model un Simulēt Post-Tulkot
 
OK .. Tātad, ur problēma, ja es esmu panākt, lai to pareizi ir tas, ka signāls "" nav atjaunināta ar "Adrese" in Post-Xlate simulāciju. Vai tā ir? Nu, u tikai do vienkāršs uzdevums, ko var skaidri ur šīs šaubas, un došu u vairāk šaubās, bet es varu derēt tas būs tiešām palīdz U. Jums tikai shift "# 45 = 17'bz_zzzz_zzzz_zzzz_zzzz," pirms "= adrese , "kas vienmēr @ (adrese) bloks un darīt ur simulācijas.
 
Es uzskatu, ka tas, kad do Simulēt Post-Tulkot verilog modelis vienmēr ir šie brīdinājumi BRĪDINĀJUMS: XST: 854 - "read_a_frame1.v" līnija 24: Ignorētās sākotnējo paziņojumu. BRĪDINĀJUMS: XST: 916 - "read_a_frame1.v" līnija 63: Nokavējums ignorē sintēzei. Es gribu zināt, kāpēc? un vai Simulēt Post-Tulkot verilog modelis vienmēr ignorēt Delay Paldies!
 
Tas nav simulators, ignorē kavēšanos pārskatu, tas ir fiziski sintezatoru un vietu un maršrutu instrumenti. FPGA / CPLD neietver patvaļīgu kavēšanās līnijas, tāpēc to nevar īstenot jūsu pieprasīto kavēšanās. Tā ir būtiska problēma. Jums ir nepieciešams atrast kādu citu ceļu (varbūt pāreju reģistrā vai, iespējams, DLL), lai radītu aizkavēšanos, kuru vēlaties. Šie sākotnējo paziņojumu brīdinājumi tiek nomākta. FPGA / CPLD * varētu * īstenot lielāko sākotnējos apstākļus, bet sintēzes rīkiem, vienkārši ignorēt tos. Varbūt kādu dienu instrumenti kļūs gudrāki.
 
[Quote = echo47]. Jums ir nepieciešams atrast kādu citu ceļu (varbūt pāreju reģistrā vai, iespējams, DLL), lai radītu aizkavēšanos, kuru vēlaties. [/Quote] Vai jūs varētu man kādu piemēru, lai īstenotu manu moduli! thank you very much!
 
Es nevaru dot noderīgi piemēri, jo tie lielā mērā atkarīgi no jūsu esošo dizains, pulksteni likmes, mikroshēmas veidu, un cik tālu var atkāpties no šīs 45ns mērķa. Varbūt jums ir 20MHz pulksteni. Varbūt jūs varat vienkārši iet savu signālu, izmantojot vienu clocked D-flop, lai iegūtu 50ns kavēšanās. Varbūt 50ns ir pietiekami tuvu, lai 45ns. Varbūt jūsu ierīcē ir DLL. Varbūt jūs varat konfigurēt viens no tiem, lai radītu jaunu pulksteni, kas ir asimetrisks no jūsu kapteinis pulksteni ar 45ns. Varbūt jūs to varat izmantot, lai radītu savu kavējas signālu. Varbūt DLL nervozēt neradīs problēmas. Pārāk daudz maybes! Es gribētu mēģināt pārveidot laika, lai viss notiek jauki un tīri uz pulksteni malām. Ka dažreiz prasa palielināt pulksteni ātrumu.
 
Paldies echo47 Es zinu, jums ir! Es tikai gribu, lai kontrolētu SRAM, lai izlasītu data.The SRAM READ Laiks prasa man, lai šī kavēšanās es vēlos izmantot Xilinx Spartan 2 īstenotu savu dizainu! Es varu dot savu SRAM READ TIMING CE OE UB LB kontrolē valsts mašīna, tāpēc es tikai izmantot DOUT informēt datu ir gatavs, var iegūt, ja A = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!) Cits sākt = adrese, / / ja nosacījums izpildīts dot no adrese # 7 DOUT = 1'b1; / / ja toha ir beidzies, DOUT informēt datu gatavi # 45 = 17'bz_zzzz_zzzz_zzzz_zzzz; / / skaidrs adrese DOUT = 1'b0; / / skaidrs DOUT beigām
 
Es esmu ziņkārīgs, kāpēc jums ir nepieciešams, lai peldēt (iestatīts uz Z) adrese autobusu. Vai jūs koplietošanas autobusu ar citām ierīcēm? Ja Jūsu SRAM ir saistīta tikai ar FPGA, tad jums var mēģināt pārāk grūti, lai jūsu signāliem izskatās tieši tāpat kā SRAM datu lapu. Jums nav nepieciešams peldēt adrese autobusu, vai jāuztraucas par toha, vai notīriet DOUT uz nulli vai gaida tieši 45ns. Tipisks veids, kā lasīt no statiskas SRAM ir izejas adresi un kontroles signāliem vienā pulksteni, un pēc tam slēdzeni nolasīt datus vēlāk pulkstenis (pēc TAA). Ja jums tiešām ir nepieciešams peldēt adrese autobusu, tad to var izdarīt tajā pašā laikā jūs slēdzeni nolasīt datus. Bet parasti vienīgais signāls, kam jāpievērš peldēja ir datu autobusu, lai jūs varat pārslēgties no rakstīšanas ar lasīšanu.
 
Paldies echo47 es vēlos izmantot savu FPGA kontrolēt divas SRAM un tajā pašā laikā, kad viens SRAM lasīja citu SRAM tika rakstiski! ja rāmis attēla satvert two SRAM funkciju mainīt otru
tipisks veids, kā lasīt no statiskas SRAM ir izejas adresi un kontroles signāliem vienā pulksteni, un pēc tam slēdzeni nolasīt datus vēlāk pulkstenis (pēc TAA). Ja jums tiešām ir nepieciešams peldēt adrese autobusu, tad to var izdarīt tajā pašā laikā jūs slēdzeni nolasīt datus. Bet parasti vienīgais signāls, kam jāpievērš peldēja ir datu autobusu, lai jūs varat pārslēgties no rakstīšanas ar lasīšanu
Vai jūs varētu man dažus piemērus?
 
Es nekad neesmu redzējis stand-alone piemērs SRAM interfeisu. Atmiņas cikls laiks parasti apvienotas kopējā projekta dizainu, lai SRAM interfeisu kļūst gandrīz nulle rindas kodu. Varbūt tur apmācība kaut kas parāda pamata lasīšanas / rakstīšanas koncepcijas. Ikviens redzējis vienu?
 
Hi echo47
moduli top (CLK, clkout); parametrs dalītājs = 25000000 / 400 / /, jābūt pat numuru ievades CLK; raj [15:00] skaits = 0; produkcija raj clkout = 0; vienmēr @ (posedge CLK) sākt skaits
 
Lūdzu precizēt "ir zaudēta vilnis clkout = STX". Kas "pats", notiek? Ja es saprotu jūsu veiktās izmaiņas:
Code:
 moduļa augšējā (CLK, skaits, clkout); parametrs dalītājs = 25000000 / 400 / / ir pāra skaitlis ieejas CLK, izejas raj [15:00] skaits = 0; izejas raj clkout = 0; vienmēr @ (posedge CLK) sākt skaits
 
Paldies echo47 Ļaujiet man mēģiniet vēlreiz! lai redzētu counter palaist es speciāli noteikti uzskatāmas par izejas!
 
Es redzu savu clkout pāriet uz X. Tas nenotiek, kad es modelētu modulis, kas I ievietojis pāris ziņas atpakaļ. Mans "skaits" ir modulis izejas too. Lūdzu, mēģiniet manu moduli, vai arī parādīt mums savu kodu. Arī pastāstiet mums termiņiem jūsu simulācijas produkciju - jūs apgriezts to pie jūsu jpeg. Lūk, dažas pirmās rindiņas manu pastu maršruta simulāciju. Sākotnējā 100ns aizkavēšanās ir notikusi mikroshēmas globālās reset impulsu.
 
Paldies echo47 Es zināju, kas noticis ar mani! Kad es izmantot 40ns pulksteņa laika informāciju, tāpēc man nepareizu rezultātu! kad es izmantot pulksteni, kā jūs 10ns rezultāts pašas tiesības kā jums! `Termiņā 1ns / 1ps es, bet es joprojām nezinu, kāpēc es noklusējuma vērtība saņems nepareizu rezultātu! par laimi, es 146ns iegūt tiesības rezultāts! paldies [/quote]
 

Welcome to EDABoard.com

Sponsor

Back
Top