Delsimas prieš užduotį.

M

munchies

Guest
Aš naudojant VHDL ir aš noriu pristatyti vėlavimą prieš paskiriant du signalai yra lygus. Mano mąstymas yra jungiklis, kuris persikelia iš visų nulių ar null vielos, aš noriu priimti signalą iš po x kiekį clk_cycles. Ar tai įmanoma? Mano problema yra, kad mano dizainas išvedė šiukšlių duomenis prieš visus teisingus duomenis propaguoja, per jį visiškai, noriu priskirti produkcijos iki nulio arba NULL iki vėlinimo. Ar tai įmanoma? Ačiū už bet kokią pagalbą ar diskusijų.
 
jūsų grandinės eilės? nes ji galite naudoti, siekiant nustatyti, kada priskirti produkcijai. ką jūs sakote, nėra naudinga, kiek aš suprato. sakote, pavyzdžiui, turite vielos ir norite, kad ji neturi laiko vertė (Null), ir kaip jums priskirti vertę, kai norite. NULL yra neįmanoma HDL. nes kiekviena viela ir registruotis atsitiktinis dydis iš naujo, nes jie yra faktinis bistabilny kietojo kūno prietaisai. ką jūs galite padaryti, kad pavyzdžiui, ciklo skaitiklis. ir sako, jūsų grandinės baigia savo skaičiavimus po 150 laikrodis ciklų. ir jūs galite turėti išvesties registrą, yra viskas, net iki 150 ciklo skaičius nulių. ir jūs galite nustatyti, kad produkciją po 150. ciklą. ir jūs taip pat gali turėti vieną bitų signalo sakykite "Viskas". ir jums tai padaryti signalo olnly po perleidimo rezultatas registre baigtas. Šiuo būdu jūs galite pasakyti kitą modulį, kad šis abroad dalis apskaičiuojama produkcijos vertė ir reikšmė yra pasirengę būti imamasi iš savo produkcijos registro. tai yra įprastas būdas daryti tai, ką jūs prašyti. tikiuosi, tai padeda.
 
, modeliavimas , galite atidėti signalo priskyrimas naudojant [font = Courier New] po [/FONT], tačiau tai tikriausiai yra ne tai, ko norite: [url = http://www.gmvhdl.com / delay.htm] VHDL Susipažinkite - vėlinimo modelis [/url] Jūs tikriausiai reikia sukurti signalą, kuris žino, kada šiukšlių rausva per savo modulį, ir naudoti kad pereiti galia įjungti arba išjungti. Siūlau jums pridėti kažką panašaus į jūsų modulio pabaigoje:
Code:
 finalOutput '0');[/KODAS]
 
Gerai, ačiū jums už tai. Aš žinau, ką noriu jį grįsti, todėl aš noriu naudoti kažką panašaus į
Code:
 jei (Fire'event ir gaisrinės = '1 '), tada ...... ComputationReady = '1 ';
Kaip man tada nustatykite uždelsimo aš noriu? Šiuo atveju tai 4 kartus. Aš manau, bet laiko yra nenaudingas ne modeliavimo. Taigi man reikia kažką panašaus į:
Code:
 palaukti 8 * clk'event
ar kažką panašaus?
 
dont naudoti pirma mintis - jūs kuriate laikrodis, kuris sukels jums įvairiausių laiko problemų. Geriausias tik skaitiklis ir laukti, kol jis pasiekia tam tikrą vertę.
 
Negalima sukelti auga krašto "ugnis", kad būdas, galėtumėte naudoti "ugnis", kaip naują laikrodį, o ne valdymo signalas. Vietoj to, patikrinkite, sena vertė ir palyginti naują vertę. Tada pradėti skaičiuoti 4 laikrodžio ciklai. Gali būti padaryta, perkeliant į poslinkio registrą vertybes, arba sukurti valstybės kovos mašinos su skaičiavimo 4 laikrodžio ciklai. Leiskite padaryti pamainą užsiregistruoti čia: Darant prielaidą, kad deklaracijas, kaip šie:
Code:
 signalo ugnies, liepsnos, aktyviai: std_logic; signalas skaičiavimo: std_logic_vector (4 downto 0); [/KODAS] jūs kažkuo panašios į šį savo sinchroninio procesas: [KODAS jei rising_edge (CLK), tada jei kūrenamų = '0 'ir gaisro = '1' tada pradėti skaičiuoti aktyviai
 
Konvejerinio dizainas, jums dažnai nori turėti DAV (duomenų) dujotiekį, kad vėlavimas Handshake signalas kartu su duomenimis. Jis ne tik vėluoja duomenų pasiruošę signalą, bet leidžia daug naujų vertybių kelionės duomenų kelią, tuo pačiu metu. Jei duomenų kriaukle registruoti duomenis pagal DAV signalas, jums nereikia kaukė negalioja išvesties duomenis. Jei duomenų kelias veikia nuosekliai, o ne konvejerinė, pvz paprasta DAV kovos serijos dalikliu vienetą, būtų pakankamai.
 

Welcome to EDABoard.com

Sponsor

Back
Top