Digitális technika 2

A VIK Wikiből
A lap korábbi változatát látod, amilyen Minkó Dávid József (vitalap | szerkesztései) 2017. február 4., 00:34-kor történt szerkesztése után volt. (→‎Házi feladat)
Digitális technika 2
Tárgykód
VIIIAA02
Általános infók
Szak
villany
Kredit
5
Ajánlott félév
2
Keresztfélév
van
Tanszék
IIT
Követelmények
KisZH
nincs
NagyZH
nincs
Házi feladat
5 db
Vizsga
írásbeli beugróval
Elérhetőségek
Levlista
vdigit2@sch.bme.hu

A tárgy a Digitális technika 1 folytatása. Az alapszintű, alkatrészekből építkező áramkörtervezés után itt ennél bonyolultabb, kész egységek összehangolásával foglalkozik a tárgy. Az egész az Intel 8085-ös mikroprocesszor köré épül fel, elsősorban annak egyszerű felépítése -- és nem a relevanciája vagy korszerűsége -- miatt. Így a tárgy végén a hallgató már sokkal könnyebben ismerkedhet meg más, a gyakorlatban is használt, mikroprocesszoros rendszerekkel.

Bevezetésként számláló- és aritmetikai áramkörökkel foglalkozik a tárgy. Ezután következik a memóriaegységek illesztése a 8085-öshöz, assembly programozás, soros I/O-kezelés, megszakításkezelés, külső megszakításkezelő egység alkalmazása, és egyéb perifériák illesztése. A tárgy továbbá az előadáson foglalkozik pár modernebb technológiával is, mint az FPGA-k (Field-programmabla gate array).

Követelmények

  • Előkövetelmény: A Digitális technika 1 című tárgy teljesítése.
  • Jelenlét: A gyakorlatok 70%-án kötelező részt venni, amit ellenőriznek is!
  • Házi feladat: A félév során 5 darab egyenként 6 pontos házi feladatot kell megoldani. A házi feladatok pótlására nincs lehetőség, a határidőre be nem adott házi feladatokat 0 pontosnak tekintik! Az aláírás megszerzéséhez összesen legalább 18 pontot kell összegyűjteni az elérhető 30-ból. A házi feladatok összpontszáma alapján a vizsgán plusz pontokat lehet szerezni!
  • Vizsga: A vizsga összesen 60 pontos melyből legalább 24 pontot kell elérni az elégségeshez. A vizsga két részből áll:
    1. A beugró 20 pontnyi rövid elméleti/egyszerű gyakorlati kérdésből áll. Fél óra van rá és legalább 12 pontot el kell érni. Előszeretettel kérdeznek a segédlet apró részleteiből is!
    2. A második részben 40 pontnyi komolyabb tervezési feladatot kell megoldani. Mindig van ~10 pontért memóriaillesztős feladat. Ezenkívül előszeretettel adnak fel assembly szubrutin értelmezést és valamelyik tanult perifériával kapcsolatos feladatot. Mindig van valamilyen aritmetikai/számlálós problémát taglaló tervezési feladat is.
  • Végső jegy: Legalább elégséges vizsga esetén a vizsgapontszámhoz még hozzáadódnak a házi feladatok pluszpontjai. A végső jegy az így kapott összpontszám alapján számítódik a standard 40, 55, 70 és 85-ös határok mellett. A házi feladatok összpontszáma alapján kapható pluszpontok: (összpontszám-20)/2 a kerekítés szabályai szerint!

Segédanyagok

Hivatalos segédanyagok

  • Hivatalos tárgyhonlap - A gyakorlatok anyagai, ellenőrző kérdések, áramköri elemek adatlapjai. Az anyagokhoz a felhasználónév: digit2. A jelszó pedig: viiia106.
  • Grantner - Horváth - László: Mikroprocesszor alkalmazási segédlet (J5-1428) - Erősen ajánlott mielőbb kiismerni, mi hol található meg benne. Enélkül például a vizsga sem megoldható, de a házi feladatban is segíthet. A vizsgán lehet használni eredeti vagy fénymásolt-spirálozott kalózmásolatot, de tilos bármilyen formában extra információt belevinni. Ezt ellenőrzik is a vizsgán.
    • Hibajegyzék:
      • 44. oldalon a PUSH rp utasítás 13 helyett 12 fázis.
      • 67. oldalon az OCW1 parancsnál a Prioritás beállítása x sorban a helyes bit kombináció: 1 1 0 (D7 = 1, D6 = 1, D5 = 0)
  • A tantárgyi adatlapon további kötelező és ajánlott irodalmakat is megjelölnek, melyek közül az előbbieket kiválthatja az előadáson való részvétel.
  • Előadásjegyzet (2013) - Kissé nehezen olvasható, de ha valamit nem tudtál előadáson leírni, akkor innét kinézhető.
  • Összefoglaló előadás (2013) - Vizsgára összefoglaló, kidolgozott típuspéldákkal.

