• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

Logicke Systemy - Skuska

Started by v_oid, 04.01.2012, 05:20:38

« predchdzajce - alie »

v_oid

Kto ide na skusku 9.1?

Co vsetko sa ucite?

---

Otazka: V teorii som natrafil na toto:

- zovseobecnena prechodova a vystupna funkcia
- normalny tvar zadania konecneho automatu
- iterovane slovo
- zadanie automatu vo forme regularnych vyrazov
atd..

Chcem sa spytat ci cosi s tymto bude na skuske, teda ci sa to mam ucit -- lebo tomu vobec nerozumiem.

Vdaka

totaluser

chcem sa opytat starsich spoluziakov, ako je vhodne volit termin skusky z LS
napr z PG bola rada ist hned 4.1, lebo moze byt zhovievavejsi

zalezi pri LS ci pojdem zaciatkom alebo koncom januara?

Leclair

#2
Ak si vytiahnes priklad, ktory sa da riesit sposobom ze derivaciou udalosti zostrojis automat(obvod ktory na vystupe generuje 1 ak vstupne slovo je zakoncene xxxx), a tak to budes aj riesit ty, tak  sa ta moze spytat na tie uvedene hovadiny. Kedze funkcia automatu sa da popisat regularnou udalostou a to suvisi s regularnymi vyrazmi a pod.

Moze sa spytat co je to regularna udalost, univerzalna udalost, ak je zakoncene napr koncovkou 0011, tak vies ze udalost , ktoru automat ma rozpoznat svojim vystupom bude vyjadrena ako regularny vyraz R={0 u 1 } . 0011, kde {0u1} je nejaka forma iteracie, teda mnozina univerzalnych prvkov 0 a 1, ktore sa vzdy budu(mozu) na vstupe opakovat a 0011 je zakoncenie.
Ale zeby na tom baziroval, asi nie.

filip27

chcem sa spytat vie niekto ak opresne prebieha skuska?? ...ako viem, ze na zaciatku dostanem dva priklady ktore treba vypocitat a potom ked ich dopocitam co dalej? ...cakam na vysledok z prikladov alebo idem  na ustnu skusska a tam sa dozviem ako som dopadol z prikladov? ...a co sa tyka teorie tak to je tak, ze tam viac menej vravim ako som riesil dane priklady + sa ma moze nieco este opytat? ...

v_oid

Ake priklady sa mam ucit?

Okrem tych zakladnych, tj synteza konbinacnych/sekvencnych obvodov, minimalizacia.

Optimalne kodovanie moze byt? Neviete niekto, kde je to vysvetlene? Najlepsie dajaka zahranicna stranka, lebo toto nase pochopit.. :/

A Mealy automaty zvyknu byt? Lebo take daco sme teda nerobili.

v_oid

Ok, trosku som pokrocil. :) To vsetko, co som spominal na skuske moze byt.

Zostava mi otazka: WTF je MEDA? Neviete niekto o ukazkovom priklade? V urobenych zadaniach neviem nic najst.

Vdaka

Leclair

#6
Navrhnite riadiaci obvod pre riadenie režimov integrátora na analogovom počítači MEDA. Režímy integrátora majú byť ovládané impulzným signálom a1, ktorý nastavuje vždy nový režím integrátora v poradí PRÍPRAVA – RIEŠENIE – ZASTAVENIE...Ak však signál a2, ktorý indikuje zahltenie, je rovný 1, nesmie byť integrátor v stave RIEŠENIE t.j. prechádza do stavu ZASTAVENIE resp. zostáva v režime PRÍPRAVA. Pre nastavenie jednotlivých režimov integrátora potrebujeme dva signály, ktorých hodnoty v jednotlivých režimoch sú nasledovné:
Režim:   PRÍPRAVA   RIEŠENIE   ZASTAVENIE
Signály
   z1                1                   0                  0
   z2                1                   0                  1
- Pri návrhu použite EA typu T a LČ typu NAND.

Dalsia verzia prikladu:
Navrhnite riadiaci obvod pre riadenie režimov integratora na analogovom poictaci MEDA. Režimy integratora maju byt ovladane impulznym signalom a1, ktory nastavuje vzdy novy rezim integratora v poradi PRIPRAVA - RIESENIE - ZASTAVENIE ... Ak však signal a2, ktory indikuje zahltenie, je rovny 1, nesmie integrator byt v stave RIESENIE t.j. prechadza do stavu ZASTAVENIE resp. zostava v rezime PRIPRAVA. Pre nastavenie jednotlivych rezimov integratora potrebujeme dva signaly, ktorych hodnoty v jednotlivých režimoch sú nasledovné:

