Transcript Digit2_edu

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

Rekesz címe A12-A0 (13 bit)

0000000000000 0000000000001 0000000000010 0000000000011

Rekeszben tárolt adat (tetszőleges) D7-D0 (8 bit)

10110011 00000111 10000011 00011000

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: 1. 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: DEMUX

‘1’ select := /CS

E4

Cél: A13-A0, D7-D0, /CS, /RD

2. 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

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

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’t care’’-ként kezeljük.

0. állapotban nincs rombusz, ezért F0: don’t care 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’t care 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’t care

2005-ös ZH_F3 feladat

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).

Készen vagyunk! 

2005-ös ZH_F3 feladat

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: [email protected] 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! 