Hardvertervezés

Assembly-programozás

Házi feladat

  • 5 darab kisebb volumenű házi feladatot kell megírni.
  • Házi feladatonként 0-6 pont kapható és nem pótolhatóak.
  • A határidőre le nem adott házik automatikusan 0 pontosnak számítanak.
  • Az összesen elérhető 30 pontból legalább 18 pontot kell összegyűjteni az aláírás megszerzéséhez.
  • Aki a 20 ponton felül teljesít az extra pontokat vihet a vizsgára az alábbit képletnek megfelelően: (összpontszám-20)/2 a kerekítés szabályai szerint!

Első házi

Témakörei, típusfeladatok:

  1. feladat: Logikai függvények felrajzolása huzalozott logika és kizárólag nyitottkollektoros kimenetű logikai kapuáramk?ör?ök alkalmazásával.
  2. feladat: Multiplexer kialakítása háromállapotú meghajtók és minimális kiegészítő hálózat felhasználásával.
  3. feladat: 74LS138 dekóder és minimális kiegészítő hálózat segítségével kombinációs hálózat megvalósítása, aminek a bemenetére adott számról eldönti, hogy egy bizonyos intervallumba esik-e.
  4. feladat: Adott négyváltozós logikai függvény megvalósítása adott multiplexer egység és minimális kiegészítő egység segítségével.
  5. feladat: Komparátor(ok), multiplexer(ek) és minimális kiegészítő hálózat felhasználásával olyan áramkör tervezése, ami a bemenetére adott 2 szám közüla nagyobbikat megjeleníti a kimenetén.

Második házi