Režim: PRIPRAVA    RIESENIE    ZASTAVENIE
Signály
z1            0              1                 0
z2            0              1                 1

Pri návrhu použite EA typu T.

K tomu meda snad s inymi signalmi a Nor http://tinypic.com/view.php?pic=2iihp47&s=5 a http://tinypic.com/view.php?pic=o6ehef&s=5


v_oid

Vdaka, good guy.

Inak kebyze dakto v KE sa chce zajtra stretnut a popocitat niektore z tych prikladov (optimalne kodovanie, protisubehove, MEDA, atd.) tak mi napiste na vojto (ackovkruzku) me (bodka) com.

filip27

Quote from: Leclair on  07.01.2012, 02:25:33
Navrhnite riadiaci obvod pre riadenie režimov integrátora na analogovom počítači MEDA. Režímy integrátora majú byť ovládané impulzným signálom a1, ktorý nastavuje vždy nový režím integrátora v poradí PRÍPRAVA – RIEŠENIE – ZASTAVENIE...Ak však signál a2, ktorý indikuje zahltenie, je rovný 1, nesmie byť integrátor v stave RIEŠENIE t.j. prechádza do stavu ZASTAVENIE resp. zostáva v režime PRÍPRAVA. Pre nastavenie jednotlivých režimov integrátora potrebujeme dva signály, ktorých hodnoty v jednotlivých režimoch sú nasledovné:
Režim:   PRÍPRAVA   RIEŠENIE   ZASTAVENIE
Signály
   z1                1                   0                  0
   z2                1                   0                  1
- Pri návrhu použite EA typu T a LČ typu NAND.

Dalsia verzia prikladu:
Navrhnite riadiaci obvod pre riadenie režimov integratora na analogovom poictaci MEDA. Režimy integratora maju byt ovladane impulznym signalom a1, ktory nastavuje vzdy novy rezim integratora v poradi PRIPRAVA - RIESENIE - ZASTAVENIE ... Ak však signal a2, ktory indikuje zahltenie, je rovny 1, nesmie integrator byt v stave RIESENIE t.j. prechadza do stavu ZASTAVENIE resp. zostava v rezime PRIPRAVA. Pre nastavenie jednotlivych rezimov integratora potrebujeme dva signaly, ktorych hodnoty v jednotlivých režimoch sú nasledovné:

Režim: PRIPRAVA    RIESENIE    ZASTAVENIE
Signály
z1            0              1                 0
z2            0              1                 1

Pri návrhu použite EA typu T.

K tomu meda snad s inymi signalmi a Nor http://tinypic.com/view.php?pic=2iihp47&s=5 a http://tinypic.com/view.php?pic=o6ehef&s=5


v tych preskenovanych vyratanych papieroch mi neico nesedi ...preco tam dal stav S'1 ked pri automate nie je vobec nakresleny ...preco namiesto toho nepouzil len pomlcky?? ...a vobec uz nechapem ako potom mohol dostat kodovanu mapu prechodov ...lebo vobec to podla toho nesedi ...

v_oid

Hrozi nam daco taketo na skuske?

Click for large view - Uploaded with Skitch

Leclair

To je to co som pisal vyssie, ze zostrojis automat pomocou derivacie udalosti, akorat je s tym problem ten ze budes musiet nasledne automat zredukovat pomocou algoritmu vytvarania maximalnych tried zlucitelnosti, teda tried ekvivalenciek,kedze automat je(bude) uplne urceny automat.

Je to vsak len jedna z moznosti ako to urobit a je len na tebe ako to urobis.

Jackson

Super...to co ste tu poslali vidim prvykrat v zivote :(

smelyzajo

ja dufam ze sa to do stvrtka naucim nejako vsetko pocitat jak som pozeral tak tych prikladov je pozehnane:D

v_oid

LOL uz sa aspon 10 ludi odhlasilo z pondelka :)

Inak pocujte, subohove kodovanie, ma toto byt na skuske? A ked hej, neviete ma nasmerovat na nejake vysvetlenie? Vdaka

smelyzajo

