280 likes | 382 Views
Digitális technika 2. - ZH feladattípusok (rövid összefoglaló). Tóth Gábor, 3. éves mérnök informatikus 2011. március 24. E1-E2. A funkcionális elemekről szóló pdf-ből (és a Benesóczky tanár úr féle könyvből) tökéletesen fel lehet rá készülni.
E N D
Digitális technika 2. - ZH feladattípusok (rövid összefoglaló) Tóth Gábor, 3. éves mérnök informatikus 2011. március 24.
E1-E2 • A funkcionális elemekről szóló pdf-ből (és a Benesóczky tanár úr féle könyvből) tökéletesen fel lehet rá készülni. • Általában fel kell ismerni egy komparátort, összeadót, shiftregisztert, számlálót, vagy multiplexert, és le kell írni, hogy a betűvel jelölt be-és kimeneteket hogyan nevezik. • Ezeket utána bővíteni, kaszkádosítani kell a megfelelő lábak összekötésével.
E3 • Szinte csak a számlálókra megy rá ez a feladat. • Készíteni kell aszinkron, vagy szinkron, fel, vagy le számlálót, a megadott modulus alapján. • Ha szükséges, a feladatban megadott kapukat is fel lehet használni. (Általában, ha adnak egy kaput, azt fel is kell használni!) A 2006-os ZH-ban a 2 bemenetű kapuval nem valósítható meg a kapcsolás, helyette egy 3 bemenetűt kell használni. • Aszinkron és szinkron számlálóknál oda kell figyelni, hogy mikor kell reset-elni!
E4 • Legtöbbször memóriákat kell kaszkádosítani, de a memó írás/olvasási idődiagramját is kérdezhetik. • A kaszkádosítás szempontjából (szinte) lényegtelen, hogy ROM vagy RAM memóriát kell összekötni. • Egy példán mutatom be, hogyan is kell kaszkádosítani…
E4 • A fenti példában adott két ROM, Address0-Address12 bemenetekkel, és Data0-Data7 kimenetekkel. • (2009-es ZH-ban 4 darab RAM-ot kellett összekötni megfelelően, érdemes a későbbiekben azt is megnézni!) • Először nézzük meg, hogy hogyan is épül fel egy 8 kbyte-os ROM.
E4 • 8 kbyte-os ROM • Az /RD (Read) bemenet engedélyezi a ROM olvashatóságát. • (RAM esetében van még egy /WR (Write) bemenet is, ez engedélyezi a RAM írhatóságát.) • A /CS (Chip Select) bemenet a ROM-hoz való hozzáférést engedélyezi. • (A kettő bemenet (RD, CS) első ránézésre hasonló funkciókat valósít meg, de a későbbiekben meglátjuk, hogy mégis van értelme mindkét bemenetnek…) • Az Axx (Address_xx) bemenetekkel címezhetők meg a memória egyes rekeszei. • A Dxx (Data_xx) kimeneteken az éppen megcímzett rekesz tartalma jelenik meg.
E4 • 8 kbyte-os ROM Rekesz felépítése • Ebből a felírásból már könnyen számítható a kapacitása: • rekeszenként 1 byte-ot tárol • 2^13 bittel címezhető == 8192 • Vagyis: 8192*1 = 8192 byte = 8 kbyte. • (Ez még nem a feladat része, csak értelmeztük, hogy mi micsoda.)
E4 • 8 kbyte-os ROM • Ennyi elmélet már elég ahhoz, hogy 8 kbyte-os ROM-ból 16 kbyte-osat készítsünk. • A feladatnak megfelelően az alábbi be-és kimeneteket kell elkészíteni: • A13-A0, D7-D0, /CS, /RD
E4 Cél: A13-A0, D7-D0, /CS, /RD • A kimenteket D7-D0-ként kezeljük továbbra is, ezekkel nem kell semmit csinálni. • Az azonos /RD bemeneteket összekötjük egymással, tehát itt tartunk: • Megj.: ha két RAM-ból kellene egyet csinálni, akkor nem csak a /RD bemeneteket, hanem a /WR bemeneteket is össze kellene kötni páronként. (Tehát RD-t RD-vel, és WR-t WR-rel.)
E4 Cél: A13-A0, D7-D0, /CS, /RD Ezután két eset szokott következni: • A feladat csak az A12-A0 címek használatát írja elő. Ekkor egy demultiplexert készítünk, aminek bemenete logikai ‘1’, select lába a /CS, kimenete pedig a két ROM /CS bemenetei. Ekkor a kapcsolás így nézhet ki: select := /CS DEMUX ‘1’
E4 Cél: A13-A0, D7-D0, /CS, /RD • A másik eset, (amit a jelenlegi feladat kér,) hogy az Address tartományt egészítsük (A13). Ebben az esetben az A13 bemeneten lévő érték jelöli ki, hogy melyik memóriát szeretnénk elérni.
E5 • Elméleti kérdések • Érdemes utoljára hagyni ezt a feladatot. Egyrészt, ha nem vagy biztos az elméleti tudásodban, akkor ne tölts vele 5-nél több percet, másrészt csak 4 pontért szoktak adni ilyen feladatot. • Rossz válaszokra NEM jár mínusz pont. Lehet tippelni!
F1 • Egy egység funkcionális blokkvázlatának megtervezése. Az alábbi rajz az összes ilyen típusú feladat alapváza. (Lehet, hogy az elnevezések eltérőek lehetnek, pl.: ready, jelez, Z…) Ha a többi részét nem tudod felrajzolni a feladatból, legalább ezt rajzold fel, és néhány pontot ez is jelent:
F2 • Funkcionális elemekből, (kicsit) „perverz” módon felépített kapcsolást takar ez a feladat. (Lehet, hogy csak egy egyszerű számláló, vagy irányt változtatható shiftregiszter, de valamilyen egzotikus kapcsolás is lehet…) • Itt általában csak egy út járható, ha nem szeretnéd elrontani: külön papírra, vagy a feladat mellé (ahol van hely) le kell írni, hogy a 0/1 bemeneti értékekre, milyen kimeneti értékeket kapunk. • Ezeket több „órajelre” érdemes végigjátszani. Pl.: ha valamilyen bemeneti kombinációra 001 jelenik meg a kimeneten, majd ugyanerre a bemeneti kombinációra 010 jelenik meg, akkor gyanítható, hogy az egy felfelé számláló egység, de lehet, hogy csak shiftel...
F3 • Nem tudom, hogy ebben az évben lesz-e ilyen feladat, mert úgy olvastam levlistán, hogy elvileg még nem vettétek. Ha mégis lenne, akkor itt egy kis segédlet, hátha így tisztább lesz a kép. • A mikroprogramot tartalmazó táblázat a diákat lapozva lépésről-lépésre töltődik ki. • Érdemes jól begyakorolni ezt a feladattípust, mert elég sok pontot ér! • (A 2005-ös ZH F3 megoldását írom le, mert egy állapot el van szabva a mintamegoldásban!) • Tanács: először értelmezd a diában leírtakat, majd csináld meg papíron is, hogy jobban rögzüljön.
2005-ös ZH_F3 feladat • A kitöltést mindig a C B A oszlopokkal kezdjük! • A folyamatábrán megnézzük, hogy az egyes állapotokban milyen betűk (állapot nevek) vannak a téglalapokba írva. • Látható, hogy a • 0. állapotban C, • 1. állapotban semmi, • 2. állapotban B • 3. állapotban A, és így tovább… • Ezeket tehát beírjuk a táblázatba: • Az állapotok 2 bites számrendszerben • könnyen kódolhatóak. • Táblázatnak megfelelően: • C: 100 • B: 010 • A: 001 • AB: 011 • CA: 101…
2005-ös ZH_F3 feladat Ezután célszerű kitölteni az utolsó, feltétel oszlopot. Ehhez az ábrából a rombusz alakzatokat kell figyelni.(A feltétel jelenleg F0, ami a kapcsolásban az alsó MPX select bemenete.) Ha nincs egy állapotban feltétel, akkor azt ,,don’tcare’’-kéntkezeljük. 0. állapotban nincs rombusz, ezért F0: don’tcare 1. állapotban „y” a feltétel, „y”-tól függünk, ezért a MPX select lábát (F0) 1-be állítjuk. (Megj.: ha y==1, akkor a második állapotba lépünk, ha y==0, akkor maradunk az elsőben. – folyamatábra alapján!) 2-3. állapotban nincs feltétel don’tcare 4. állapotban „x” a feltétel, „x”-től függünk, ezért F0-nak 0-nak kell lennie. (Megj.: ha x==0, akkor az ötödik állapotba lépünk, ha x==1, akkor a harmadikba. - folyamatábra alapján!) 5. állapotban „x” a feltétel, „x”-től függünk, ezért F0-nak 0-nak kell lennie. 6-7. állapotban nincs feltétel don’tcare
2005-ös ZH_F3 feladat Ha eddig eljutottunk, már fél siker. A következő lépés felfogható az utolsónak, mégis most töltjük ki a táblázat nagy részét, az előzőleg beírt feltételek alapján! A Jxn részek (Jc0, Jb0, stb…) az ugrási/lépési címeket takarják. 0. állapotban nincs feltétel, ezért csak előre lépünk. Hova is? Az 1-es állapotra (001) az ábra alapján. Ezt be is írjuk a táblázatba…
2005-ös ZH_F3 feladat Az 1. állapotba lépve elérünk egy feltételhez, y-hoz, ezért csak azt figyeljük az alsó MPX-nél! Ha „y” értéke 0, akkor az 1. állapotban maradunk egy hurokkal, ha „y” értéke 1, akkor tovább lépünk a 2. állapotba. (Nézd meg a folyamatábrát!!!) A kapcsolásban ez a következőképpen fest: ha y == 0, akkor az alsó MPX kimenete (Y) is 0 lesz. Ekkor a felső MPX 0-t kap a select bemenetére, ezért a Jc0, Jb0, Ja0 bemenet választódik ki, tehát a Jc0, Jb0, Ja0 helyekre kell beírni azt, hogy y==0 esetén mi történjen. Azt szeretnénk, hogy y==0 esetén az 1. állapotban maradjunk, tehát 001-et kell a táblázatba írni. Ha y==1 lesz, akkor az alsó MPX kimenete (Y) is 1 lesz, ezért a felső MPX Jc1, Jb1, Ja1 bemeneteire fogunk írni. Mit is? A 2. állapotba akarunk lépni, ezért a 010 értéket. =0 |1 =0 |1
2005-ös ZH_F3 feladat 2-es és 3-as állapotoknál nincs külön feltétel, csak tovább lépünk. Értelemszerűen: 2-es állapotból 3-as állapotba, 3-as állapotból 4-es állapotba.
2005-ös ZH_F3 feladat A negyedik állapot nagyon hasonló az elsőhöz, csak itt „x” a feltétel. Ha x==0, akkor tovább lépünk az 5. állapotba, ha x==1, akkor pedig a 3. állapotba ugrunk. (folyamatábra alapján!) Ha x==0, akkor az alsó MPX kimenete (Y) is 0 lesz, ezért a felső MPX-ből a Jc0, Jb0, Ja0 bemenetek választódnak ki. Mivel x==0 esetén az 5. állapotba fogunk lépni, ezért ide 101-t kell írni. Ha x==1, akkor az alsó MPX kimenete (Y) is 1 lesz, ezért a felső MPX-ből Jc1, Jb1, Ja1 bemenetek választódnak ki. Mivel x==1 esetén a 3. állapotba ugrunk, ezért ide 011-t kell írni. =0 |1 0 |1=
2005-ös ZH_F3 feladat Az 5. állapotból szintén 2 állapotba (6. vagy 7. állapot) ugorhatunk az „x” feltételtől függően. Ha x==1, akkor a 6. állapotba lépünk, ha x==0, akkor a 7. állapotba. Ha x==1, akkor az alsó MPX kimenete (Y) is 1 lesz. Emiatt a felső MPX bemenetei közül, a Jc1, Jb1, Ja1 választódnak ki. Mivel x==1 esetén a 6. állapotba fogunk lépni, ezért ide 110-t írunk. Ha x==0, akkor az alsó MPX kimenete (Y) is 0 lesz. Emiatt a felső MPX bemenetei közül a Jc0, Jb0, Ja0 választódnak ki. Mivel x==0 esetén a 7. állapotba fogunk lépni, ezért ide 111-t írunk.
2005-ös ZH_F3 feladat Már csak a 6. és 7. állapotok maradtak! A 6. állapotból minden feltétel nélkül, állandóan az 1-be ugrunk (001). A 7. állapotból szintén minden feltétel nélkül, az 5-be ugrunk (101).
2005-ös ZH_F3 feladat Készen vagyunk!
Végszó Köszönöm, hogy elolvastad ezt a kis összefoglalót, remélem, hogy hasznos volt. Ha van kérdés, akkor írj a tantárgyi levlistára, és biztosan lesz olyan, aki tudja a választ. Ha extrém kérdés lenne, akkor a lentebb szereplő email címre is írhatsz, de NE a ZH előtti estén, mert nem biztos, hogy ráérek. (Tanulok, vagy egyéb elfoglaltság.) (Ha hibát találsz a diákban, akkor jelezd! Köszi! ) Cím: tgabor.flyr@gmail.com A levél tárgya legyen: digit_help Tanács: gyakorolj sokat! Ha csak nézegeted a megoldott ZH-kat, attól még nem biztos, hogy meg is érted (pláne ZH előtti este). A feladat szövege alapján próbáld meg reprodukálni a megoldásokat. Sikeres ZH-t kívánok!