Témakörei, típusfeladatok:

  1. feladat: Szinkron számláló áramkör tervezése (például 4-bites szinkron bináris számláló, aszinkron törléssel, szinkron betöltéssel, amely adott tartományokon számlál ciklikusan, illetve külső jelekkel módosítható a számlálás (újraindítás, adott érték betöltése)
  2. feladat: Léptetőregiszter és számláló áramkörök segítségével soros -> párhuzamos átalakító tervezése.
  3. feladat: Teljes összeadó(k) és minimális kiegészítő hálózat segítségével aritmetikai egység tervezése, túlcsordulás vizsgálatával.

Harmadik házi

Memóriailesztés a harmadik házi feladat témája, ami szinten minden vizsgán szerepel, a feladat pontos szövege: memóriamodul tervezése, ami konkrét EPROM és RAM áramköröket tartalmaz.

  1. feladat: Modul címtérképének és a processzor címtartományának leképezése az egyes memória-áramkörökre.
  2. feladat: Címdekóder egység tervezése dekóder és minimális kiegészítő hálózat felhasználásával.
  3. feladat: Tervezze meg a modul adaterősítőjét és annak vezérlését.
  4. feladat: Memória-áramkörök bekötése.
  5. feladat: Az egység Ready-logikájának megtervezése adott számú wait állapotok alapján.

Negyedik házi

Intel 8085 programozása assembly nyelven. A programozás iránt érdeklődőknek könnyen tanulható, de mindenképpen jól begyakorolható témakör, minden vizsgán legalább 5-10 pontnyi assembly programozás szokott lenni.

  1. feladat: Memória feltöltése adott szabály szerint (például minden a memória minden bájtja a saját címének alsó / felső bájtjának (bitenkénti negáltját) tartalmazza adott számú bittel balra / jobbra forgatva.
  2. feladat: Előző feladatban feltöltött memória tartalmának ellenőrzése (hibás rekeszek számolása)
  3. feladat: Főprogram írása az előző két szubrutin felhasználásával. Hibás rekeszek száma alapján SOD kimenet használata (például 10 ms periódusú 60%-os kitöltési tényezőjű pulzus előállítása).
  4. feladat: A processzor cím-, adat- és vezérlő sínjén látható adatok megadása táblázatos formában adott kódrészlet végrehajtása során.

Ötödik házi

Perifériaillesztés. Minden vizsgán szerepel ez a témakör. A 2015/2016. tavaszi félévben kizárólag Timer és USART áramkörök szerepeltek a házi feladatokban, előző évben PPIO is volt.

  1. feladat: Modul címdekóder egységének megtervezése.
  2. feladat: Adaterősítő és vezérlésének felrajzolása.
  3. feladat: Modul inicializálásához szükséges adatok és memóriacímek megadása táblázatos formában.
  4. feladat: Assembly szubrutin írása a modul használatához.

Régi házi feladat rendszer

A régi rendszerben egyetlen nagyházi volt, mely nagyjából egy sablont követett, de mindenki számára egyedileg generálták a pontos feladatspecifikációkat.

Régi típusú házi tipikus leírása

A régi rendszerben a házik két fő részből tevődtek össze:

  1. Egy több memóriaegységből álló memóriamodult kell egy 8085-ös sínrendszerre illeszteni:
    1. Fel kell rajzolni a modul blokkvázlatát
    2. Fel kell rajzolni a modul címtérképét és címdekóderét (ebben van 3 db ROM/RAM, és a címtérkép nem statikus, hanem egy megadott I/O-címre történő írással átkapcsolható)
    3. Fel kell rajzolni a memóriaáramkörök bekötését
    4. Fel kell rajzolni az adatbuszmeghajtó-áramköröket
    5. Fel kell rajzolni az I/O-egységet, amely a különböző memóriák között kapcsol át
    6. Fel kell rajzolni a Ready-logikát
  2. Egy assembly-szubrutint kell írni, mely a memória fizikai integritását ellenőrzi. Paraméterként egy regiszterpárban megkapja az ellenőrizendő memóriablokk kezdőcímét és egy másik regiszterpárban a memóriablokk hosszát. Feladata, hogy egy ciklusban a memóriablokkot feltöltse valamilyen módon a memóriablokk címeiből képzett adatokkal (pl. a címek alsó bájtja plusz egy vagy a cím alsó és felső bájtjának vagy-kapcsolata), és egy másik ciklusban az adatokat visszaolvasva ellenőrizze, hogy minden rendben van-e. Ha hibát talál, azt egy flaget beállítva kell jeleznie, valamint egy regiszerpárban kell jeleznie a hibák számát és az első vagy az utolsó hiba helyét. A pontos feladatkiírás félévenként, a konkrét paraméterek (regiszterpárok, flagek) hallgatónként változhatnak.

Régi típusú házi megoldások

Vizsga

  • A vizsga összesen 60 pontos, melyből legalább 24 pontot kell elérni az elégségeshez.
  • A vizsga két részből áll:
    • A 20 pontnyi beugró rövid elméleti/egyszerű gyakorlati kérdésből áll. 30 perc van rá és legalább 12 pontot el kell érni. Előszeretettel kérdeznek a segédlet apró részleteiből is! Ha a beugró nem sikerül, a vizsga második részét ki sem javítják. Mivel nem csak kizárólag a gyakorlatok anyagára épít, így nem elég, ha „tudod az anyagot”, külön fel is kell készülni a tipikus beugrókérdésekből.
    • A második részben (nagy feladatok) 40 pontnyi, komolyabb tervezési feladatot kell megoldani. Mindig van ~10 pontért memóriaillesztős feladat. Ezenkívül előszeretettel adnak fel assembly szubrutin értelmezést és valamelyik tanult perifériával illesztésével kapcsolatos feladatot. Mindig van valamilyen aritmetikai/számlálós problémát taglaló tervezési feladat is.

Az IIT tanszék hivatalosan nem engedélyezi másolatok készítését a már kiadott, megírt vagy kijavított vizsgakérdésekről.

Gyakori beugró kérdések

  • Előadáson leadott memóriatípusokhoz teszt kérdések
    • például: Melyik memória típusokat kell időközönként frissíteni?
  • Előadáson leadott programozható logikai áramkörökhöz teszt kérdések
    • például: SPARTAN egy adott slice-ának paraméterei
  • Assembly fordítási direktívák alapján memória leképezés táblázatos formában (ORG, DS, DB, DW stb)
  • Memória vagy periféria egység címdekóderének bekötése adott tartományok alapján
  • Memória kapacitásának kiszámolása
  • Memória vagy periféria címtartományát felírni a címdekóder alapján
  • DMA-hoz IORD, IOWR, MRD, MWR jelek szétválasztása IO/M, RD és WR jelekből
  • Flip-flopokkal egyszerűbb számolók kialakítása (pl szinkron felfelé számláló számláló)
  • MSI áramkörök egyszerű alkalmazása
    • például: 0...9 tartományon számláló szinkron számláló (aszinkron clear, szinkron load bemenetek)
    • egyszerű komparátorok bekötése (pl. 1 darab 7 bites pozitív és 1 darab 5 bites kettes komplemensben ábrázolt szám komparálása)
    • egyszerű aritmetikai egység tervezése (pl. 2 darab kettes komplemensben ábrázolt szám különbségének előállítása)
  • RST n milyen memória címre ugrik?
  • INTE flip-flopot mi engedélyezi és mi tiltja?
  • USART TxD jelekakjának felrajzolása, vagy adott jelalakból adatok leolvasása
  • Intel 8085 állapotgráfjának felrajzolása vagy ahhoz kapcsolódó kérdés

Gyakori nagy feladatok

  • Memória illesztés
    • RAM írásvédettsége adott vezérlőjel alapján.
    • Kapcsolóval lehessen állítani a memória címtartományát.
  • Periféria illesztés
    • pl. PPIO illesztés adott specifikáció alapján
    • periféria felprogramozása
    • perifériához kapcsolódó szubrutin írása
  • Programozás
    • periféria eszköz felprogramozása
    • algoritmus implementálása assembly nyelven (szubrutin írása)
    • memória feltöltése, ellenőrzése
    • megszakítási szubrutin írása
    • stb
  • Kódkövetés (mint a 4. házi feladatban)
    • segítségként oda szokták írni az utasítások opkódját
  • MSI áramkörök (számláló, shift regiszter, aritmetikai egység stb) segítségével és kiegészítő kombinációs hálózattal áramkör tervezése
    • például 110...119 --> 125...129 tartományokon számláló BCD számláló áramkör, INDUL jelre 110-től folytatja a számlálást

Ellenőrző kérdések

Az IIT tanszék mindig kiad egy ellenőrző kérdéssort, amelyben gyakorlatilag minden kérdéstípus szerepel, amelyet beugrón vagy vizsgán feltehetnek. Amennyiben az itt feltett kérdésekre a hallgató nagy magabiztossággal tud válaszolni, illetve a feladatokat meg tudja oldani, úgy a vizsgán sem érheti nagy meglepetés.

Korábbi vizsgasorok

Tippek

  • Végre valami komolyabb dologgal is lehet foglalkozni, és hát muszáj is, mivel kevés olyan villamosmérnökséghez kapcsolódó téma van, ami nem épül a digitális technikára, főleg ha csak az ötven évnél fiatalabb technológiákat vesszük figyelembe.
  • A tárgyból elég kevés a gyakorlat, és azon is általában egy típusból csak egy feladatra jut idő. A házi feladatok elkészítése így elég sok időt vesz igénybe, ugyanakkor érdemes magadtól "kiszenvedni", mert ha vizsgaidőszakban látod először az anyagot, vagy lehetetlen, vagy csak hatalmas erőfeszítések áran lehet egy ponthatáros kettest összehozni.
  • A házi feladatokhoz nézzétek át jól a gyakorlatok anyagát, mivel ott gyakorlatilag mindent meg kellett oldanotok, ami a háziban előjöhet. Ha kérdésetek van, akkor nyugodtan (de még időben) tegyétek fel valamelyik gyakorlatvezetőnek.
  • Ugyan a vizsga második részében lehet használni az alkalmazási segédletet, de ez nem jelenti azt, hogy bizonyos tulajdonságokat, adatokat és működési feltételeket nem kell fejből tudni, ugyanis a beugróban előszeretettel kérdezik vissza őket, ahol azonban NEM használható a segédlet.
  • A vizsgához jól jön, ha ismeritek az alkalmazási segédletet, vagyis tudjátok, hogy mihez hova kell lapozni benne. Beleírni nem lehet (ezt ellenőrzik is), de talán érdemes behajtani, vagy kis színes cetlikkel megjelölni a fontosabb információt tartalmazó oldalak sarkát.
  • Az előadások néha meglehetősen unalmasnak és haszontalannak tűnhetnek, azonban ennek ellenére érdemes bejárni és jegyzetelni, mert a vizsga beugrójában illetve a nagyfeladatok között csak olyan elméletre kérdeznek rá, ami biztosan elhangzott az előadásokon.
  • Digit1-ből, ha megvan a beugró, könnyen lehet akár 4-est, 5-öst is szerezni, ugyanakkor nem érdemes elbíznia magát az embernek, mert az elején hatalmas nagy az ugrás a Digit1-hez képest, emellett pedig másfajta szemléletmódot igényel ez a tárgy. Érdemes foglalkozni vele félév közben is, erre az új kisházis rendszerrel is motiválják az embert, mert ha vizsgaidőszakban lát neki az ember tanulni, a kettesért bizony vért kell izzadni.

Verseny

A Digitális technika 1 és 2 anyagából közösen van szervezve egy verseny Kozma László Digitális Technika Verseny néven - A verseny honlapja

Hivatalosan azt írják, hogy a vizsgaköteles hallgatók esetén a versenyeredményt beleszámíthatják a vizsgaeredménybe, ez többeknél megajánlott ötöst jelentett Digit2-ből úgy, hogy lényegében a Digit1 anyagából versenyeztek. Tehát aki magabiztosnak érzi a Digit1 tudását és komolyabban foglalkozott a Digit2 anyaggal, annak mindenképpen érdemes megpróbálnia!

2015/2016. tavaszi verseny


Bevezetők
1. félév
2. félév
3. félév
4. félév
5. félév
6. félév
7. félév


Bevezetők
1. félév
2. félév
3. félév
4. félév
5. félév
6. félév
7. félév
Megjegyzés:
A csillaggal jelölt négy szakirány-előkészítő tárgy közül egy a 6. félévben.