Quote from: v_oid on  07.01.2012, 23:12:57
LOL uz sa aspon 10 ludi odhlasilo z pondelka :)

Inak pocujte, subohove kodovanie, ma toto byt na skuske? A ked hej, neviete ma nasmerovat na nejake vysvetlenie? Vdaka



s coho si sa ucil priklady? nemas nieco s coho by som to pochopil nejaky dobry matros pre lamy

v_oid

Prvy priklad je lahky.

Pre druhy priklad vysledkom vsetkych prikladov je jednoduchy sekvencny obvod. Ked toto vies nemas problem. Preto si iba prejdi zadania a pozri sa, ako sa dostali k tomu obvodu. Napriklad taky sumator tam je, to je uplne jednoduchy Mealy automat. Vies si ho odvodit tym, ze si urobis do zosita binarne scitavanie.

Potom este moze byt to kodovanie -- optimalne je dobre na syntlogu vysvetlene, tam sa do tych tabuliek iba pocitaju prechody. No a to protisubehove teraz riesim, to tiez nechapem.

Leclair

Proste zakodovat stavy(vstupne, vnutorne, vystupne) musis, pretoze potrebujes kodovanu tabulku prechodov a vystupov(modifikovanu kodovanu tabulku prechodov pri asynchronnych SO) potrebujes pre zostrojenie kodovacich tabuliek budiacich a vystupnych funkcii. Kazdy vstupny/vnutorny/vystupny stav musi byt urceny jedinecnou kombinaciou prisl. premennych.

Pri kodovani by si mal stale dodrziavat tie dve podmnieky a to jednoznacnost, cize kazdemu stavu pridelit jednoznacne kombinacie vstup./vnut./vyst. premennych a optimalnost, cize to tebou zvolene kodovanie by malo viest na co najjednoduchsiu realizaciu budiacich a vystupnych funkcii.

Optimalne kodovanie sa vo vseobecnosti uskutocnuje rozne pre synchronne a asynchronne SO.
Pri synchronnych SO mas na vyber bud optimalne kodovanie pomocou pravidiel P1', P1 a P2 a P2' pre zakodovanie vstup., vnut. a vystupnych stavov. Druhou metodou(algoritmom) pre optimalne kodovanie synchronnych SO je algoritmus vychadzajuci z rozdeleni mnoziny vnutornych(vystupnych) stavov na triedy podla jednolivych vnutornych(vystupnych) premennych. Tato druha metoda vsak neumoznuje kodovanie vstupnych stavov.

Cize ak dostanes priklad syn. SO zadaneho tabulkou prechodou/vystupov a mas tam uvedene aby si pouzil optimalne kodovanie a nic viac. Mozes si vybrat z dvoch metod, bud pouzitie pravidiel alebo algoritmus vychadzajuci z rozdelenia mnozin stavov premennymi. Ak sa rozhodnes pouzit pravidla , je to dobre vysvetlene na syntlogu a da sa pochopit. Ak sa rozhodes pouzit druhu metodu, spravne by si mal zakodovat mnozinu vstupnych stavov podla pravidla P1', a pokracovat v kodovani vnutornych a vystupnych stavov podla algoritmu. Je to dost blbo vysvetlene v knihe a je tam snad i zle urcenie niektorych indexov, potom clovek tazko pochopi o co sa jedna.

Niektore sady prikladov ti priamo nehovoria by si pouzil optimalne kodovanie, ako napr plneie zasobnika(plnic tekutiny - zasobnik co len plni), davkovac tekutiny(zasobnik - pusta/vypusta - skripta). Cize zakodujes podla logiky. Mohol by si to este optimalizovat niektorym postupom ale neverim ze by sa to robilo takto, staci ti to urobit len spravne.

Pri asynchronnych SO, resp. pri danej sade prikladov sa vyzaduje odstranenie kritickych subehov. Na to sa pouzije algoritmus odstranenia kritickych subehov, cize jednotlive dvojice prechodov nemozu mat pri danom vstupe rovnake mnoziny prechodovych spolocnych medistavov. Moze dojst k nespravnej funkcii obvodu, kedze obvod by mohol prejst do nespravneho konecneho stavu cez niektory medistav. Plati to vsak len v pripade ze konecne stavy su rozne. Ak pri danom vstupe maju viacere dvojice prehodov spolocny konecny stav a urcitu spolocnu mnozinu medzistavov , cez ktore sa moze uskutocnit prechod do konecneho stavu, vznika tiez subeh , nie vsak kriticky.

