Asynchronni logika -- simulace/analyza (konkretne: hranovy R-S klopny obvod); postesk a prozatimni vysledky

Ondrej leguanolog na seznam.cz
Sobota Červen 1 07:44:36 CEST 2013


Čistě ze zvědavosti jsem si překreslil to první schéma do ISE a zkusil 
odsimulovat post-route v ISimu a normálně to projde. I nějaké to 
zpoždění tam naměřím. Pokud chcete tak, mohu poslat projekt.

Dále čistě ze zvědavosti bych se rád zeptal, v jaké aplikaci najde 
takováto asynch. logika uplatnění (v FPGA), protože prostě nevěřím, že 
nelze použít synch. FSM.

Ondřej



Dne 31.5.2013 13:52, Marek Peca napsal(a):
> Zdravim vas,
>
> v ramci slozitejsiho FPGA obvodu jsem narazil na nutnost v jednom 
> miste tvorit cosi malickym asynchronnim automatem. Zjednodusena 
> podmnozina ulohy nakonec ukazuje na neco, cemu jsme neformalne rikali 
> "hranovy R-S klopny obvod". Popisu tezkosti, ktere jsem potkal pri 
> pokusu to odsimulovat a zkusenosti s tim, jak se to nakonec aspon 
> trochu povedlo v detskem simulatoru Logisim. Uzavru dotazem, zda nekdo 
> zkusenejsi v asynchronismech poradi, kam pro lepsi SW nastroje.
>
> /* Uvodni poznamka s podekovanim: async logika me vzdy uvadela v uzas, 
> stejne jako analogove pocitani; zpocatku jsem se ji snazil ovladnout, 
> ale nikdy na to nedoslo. Diky konfere 
> http://list.hw.cz/pipermail/hw-list/2005-September/251339.html
> a naslednem vyvoji na FPGA jsem vlastne nikdy async logiku nepouzil, 
> vzdy jsem se snazil o prisne synchronni navrh a pro naprostou vetsinu 
> uloh to vyhovelo vyborne. V FPGA nam posledni dobou funguji rekl bych 
> az dost netrivialni veci (patrne za obzorem predstavivosti vyrobce) a 
> vse ciste na hranovych D-klopnych obvodech, vzacne nejake osamocene 
> RSko u vstupu.
>
> Formalne jsem absolvoval logicke obvody u Doc.Bayera na katedre ridici 
> techniky, ale nikdy v skutecnem zivote jsem metodiku asynchronniho 
> navrhu nepouzil.
> */
>
> Cilem hry je tedy hranovy R-S klopny obvod -- vzestupna na S nahodi do 
> 1, vzestupna na R shodi do 0, zadna omezeni na signaly nejsou (vyjma 
> tradicniho zakazu soucasne hrany, jedineho hazardu, ktery nejde nijak 
> osetrit).
>
> Zde 3-4 ruzne podoby obvodu, ke kterym jsem dosel:
> http://rtime.felk.cvut.cz/~pecam1/logisim/edge_rs.png
> (Bloky [F] ignorujte, jako by to byl kus dratu; bude vysvetleno nize.)
>
> 1. byl prvotni navrh s ohledem na bezne pouzivane dlazdicky z 3-LUT 
> FPGA: hranovy D-k.o. a mux.
>
> 2. je totez co (1.), ale D-k.o. je rozepsan jako dve D-latche za sebou.
>
> 3. je uz vysledek systematickeho navrhu podle skolni kucharky s tim, 
> ze jako pametovy clen bylo zvoleno samotne zpozdeni hradel/dratu.
> /* Kucharka v strucnosti: FSM diagram -> slouceni stavu -> sousednost 
> stavu a s ni souvisejici kodovani, pripadna zmena prechodu ci pridani 
> pruchoziho stavu tak, aby kodovani rozumne vyslo -> prepis symbolu do 
> 0/1 -> implementace pro konkretni druh pametovych clenu */
> (Priznavam, ze jsem zde nedoresil, zda je komb.logika bezhazardni...)
>
> 4. vysledek tehoz systematickeho navrhu, ale jako pametove cleny 
> zvoleny obycejne (urovnove) R-S klopne obvody.
>
> Pri simulaci (viz dale) se zda, ze se vsechny implementace chovaji 
> shodne. Prijemne zjisteni a pro me dulezite bylo, ze ackoli se (2.) 
> lisi od (4.), ve skutecnosti jsou logicke mapy (2.) i (4.) jen ruznymi 
> realizacemi zcela totoznych prechodu. Jedna se o tak trochu 
> ovlivnovanou stastnou nahodu, ze mi takova "ekvivalence" vysla, ale 
> myslim, ze to tak dopadnout nemuselo, pri trochu jinem kodovani.
>
>
> Obvod (1.) v FPGA funguje, zda se, dobre, coz asi nikoho neprekvapi.
>
> Podelim se nyni o zkusenosti se simulaci. Nejprve jsem vyexportoval z 
> fyzicky syntetizovaneho obvodu FPGA (tj. s odhady zpozdeni) strukturu 
> maker do VHDL. Podobvod, zobrazeny na (1.), byl realizovan na fyzicke 
> urovni naprosto shodne s obrazkem.
>
> To jsem pak zkousel simulovat v GHDL. Bez uspechu, vadilo mu porad, ze 
> tam ma same nedefinovane hodnoty ('X'). Trochu ho chapu, snazil jsem 
> se mu pomoct a zadat nejaky pocatecni stav, ale bud jsem to delal 
> spatne, nebo to nepomohlo. Co bylo zajimave, ze mezi temi 'X' obcas 
> problikly nejake zive urovne '0'/'1' a pak se to zas vratilo do 'X'.
>
> Zkusil jsem to tedy v mene experimentalnim ModelSimu, vysledek byl na 
> pohled shodny.
>
> Zasmusil jsem se a stahl Logisim: 
> http://ozark.hendrix.edu/~burch/logisim/
> V Logisimu jsem pred 3 lety videl hranovy R-S jednomu geniovi ve skole 
> pres rameno, ale bohuzel jsem si nezapamatoval podrobnosti.
>
> Zajimave bylo, ze krome (1.) v nem nefungovalo nic z (2.,3.,4.). Duvod 
> byl zase ten, ze signaly byly ve stavu Error a odmitaly se z nej 
> vyhrabat.
> Co je zvlastni, tak nektere asynchronni struktury v tom funguji dobre 
> -- zahada. Po neschopnosti nalezt reseni v Logisimu samotnem jsem 
> vyuzil moznosti doprogramovat si do nej v Jave mini-knihovnicku 
> soucastek a doplnil jsem soucastku "Force" [F], ktera nedela nic 
> moudrejsiho, nez ze pripadny Error ci Uknown nahradi nulou.
>
> Pro pripadne zajemce ke stazeni zde:
> http://rtime.felk.cvut.cz/~pecam1/logisim/lgsim-force.jar
> a obvod:
> http://rtime.felk.cvut.cz/~pecam1/logisim/edge_rs.circ
> (Po otevreni .circ se Logisim zrejme zepta, kde je knihovna s Force, 
> staci ukazat ten .jar a melo by to chodit.)
>
> Napsal jsem autorovi Logisimu, jestli je to nejaka moje blbost, ze to 
> nechodilo, nebo zda je opravdu nutno vyforcovat ten chybovy stav pryc.
>
>
> Nevim, jak by si s ulohou poradilo tkgate, ale nezkousel jsem to.
>
>
> K teto situaci se vazi me dotazy na zaver:
>
> a) mate nejaky osvedceny program na simulaci asynchronnich automatu?
>
> b) vite o nejakem SW nastroji, ktery by umel cloveku pomoci se 
> syntezou asynchronniho automatu, tj. vyresit redukci FSM, kodovani 
> stavu s trampolinami a pomocnymi stavy? Idealne pak i na nejakou 
> mnozinu logickych clenu namapovat funkce (ale to se obecne resit moc 
> neda, tak klidne i bez tohoto posledniho kroku)?
>
> c) vite o nejakem SW nastroji, ktery by umel opak, a sice ze 
> zakresleneho async. obvodu by vyhodnotil, kolik ma stavovych bitu, pro 
> vsechny kombinace vstupu by spocital, ktere stavy mohou byt stabilni, 
> urcil jejich prechody a zpetne vyplivnul tabulku FSM s komentarem, zda 
> kodovani samotne obsahuje hazard pri prechodu mezi stavy, nebo ne?
>
>
> Obzvlaste c) by se hodilo pro validaci automatu navrzenych stylem 
> tuzka&papir. Mozna to nejde resit v kratsim nez exp case, ale pro 
> takove mrnave automaty o par bitech by to asi melo cenu.
>
> Urcite by si clovek pral jeste mnohem vymakanejsi nastroje na async 
> logiku, ale vzhledem k tomu, ze doposud jsem o zadnem poradnem 
> syntetizacnim nastroji neslysel, zrejme je tezke vubec vymyslet 
> smysluplne zadani pro takovy syntetizer. Ale (b,c) podle me smysl dava 
> a v O(2^n) bych to snad nabastlil i sam, ale jelikoz by se to ve FIFU 
> pitomosti asi nedostalo do cela ani do smrti, radsi bych hotove reseni 
> od nekoho, kdo tomu navic rozumi nesrovnatelne lip.
>
>
> Dekuji a preji pekny den,
> Marek
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>



Další informace o konferenci Hw-list