Pagalba apie Simuliuoti problema

M

Matrix_YL

Guest
Sveiki visi Mano verilog modulio galite pamatyti bandymų bangos ir numatomi Modeliavimo rezultatai yra teisingi, "imituoti elgsenos modelių". bet kai aš imituoti Rašyti išversti verilog modelis ", - Laukiami Modeliavimo rezultatai yra gana skirtingi Ar galite pasakyti, kas negerai su juo? ačiū!
 
Prašome apibrėžti "visai kitokia". Po maršrutą modeliavimas metu jūs pamatysite visą laiką vėluoja ir skews, tačiau bendras logikos funkcija turėtų būti kaip savo elgesio modeliavimas, nebent esate stumti lustas per greitai.
 
Patikrinkite, theSetUp / Laikykite pažeidimas Įspėjimai metu modeliavimas. Be to, jums reikia paleisti UR modeliavimo 100 ns, ir po to taikomi įėjimo vektoriai. Šis 100 ns pasaulio Atkurti. Gali būti ir kitų priežasčių, per kuri reikės daugiau explaination problemos.
 
Noriu išėjimo mano adreso [16:00] kai pre_ld_Frame_out 1 ir išvesties 17'bz_zzzz_zzzz_zzzz_zzzz pre_ld_Frame_out yra 0 arba išvesties mano adresas po 45ns kada imituoja Behaviorl Modelis yra ok padaryti imituoti Rašyti išversti verilog modelis produkcija [ 16:00] visada 17'bz_zzzz_zzzz_zzzz_zzzz aš hople galite matyti mano modulis daugiau informacijos!
 
jei = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!); Kitas pradėti = adresas; # 7 DOUT = 1'b1; # 45 A = 17'bz_zzzz_zzzz_zzzz_zzzz DOUT = 1'b0; pabaigos
1) vėlavimas nėra synthesizable U gali gauti įspėjimą už tai. 2) A = 17'bz_zzzz_zzzz_zzzz_zzzz; => 'll būti padaryta = adresas; =>' ll būti padaryta U R, gauti modeliavimo nesutapimus, kaip kai pre_ld_Frame_out = 0 = 17'bz_zzzz_zzzz_zzzz_zzzz; DOUT = 1'b0; turėtų būti atsakymas . Ar tai atveju?
 
Yra du nuotrauką -----> mano Simuliuoti Simuliuoti Behaviorl Modelis ir rezultatus, modeliuoti Rašyti-Versk
 
Gerai .. Taip UR problema, jei gaunu tai teisingai, kad signalas "" atnaujinta "Adresas" Post-Xlate modeliavimo. Tai? Na, ir tiesiog padaryti paprastą pratimą, kuris gali išvalyti UR Šią abejonę ir duosiu U daugiau abejonių, bet aš galiu bet tai bus tikrai padės U. Jūs tiesiog perkelti "# 45 = 17'bz_zzzz_zzzz_zzzz_zzzz;" prieš "= adresas visada @ (adresas) bloko ir UR modeliavimas.
 
Manau, kad tai kada imituoja Rašyti išversti verilog modelis visuomet buvo šių Įspėjimai ĮSPĖJIMAS: Xst: 854 - "read_a_frame1.v" eilutę 24: Nedomina pradinį pareiškimą. ĮSPĖJIMAS: Xst: 916 - "read_a_frame1.v" eilutė 63: Vėlavimas ignoruojami sintezei. Aš noriu žinoti, kodėl? ir ar Simuliuoti Rašyti išversti verilog modelis visada ignoravo Vėlavimas Ačiū!
 
Tai ne simuliatorius, kad, nepaisant vėlavimo pareiškimą, fizinės ir sintezės vieta ir maršrutas įrankiai. FPGA / CPLD nėra savavališkos vėlinimo linijų, todėl negali įgyvendinti savo kreipiamasi vėlavimo. Tai yra pagrindinė problema. Jums reikia rasti nors kitu būdu (gal poslinkio registrą, arba galbūt DLL), siekiant generuoti vėlavimo norite. Tie pradinį pareiškimą įspėjimai yra varginantis. FPGA / CPLD * galėtų * įgyvendinti dauguma pradinių sąlygų, bet sintezė įrankiai tiesiog ignoruoti juos. Gal kada nors įrankiai gaus protingesni.
 
[Quote = echo47]. Jums reikia rasti nors kitu būdu (gal poslinkio registrą, arba galbūt DLL), siekiant generuoti vėlavimo norite. [/Quote] Ar galite duoti man pavyzdžiui įgyvendinti mano modulis! Labai ačiū!
 
Aš negaliu duoti naudingų pavyzdžių, nes jie labai priklausomi nuo esamą dizainą, laikrodis tarifus, lustas tipo, kaip toli galite nukrypti nuo tos 45ns tikslas. Gal turite 20MHz laikrodis. Gal galite tiesiog perduoti signalą per clocked D-flop gauti 50ns vėlavimo. Gal 50ns yra pakankamai arti, kad 45ns. Galbūt jūsų prietaise yra DLL. Gal galite sukonfigūruoti vieną iš jų sukurti naują laikrodį, įžambiai iš savo pagrindinio laikrodžio 45ns. Gal jūs galite naudoti ją sukurti savo uždelsto signalo. Gal DLL drebėjimas nesukels jokių problemų. Per daug maybes! Norėčiau pabandyti pertvarkyti laiko, kad viskas vyksta gražus ir švarus laikrodis kraštų. Kad kartais reikia didinti Clock Rate.
 