Pri asynchronnom SO, zadaneho tabulkou prechodov/vystupov, potrebujes tiez nejak zakodovat vstupne vnutorne a vystupne stavy.
Videl som zadania, kde si proste povedali, ze zakoduju vstupne  a vystupne stavy "nejako" a dalej nic nerobili. Vstupne stavy by som zakodoval pravidlom P1' a vystupne stavy algoritmom  rozdelenia mnoziny vystupnych stavov na tiredy vystupnymi premennymi. Na zakodovanie vnutornych stavov pouzijes tiez algoritmus rozdelenia vnutornych stavov na triedy podla jednolivych  premennych, no najprv je potrebne odstranit kriticke subehy.

Aplikacia protisubehovo kodovania pozostava z 7(?) krokov a to:
1.Urcenie vstupneho stavu pri ktorom su vsetky vnut.stavy stabilne a rozviazania dvojic prechodov
2.Vytvorenie matice podmienok
3.Minimalizacia matice podmienok
4.Urcenie suboru hlavnych implikantov
5.Riesenie mriezky hlavnych implikantov
6.Vyber optimalneho kodu (tu sa riesi optimalne kodovanie pomocou algoritmu rozdelenia mnoziny vnut. stavov na triedy jedn, premennymi, riesenim je matica kodovania pomocou ktorej mozes zostrojit kodovaciu tabulku a mapu kodov vnut. stavov)

7.Zhodnotenie a riesenie kritickych subehov - moze sa stat, ze protisubehove kodovanie odstrani kriticke subehy , no mozu sa objavovat nekriticke subehy, ktore je potrebne odstranit, co sa   robi susednym kodovanim. Teda do mapy kodov, resp kodovacej tabulky doplnis (potrebne mozne) medzistavy a ich kody. Da sa to robit zistit aj z mapy kodov.
Potom zostrojis modifikovanu kodovanu tabulku(modifikovana preto lebo obsahuje (potrebne mozne) medzistavy s kodmi) a robis kontrolu na subehy. Subeh - meniaca sa viac ako 1 vnutorna premenna

[ Predstav si prechod zo stavu S3 s kodom 000  do stavu S0 s kodom 110 vznikne vznike pri vstupe X1 subeh, teda je potrebne dourcit mnozinu susednych medzistavov a to bud z mapy kodov alebo manualne, a to tak, ze su to tie stavy ktore vzniknu zmenou niektorej z meniacich sa vnutornych premennych , cize prechodove medzistavy by boli  Sa s kodom 010 a Sb s kodom 100.
Teda pre prechod S3 - S0 existuje mnozina U(3,0) = {S3,Sa,Sb,S0} a v mape kodov mozes vyznacit konfiguraciu medzistavov, ktore pri danom vstupe vedu na ten rovnaky koecny stav.

Ak pri tom istom vstupe X1 vznike subeh pri prechode dajme tomu zo stavu S2 s kodom 101 do stavu S1 s kodom 011. Tak medyistavy ziskame opat z mapy kodov, resp. to budu stavy ktore vzniknu zmenou niektorej z meniacich sa vnutornych premennych  cize prechodove medzistavy by boli  Sd s kodom 111 a Sc s kodom 001.
Teda pre prechod S3 - S0 existuje mnozina U(2,1) = {S2,Sc,Sd,S1},

Ako mozne potrebne medzistavy mozu samozrejme posluzit aj existujuce povodne vnutorne stavy.
Subehy ostali, no nie su kriticke. Dokaz z definicie, kedy prienik mnozin U(3,0) a U(2,1) je prazdna mnozina, pri j rozne od n,(rozne koncove stavy).]

No snad som nepopisal nejake bludy, ak ano opravte ma. LS forever :metal:

v_oid

Quote from: Leclair on  08.01.2012, 01:43:55
5.Riesenie mriezky hlavnych implikantov
6.Vyber optimalneho kodu (tu sa riesi optimalne kodovanie pomocou algoritmu rozdelenia mnoziny vnut. stavov na triedy jedn, premennymi, riesenim je matica kodovania pomocou ktorej mozes zostrojit kodovaciu tabulku a mapu kodov vnut. stavov)


