Riešenie oneskorenie signálu vo VHDL kódu

K

koce

Guest
Ahoj všetci, ja používam Alter MAXI CPLD pre môj projekt. Aj program, pomocou software Quartus II a jazyk VHDL. S CPLD Aj ovládanie prepínačov pomocou jednej globálnej hodinový signál. Pre jeden vypínač, chcem zapnúť ani pri nábežnej hrane svetového času, ale ku oneskorenie zapnutia (10ns napríklad). V mojom kódu VHDL sa používa všeobecný typ dát. obyčajný (Tdelay: čas: = 10ns) Aj táto konštanta použiť, keď chcem, aby moje oneskorenie signálu: ak (clock'event a hodiny = 1) s1 = '1 'po Tdelay, VHDL syntax overenie je OK, ale mám problém, keď chcem urobiť finálnu kompiláciu. Chyba je niečo ako typ dobe nezodpovedá reťazca Literály [color = red] [/color] Myslím, že je to preto, že mám použiť všeobecný typ dát. Ak niekto poznáte iný spôsob, ako signál delayin VHDL kód Prosím, podeľte sa so mnou. Pomôžete mi veľa! : D Vďaka Bojan
 
Dobrý deň, je nutné použiť balíčky, v ktorých môžete definovať predvolené hodnoty.
 
To je veľmi podivné, že by malo fungovať OK dobe je už skalárne dátový typ, vo VHDL štandardu, by nemala dávať žiadne problémy, ak sa používa vo všeobecnom skúste nový fyzický typ čas! pozor aj na vzdialenostiach v kóde, ktorý by mohol byť problém (ale povedal, syntax v poriadku)
 
Ahoj všetkým, to sa stalo ma, keď som simulovať s ModelSim. To sa dá vyriešiť tým, že definuje všetky konštanty (fonctions. ...) v balíčku, ktorý ste invoque v prevedení súboru pomocou príkazu použiť. Je tiež potrebné zahrnúť tento súbor do projektu. Pri kompilácii tohto balíka musí byť zostavený ako prvý.
 
preto, že to nie je syntizable kód. Neexistuje spôsob, ako softvér môže prísť na to, ze k oneskoreniu signálu, okrem 10ns je drobná trochu dlho, takže by mal vyzerať a upraviť návrh
 
malá poznámka, nie je vhodné používať ako oneskorenie, pretože "s1 = 1 po Tdelay" len používané pre simuláciu (modelSim. ..). Keď píšete, ako že sa to nemôže byť syntetizovaný v hardware. Jeden spôsob, ako prekonať tento: Môžete si prejsť signál cez nejaký register, pretože každý register má meškanie, a môžete vypočítať podľa vás návrhu špecifikácie Good luck
 
Mnohokrát ďakujem vám všetkým za vaše úsilie, aby mi pomohol. Vy všetci ste tak láskavý! Pokúsim sa oneskorenie signálu na ceste usine hardware posuvných registrov! : O) Bojan
 
Som si istý, o tom tiež, ale môžeme spomaliť signál, ale pridaním # oneskorenie nie? stačí použiť príkaz ako je tento, ak (clock'evan a hodiny = 1) potom S1 = # 10 '1 ', / / ​​priradiť dáta po 10 jednotiek krát, záleží na časovom meradle ur # 10 S1 = 1, / / thedata sa po 10 jednotiek krát
 
Dobrý deň! Toto je môj prvý príspevok v tomto fóre: P V CPLD máte aspoň dva spôsoby, ako oneskorenie signálu v závislosti na tom, koľko času budete potrebovať na toto omeškania. Prvý prístup, môžete zvážiť, je logické bunky, za 10 ns meškanie 2 alebo 3 LCELLs stačí (pre CPLD Alter EPM7xxx). Všimnite si, že sa jedná o priame použitie brány so žiadnymi vstup hodín! Stačí ísť na schému úroveň a pridať LCELLs. Druhý prístup je FIFO. Dĺžka FIFO (počet bitov) bude závisieť na oneskorenie, ktoré chcete, a čas, ktorý používate. Ako príklad, ak by ste mali 100MHz hodiny a chcel 100ns meškanie budete potrebovať 10 bitov. Poznamenať, že nebudete mať dostatok prostriedkov na CPLD pre veľké meškanie ... Ide!
 
v Verilog u priradiť oneskorenie tým, že '#' a potom sa u 2 Určte časovú jednotku
 
Odpustite, Verilog ... Ale v mojich znalostí '#' nie je určený nepriateľom syntézy a koce chce syntetizovať code.better pridať oneskorenie logických buniek alebo posuvného registra. ide o
 
[Quote = koce] Ďakujem vám všetkým za vaše úsilie, aby mi pomohol. Vy všetci ste tak láskavý! Pokúsim sa oneskorenie signálu na ceste usine hardware posuvných registrov! : O) Bojan [/quote] Môžete tiež použiť dffs!
 

Welcome to EDABoard.com

Sponsor

Back
Top