Ačiū echo47 Žinau, jūs tai! Aš tik noriu kontroliuoti Skaityti data.The SRAM SRAM Skaityti Laikas reikalauti man Šis vėlavimas, aš noriu naudoti Xilinx Spartan 2 įgyvendina mano dizainas! Galiu duoti mano SRAM Skaityti LAIKAS "CE" O. UB LB kontroliuoja valstybės mašina, todėl aš tiesiog naudoti DOUT informuoja duomenų yra pasirengusi gali gauti, jei A = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!); Kitas prasideda = adresas; / / kai sąlyga patenkintas apdalinti adresas # 7 DOUT = 1'b1 / / kai tOHA yra daugiau, Dout informuoja duomenų pasiruošę # 45 = 17'bz_zzzz_zzzz_zzzz_zzzz / / aišku, adresas DOUT = 1'b0; / / aišku, DOUT pabaigoje
 
Man smalsu, kodėl jums reikia plaukti (nustatyti iki Z) adresas autobusų. Ar jūs keitimuisi su kitais prietaisais autobusas? , Jei jūsų SRAM yra prijungtas tik FPGA, tada jums gali būti Trying Too Hard, kad jūsų signalai atrodo lygiai taip pat, kaip SRAM duomenų lapą. Jums gali neprireikti plūduriuoti adresas autobusų, ar nerimauti tOHA, ar aiškiai DOUT nuliui, ar palaukti tiksliai 45ns. Tipiškas būdas skaityti nuo statinės SRAM išėjimo vienas laikrodis adresą ir valdymo signalus, ir tada sklende skaityti duomenis vėliau laikrodį (po TAA). Jei tikrai reikia plaukti adresas autobusas, tada galite tai padaryti tuo pačiu metu, kai skląstis yra skaityti duomenis. Bet paprastai tik signalas, kad turi būti apsispręsta duomenų magistralės, todėl galite pereiti nuo rašymo skaityti.
 
Ačiū jums echo47 Noriu naudoti savo FPGA kontrolės du SRAM ir tuo pačiu metu, kai vienas SRAM kitą SRAM skaitė rašė! kai rėmo vaizdas buvo įsikabinti du SRAM'S funkciją keisti kiekvieno kitas [citata] tipiškas būdas skaityti nuo statinės SRAM į išėjimo adresą ir kontrolės signalus vienas laikrodis, ir tada sklende skaityti duomenis vėliau laikrodį (po TAA). Jei tikrai reikia plaukti adresas autobusas, tada galite tai padaryti tuo pačiu metu, kai skląstis yra skaityti duomenis. Tačiau paprastai tik signalas, kad turi būti apsispręsta duomenų magistralės, todėl galite pereiti nuo rašymo svarstymo metu [/quote] Ar galite duoti man keletą pavyzdžių?
 
Aš niekada matė atskiras SRAM sąsajos pavyzdys. Atminties ciklo laikas paprastai yra sujungti į bendrą projektą, todėl SRAM sąsaja tampa beveik nulio linijos kodą. Gal yra pamoka kažkur, kad parodo pagrindinio skaityti / rašyti sąvokas. Kas nors matė?
 
Sveiki echo47
modulis viršų (CLK, clkout); parametras daliklis = 25000000 / 400 / / turi būti lyginis skaičius įvesties CLK; reg [15:00] count = 0; produkcijos raj clkout = 0, visada @ (posedge CLK) pradėti skaičiuoti
 
Prašome paaiškinti "prarado bangos clkout = STX". "Tas pats vyksta? Jei aš suprantu jūsų pakeitimai: [kodas] modulis viršų (CLK, kiekis, clkout); parametras daliklis = 25000000 / 400 / / turi būti lyginis skaičius įvesties CLK; išėjimo reg [15:00] count = 0; produkcijos raj clkout = 0, visada @ (posedge CLK) pradėti skaičiuoti
 
Ačiū echo47 Leiskite bandykite dar kartą! už kovos paleisti specialiai nustatyti produkcijos laikomos!
 
Matau savo clkout keičiasi X. Tai neturi atsitikti, kai aš imituoti modulio, kad aš parašė prieš porą pranešimus. Mano "skaičius" modulio išvestis per. Prašome išbandyti savo modulį, arba parodyti mums savo kodą. Taip pat pasakykite mums savo modeliavimo išėjimo laikotarpį - užauginamus jį išjungti jūsų jpeg. Štai pirmas kelias eilutes mano pašto maršruto modeliavimas. Pradinė 100ns vėlavimo priežastis yra pasaulio lustas naujo impulso.
 
Ačiū echo47 aš žinojau, kas yra negerai su manimi! Kai aš naudoju laikrodis laiko informaciją 40ns, todėl gaunu neteisingas rezultatas! kai aš naudoju laikrodis kaip tu 10ns rezultatas pačią teisę, kaip jūs! Laiką 1ns / 1ps aš, bet aš vis dar nežinau, kodėl aš numatytąją reikšmę gausite neteisingas rezultatas! Laimei, aš 146ns gauti teisę rezultatas! ačiū labai [/quote]
 

Welcome to EDABoard.com

Sponsor

Back
Top