Tak tieto posledne kroky nechapem. Ako sme z tohto:



Dostali toto:



PS: Vdaka za tvoju namahu, urcite to pomoze vsetkym, co sa budu pripravovat na LS.

Leclair

#18
To s tou mapou je trochu cudne. V prvom rade si myslim ze je zle oznacene zahlavie tabulky, cize nie S/X ale malo by byt X/S, potom by boli prechody do neurceneho stavu cez chybajuci 4 vstupny stav v stlpci.

CIze v tom syntlogu je uloha kde mas 3 vstupne stavy X0, X1 a X2, 4 vnutorne stavy S0, S1,S2, S3 ale nemas urcene vystupne stavy ... :|, dokonca ani tabulku vystupov cize nemas sancu vidiet ako si ONI zakodovali vstupne stavy. Nemozes z toho co mas pouzit pravidlo P1', lebo nezistis pocty poziadaviek pv z tabulky vystupov, a teda neurcis vazeny sucet.. proste bordel.

Cize oni si nejak zakodovali vstupy, ty nevies ako, mozes tak akorat skumat.

No ale k tej mriezke hlavnych implikantov, ak ju vyriesis , dostanes funkciu pokrytia, tam je ze Ø = ABA, no podla mna by malo byt len Ø = AB, ale to nie je problem. Teda na zakodovanie vnutornych stavov budes potrebovat 2 premenne.
Keďže existuje len jeden iredundantný súbor hlavných implikantov, ktorý obsahuje 3 hlavné implikanty A a B, kde A = 1010, B = 1100  máme na výber len jednu možnosť protisúbehového kódovania pre výber optimálneho kódovania, ktorú aj použijes. Nemusis teda hladat vhodny optimalny kod pomocou algoritmu , ktory vychadza z rozdelenia vnutornych stavov na triedy.

Každý hlavný implikant určuje rozdelenie stavov podľa premenných a každá vnútorná premenná pi rozdeľuje množinu vnútorných stavov na podmnožinu, kde premenná nadobúda hodnotu 0 a na podmnožinu, kde nadobúda hodnotu 1.
Kodovaciu tabulku dostanes take ze zoberies kodovaciu maticu a prvy stlpec predstavuje kodovanie stavu S0, druhy S1, treti S2 a 4 ty S3

A kedze optimalnych kodov je vela , aj tu existuje niekolko moznosti a volieb kodu. Ak pouzijes hlavny implikant A a B , dostanes kodovane stavy S0 - 11, S1 - 01, S2 - 10 a S3 - 00. Pre poriadok , ak by si upravil tento kod na strukturne ekvivalentny( ako - syntlog ) dostanes S0 - 00, S1 - 10, S2 - 01 a S3 - 11.
Ak pouzijes hlavny implikant B a A(vymenis riadky) , dostanes kodovane stavy S0 - 11, S1 - 10, S2 - 01 a S3 - 00. Pre poriadok , ak by si upravil tento kod na strukturne ekvivalentny dostanes S0 - 00,S1 - 01, S2 - 10 a S3 - 11. Robi sa to preto aby si mal stav S0(aj X0, Y0) zakodovany ako 00(000 pri 3 premennych).

Nasledne zostrojis kodovanu tabulku prechodov. V tej tabulke je pouzita volba HI B a A, teda kody stavov S0 - 11, S1 - 10, S2 - 01 a S3 - 00.
V hore uvedenej tabulke sa postupne doplnia prechody a nasledne aj kody stavov. ZIstil som, ze kodovanie vstupov je  nasledovne: vstup X0 ma kod 10, X1 - 00 a X2 - 11, a chybajuci 4 vstup ma kod 01.

Teda tato tabulka ma usporiadane stavy(v zahlavi) podla kodov vnutornych stavov v poradi 00, 01, 10 , 11 co zodpoveda stavom S3,S2, S1 a S0. A tiez usporiadane vstupy(v zahlavi tab.) podla kodov stupnych stavov v poradi 00, 01, 10 a 11, co zodpoveda vstupnym stavom X1, X3(nedefinovany, cize prechod z vnutornych stavov je neurceny), dalej X0 a X2.

