VHDL - cteni vstupu v processu

Milan milger@pobox.sk
Úterý Říjen 5 12:42:23 CEST 2004


To som rad ze so mnou suhlasite, ze najlepsia cesta k stabilite je 
synchronny navrh.

Milan

----- Original Message ----- 
From: "Danhard" <danhard@volny.cz>
To: "[HWnews]" <hw-list@mailman.nethouse.cz>
Sent: Tuesday, October 05, 2004 12:32 PM
Subject: Re: VHDL - cteni vstupu v processu


> To je tak, kdyz se pise ve VHDL bez hlubsi znalosti HW struktury na ktere 
> se
> to implementuje !
>
> Modelovat LATCH zpusobem, ktery tu byl uveden pro HDL, a ktery je
> bezproblemovy pro CPLD
> Q = L*D + !L*Q + Q*D;
> pro FPGA nejde pouzit, protoze tam neni ta funkce tvorena AND-OR matici, 
> ale
> multiplexem tabulky (obsahu RAM) a je hazardni, nakonec na asynchronni 
> zpetnou
> vazbu vas upozorni prekladac.
> Pokud to namodelujete jako asynchronni RS klopny obvod ve schematu, tak se 
> to
> prelozi skutecne do dvou LUT tabulek krizene propojenych, ale zase to bude
> rvat, ze tam mate nezadouci zpetnou vazbu. Nicmene se to nafituje spravne, 
> ale
> takovy KO je rozhodne nachlnejsi k metastabilte, nez vnitrni registr. 
> Kromtoho
> zpozdeni, ktera jsou v ceste zalezi skutecne jak se konkretni implementace
> nafituje, zatimco u CPLD jsou zpozdeni dana vicemene pevne propojovaci 
> matici.
> Ale proc to takhle bastlit, kdyz se da registr v CLB naprogramovat primo 
> jako
> LATCH ?
>
> Jestli to VHDL korektne jednoznacne nedela, tak je to bud blbe pouzita
> syntaxe, nebo to proste VHDL blbe preklada.
> Jak se to potom konkretne zadratuje, muzete potom zjistit treba v FPGA 
> Editoru
> :o)
> Problem je spis v tom, ze kazda asynchronni funkce generovana LUT tabulkou
> muze byt hazardni, a jestli takto generujete hodiny toho LATCHe, tak tam 
> muzou
> byt hyzardy, ktere zpusobi falesne nahrani latche :(
>
> Synchronni design je samozrejme u FPGA zadouci, a vsechny vstupy jsou na 
> to
> pripraveny tim, ze maji vstupni registr.
>
> U CPLD se daji pouzit na funkci LATCH take asynchronni S/R vstupy, takze 
> to
> vypada nejak takto:
>
> Q pin istype"reg";
>
> Q := 1;
> Q.clk = 1;
> Q.ap = D*L;
> Q.ar = !D*L;
>
> V podstate asynchronni load toho klopaku, ten samozrejme muze delat jeste
> synchronni funkci, ktera je tady nevyuzita.
>
> Danhard
>
>> Stalo sa mi ze implementacia korektne napisaneho LATCHu vo VHDL menila
>> preklad od prekladu chovanie /a nie v jednom pripade i ked uznavam ze to
>> boli vsetko FPGA/. Takze teraz robim iba synchronne, bez LATCH a viem ze 
>> ak
>> fitovanie  neprekroci oneskorenie definovane pouzitymi hodinami, 
>> opakovane
>> fitovanie je 100%. Co vobec neplati pre pre hazardy a rozne oneskorenia 
>> pri
>> asynchronnych dejoch.
>> Takze:
>> -zatial som sa vzdy uspesne asynchronnym rieseniam vyhol
>> -ak prekrocite max. oneskorenie klopak-klopak dane pouzitymi hodinami, 
>> tak
>> je to mozne
>> -nie preto ze by asynchronny navrh nevedeli, ale vnutorna struktura FPGA 
>> ho
>> neumoznuje spolahlivo implementovat /hlavna pricina-log. funkcia je
>> realizovana pomocou RAM!!!/
>> -a tie LATCH su fakt pravda i ked Xilinx sa tym nechvali, stalo sa mi to 
>> a
>> nie raz /ak nema suciastka priamo LATCH moznost, VHDL je vskutocnosti
>> implementovane asynchronne!!!/.
>>
>> Milan
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> HW-list@mailman.nethouse.cz
> http://mailman.nethouse.cz/mailman/listinfo/hw-list
>
>
>
>
> __________ Informacia od NOD32 1.884 (20041004) __________
>
> Tato sprava bola preverena antivirusovym systemom NOD32.
> http://www.eset.sk
>
> 




Další informace o konferenci Hw-list