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