Cize v dalsom kroku sa zakoduju nasledujuce stavy, pre dany stav a dany vstup. To sa urobi z tabulky prechodov.
Cize pre prvy riadok tabulky(vstup X1 s kodom 00) >> δ(S3,X1) = S2, a S2 ma kod 10, dalej  δ(S2,X1) = S0, a S0 ma kod 11, dalej δ(S1,X1) = S0 a S0 ma kod 11 a nakoniec δ(S0,X1) = S3 a S3 ma kod 00.
Takto sa urcia kody vsetkych stavov S(t+1).

Ak mas takto pekne(nepekne) zakodovanu tabulku tak robis kontrolu na subehy. Subeh vznikne pri danom prechode ak sa meni viac ako jedna vnutorna premenna, porovnanim S(t) a S(t+1) pre dany vstup.
Cize napr. pre vstup X1(prvy riadok tabulky) zo stavu S3 s kodom 00 prechadza pri vstupe X1 do stavu S2 s kodom 01, pozries sa na kody, 00 vs 01 meni sa len jedna premenna , teda subeh nevznika. Takto sa skontroluje kazdy prechod, pri kazdom vstupe. Ak by vznikol subeh , potreba hladat medzistavy, teda odstranenie subehov susednym kodovanim, ale to som snad uz popisoval.

Velky wall of text snad som sa nikde nepomylil, nechsa sa mi to teraz kontrolovat :)

ppeess

Quote from: MuF123 on  11.01.2012, 03:20:50
Quote from: Leclair on  09.01.2012, 02:24:35Subeh vznikne pri danom prechode ak sa meni viac ako jedna vnutorna premenna, porovnanim S(t) a S(t+1) pre dany vstup.
Cize napr. pre vstup X1(prvy riadok tabulky) zo stavu S3 s kodom 00 prechadza pri vstupe X1 do stavu S2 s kodom 01, pozries sa na kody, 00 vs 01 meni sa len jedna premenna , teda subeh nevznika. Takto sa skontroluje kazdy prechod, pri kazdom vstupe. Ak by vznikol subeh , potreba hladat medzistavy, teda odstranenie subehov susednym kodovanim, ale to som snad uz popisoval.
toto znie celkom logicky no vyplyva mi z toho to, ze staci aby som si spravil medzistav na kazdu mozno zmenu stavu, v ktorom by vznikal subeh a len to cele optimalne zakodoval ako asynchronne a nemusel by som riesit subehy.
tento napad je samozrejme zly, lebo keby to bolo take jednoduche tak sa to bude pouzivat - nevies ale jednoducho vysvetlit preco by to zlyhalo?
Takymto sposobom som videl vyrieseny priklad a zlyhalo to v tom ze nedostal plny pocet bodov :D :D

Leclair

Quote from: MuF123 on  11.01.2012, 03:20:50
toto znie celkom logicky no vyplyva mi z toho to, ze staci aby som si spravil medzistav na kazdu mozno zmenu stavu, v ktorom by vznikal subeh a len to cele optimalne zakodoval ako asynchronne a nemusel by som riesit subehy.
tento napad je samozrejme zly, lebo keby to bolo take jednoduche tak sa to bude pouzivat - nevies ale jednoducho vysvetlit preco by to zlyhalo?

Samozrejme da sa to robit ako si napisal, a to je to susdene kodovanie,ze kompletne odstranis subehy, problem je v tom ze by sa ti neumerne zvysil  pocet vnutornych stavov, viacej premennych na zakodovanie vnutornych stavov a teda aj vacsi pocet elementarnych automatov a kedze sa baziruje na co naoptimalnejsej realizacii obovdu ujo baca by ta asi nepochvalil ;p
Algoritmus protisubehoveho kodovania je len ina forma riesenia, reto v tych zadaniach sa vyzaduje protisubehove a nie len susedne kodovanie.

Inak take pocitadlo sa da riesit aj asynchronne s pouzitim odstranenia seckych subehov napr.

Leclair

#21
Cize k tomu prikladu s analogovym pocitacom MEDA, priklad je zda sa v poriadku.
Cize proces abstraktnej syntezy bude nasledovny :

1. Definovanie vstupnych signalov, urcenie mnoziny vstupnych stavov
Mame dve vstupne signaly a1 a a2, kde a1 - vstupny signal, ktory nastavuje vzdy novy rezim v poradi PRÍPRAVA – RIEŠENIE – ZASTAVENIE a signal a2 je signal indikujuci zahltenie.
Ako kazdy elektricky signal, aj tieto signaly mozu byt 0 alebo 1 a su privedene na vstupny kanal realizovaneho obvodu.
Cize v skratke, ak a1=0 , potom obvod nenastavuje novy rezim a ak a1 = 1, potom obvod nastavuje novy rezim v uvedenom poradi. //Ak by sme mali len tento vstupny signal, tak potom mnozina vstupnych stavov by bola X0 a X1, kde v skratke X0 - nenastavuje novy rezim, X1 - nastavuje novy rezim. Viac kombinacii neexistuje, teda X = {X0,X1}.//
No v tomto pripade existuje este jeden vstupny signal a2, tj. a2 = 0 - neindikacia zahltenia a a2 = 1 - indikacia zahltenia.

Teda kombinaciou 2 vstupnych premennych a1, a2 dostaneme 4 mozne stavy, ktore mozu vzniknut, resp. objavit sa na vstupe realizovaneho obvodu - X0(kombinacia vstupnych premennych(kod stavu) -00),  X1(01), X2(10), X3(11). Overime ci vsetky vzniknute stavy aj pouzijeme, teda  X0 - nenastavenie noveho rezimu pri neindikujucom zahlteni - ok, X1 - nenastavenie novehu rezimu pri indikujucom zahlteni - ok,X2 - nastavenie noveho rezimu pri neindikujucom zahlteni - ok a X3 - nastavenie noveho rezimu pri indikujucom zahlteni.
Dostali sme mnozinu zakodovanych  vstupnych stavov X = {X0,X1,X2,X3}.

2. Definovanie vystupnych signalov, urcenie mnoziny vystupnych stavov
Mame dve vystupne signaly z1 a z2, kde z1,z2 - vystupne signaly, ktore nastavuju prislusny rezim PRÍPRAVA, RIEŠENIE, ZASTAVENIE s takymi hodnotami, ako je to uvedene v tabulke. Cize dostavame vystupne stavy(jeden pre kazdy rezim) nasledovne Y0(kombinacia vystupnych prem. z1, z2 - 00), Y1(01) a Y3(11).
Dostali sme mnozinu zakodovanych  vystupnych stavov Y = {Y0,Y1,X3}.

3.Definovanie mnoziny vnutornych stavov, urcenie mnoziny vystupnych stavov
Predpokladam, ze obvod pozostava z 3 vnutornych atavov S0 - "priprava", S1 - "riesenie", S2 - "zastavenie". Ako sa obvod chova pri danych vstupoch a aktualnych vnut. stavoch mozno urobit intuitivne a hned kreslit graf prechodov a vystupov, ja rozpisem v kroku 4.

4.Zostrojenie KA
Obvod mozno realizovat ako Mealy, aj ako Moore, no obvod budem realizovat ako KA typu Moore, kedze obvod pracuje v impulznom rezime a kazdemu vnutornemu stavu mozno priradit prave jeden vystupny stav.
Ak sa obvod nach. v pociatocnom stave S0 - "Priprava" (je mu priradeny vystupny stav Y0) na vstupe sa objavi X0, X1 - nenastavuje novy rezim, teda ostava v stave S0.
Ak sa na vstupe objavi X2 - nastavi dalsi rezim v poradi -  "RIesenie", teda obvod prejde do stavu S1. A ak sa vstupe objavi stav X3(11) - odvod ostane v stave - S0, kedze zo zadania vyplyva, ak je a2=1 obvod  zostava v rezime PRIPRAVA.

Pribudol novy stav S1 - "Riesenie" (je mu priradeny vystupny stav Y3) a skumame prechody pri kazdom vstupe. Ak sa na vstupe objavi X0 - nenastavuje novy rezim , ostane v S1.
Ak sa na vstupe objavia X1,X3 - vstup s indikaciou zahltenia, obvod musi prejst do stavu S2 - "Zastavenie"( vyplyva zo zadania) a ak sa na vstupe objavi X2 - nastavenie dalsieho rezimu v poradi S2 - "Zastavenie".

Pribudol novy stav S2 - "Zastavenie "(je mu priradeny vystupny stav Y1) a a skumame prechody pri kazdom vstupe. Ak sa na vstupe objavi X0 - nenastavuje novy rezim , ostane v S2.
Ak sa na vstupe objavia X1,X3 - vstup s indikaciou zahltenia, obvod musi ostat v  stave S2 - "Zastavenie"( vyplyva zo zadania) a ak sa na vstupe objavi X2 - nastavenie dalsieho rezimu v poradi S0 - "Priprava".

Koniec abstraktnej syntezy, test ci mozno redukovat KA :laugh: nakreslenie grafu prechodov a vystupv. To su tie dva grafy Mealy a Moore na tych obrazkoch, co su v podstate spravne.
Mozno pristupit k strukturnej synteze obvodu.
Prvym krokom je kodovanie vstupnych vystupnych a vnutornych stavo. Kodovanie vstupov a vystupov uz mame mozme zakodovat vnutorne stavy. Kedze sa jedna o asynchronny obvod je potreba zvolit take kodovanie aby nevznikali  subehy. Na zakodovanie 3 vnutornych stav potrebujeme 2 premenne, nejake p1 a p2.
Hladame take kodovanie, kde vsetky prechody medzi stavmi su elementarne, cize meni sa len jedna premenna. Kedze stavu S0 priradili kod 00, stavu S1 kod 11 a stavu S2 kod 01( podobne ako kodovanie vystupov), vidime ze pri prechode zo stavu S0 do stavu S1 sa meni viac ako jedna vnutorna premenna. Je potrebne dourcovat prechodovy medzistav, pre ktory plati,ze pri kazdom vstupe bude jeho nasledujucim stavom stav S1(to je ta "1" na tom obrazku). Dany medzistav ziskame zmenou niektorej sa meniacej premennej , tj. dostaneme stav S1' s kodom 10.Pri kazdej dalsej dvojici prechodov uz subeh nevznika, cize dany subeh, ktory tam bol na za zaciatku ani nemoze byt kriticky.

Mame 4 stavy, no na zakodovanie 4 vnut. stavov potrebujeme stale len 2 prmeenne, cize potreba pouzitia 2 EA, a sice narastol pocet vnutornych stavov, ale neviedlo to k zvyseniu zlozitosti navrhu budiacich funkcii obvodu.

Safyia


revelc

Som do toho jelen, takze mam par otazok:
Quote from: Leclair on  13.01.2012, 00:30:05
Obvod mozno realizovat ako Mealy, aj ako Moore, no obvod budem realizovat ako KA typu Moore, kedze obvod pracuje v impulznom rezime a kazdemu vnutornemu stavu mozno priradit prave jeden vystupny stav.
Co to znamena ze pracuje v impulznom rezime ? Lebo z tych prednasok som tomu vobec neporozumel... viem iba, ze asynchronny SO moze pracovat vo fundamentalnom a impulznom rezime. Mohol by si to blizsie vysvetlit?
Quote from: Leclair on  13.01.2012, 00:30:05
Kedze sa jedna o asynchronny obvod je potreba zvolit take kodovanie aby nevznikali  subehy.
Ako zistim, ze sa jedna o asynchronny SO?  :embarassed:

Vdaka za odpovede.
Čo môžeš urobiť dnes odlož na pozajtra a ziskaš deň voľna.

"I'm a man of simple tastes. I enjoy dynamite...and gunpowder...and gasoline! "

ppeess

Quote from: revelc on  13.01.2012, 05:08:00
Som do toho jelen, takze mam par otazok:

Quote from: Leclair on  13.01.2012, 00:30:05
Kedze sa jedna o asynchronny obvod je potreba zvolit take kodovanie aby nevznikali  subehy.
Ako zistim, ze sa jedna o asynchronny SO?  :embarassed:

Vdaka za odpovede.
[/quote]

Hladame take kodovanie, kde vsetky prechody medzi stavmi su elementarne, cize meni sa len jedna premenna. Kedze stavu S0 priradili kod 00, stavu S1 kod 11 a stavu S2 kod 01( podobne ako kodovanie vystupov), vidime ze pri prechode zo stavu S0 do stavu S1 sa meni viac ako jedna vnutorna premenna. Je potrebne dourcovat prechodovy medzistav, pre ktory plati,ze pri kazdom vstupe bude jeho nasledujucim stavom stav S1(to je ta "1" na tom obrazku). Dany medzistav ziskame zmenou niektorej sa meniacej premennej , tj. dostaneme stav S1' s kodom 10.Pri kazdej dalsej dvojici prechodov uz subeh nevznika, cize dany subeh, ktory tam bol na za zaciatku ani nemoze byt kriticky.