Arvutid I


Laborid



Üldinfo

Aeg: 2000 kevadsemester
Koht: TTÜ arvutuskeskus AK-213D
Kontaktinfo: TTÜ arvutuskeskus AK-210. Telefon: 6 202 253
UNIXi viited: Natuke UNIXist
DixiCAD: DixiCADi kasutamisjuhend
Credits: Credits '97 | Credits '98 | Credits '99 | Credits '00 | Credits '01 | Credits '02
Klassid: Arvutiklasside infolehekülg

Nõudmised

Eksmieelduse saamiseks peavad kõik laboratoorsed tööd olema esitatud hiljemalt 23. maiks (kaasa arvatud). Hiljem esitatud tööd arvesse ei lähe!

Kõik tööd on individuaalsed ja valikuvariant tuleb kirja panna ülesande võtmisel.

Töid võib sooritada arvutiklassi(de)s selleks ettenähtud aegadel ning vabal ajal, kui arvutiklassi(de)s pole tunde. Samuti võib seda teha mujal (kodus, sõbra juures, jne) kui selleks soovi on. Probleemide tekkides saab konsultatsiooni küsida kas labori ajal või e-maili teel.

Skeemiredaktorina on soovitav kasutada disainiprogrammi DixiCAD, mis jookseb nii UNIX tööjaamadel kui ka PC-del. Lubatud on kasutada ka teisi skeemi sisestamiseks ja simuleerimiseks sobivaid programme, kuid esitamisel peab sel juhul olema see programm kaasas.

Tööde kaitsmine

Kaitsmisel tuleb ette näidata:

  • Esialgne ülesandepüstitus ja -variant
  • Skeem
  • Simulatsioonitulemused (peavad näitama kõiki antud ülesande puhul võimalikke variante)

Kaitsmisel tuleb:

  • Seletada oma lahenduse valikut ning tema tööd (soovitavalt HTML-is, kuidkõlbavad ka teised tekstivormingud)

Kaitsta saab:

  • Laboris, esitades töö arvutil.
  • E-maili kaudu, saates kõik disaini failid pakitud kujul ühele eelpool toodud aadressidest. Juurde tuleb lisada seletus koos ülesandevariandiga.

NB! Viimane variant sobib vaid juhul kui skeemi loomiseks on kasutatud DixiCADi.

Laboratoorsed tööd

  1. Koostada kombinatsioonskeem (lühidalt KS), mis juhib 7-segmendi indikaatori ühte segmenti. /Pikem seletus/
  2. Koostada skeem, mis realiseerib mingi etteantud mooduliga loenduri. /Pikem seletus/
  3. Koostada operatsioonautomaat e. Aritmeetika-Loogika seade (ALU), mis võimaldab täita nelja funktsiooni. /Pikem seletus/

Töö viiakse läbi PC-del või SUN SPARC arvutitel, kasutades programmi DixiCAD.

NB! DixiCAD-i kasutamiseks UNIX tööjaamadel tuleb ta käivitada käsuga dixi ning seda tuleb teha kindlasti mingis alamkataloogis, mitte otse kodukataloogis!

Pikem seletus

Töö nr. 1.

Koostada KS, mis juhib 7-segmendi indikaatori ühte segmenti arvude 0-9 korral.

Üldjuht
Oletame, et meil on üks numbriline indikaator, millel tahame esitada arve 0-st 9-ni. Selleks, et midagi niisugust teha, peame koostama KS-i, mille sisendisse kahendkoodis antud arv x muudetakse indikaatori segmentide juhtsignaalideks y1, y2, y3, y4, y5, y6, y7


Nüüd vaatame, kuidas näidatakse indikaatoril numbreid 0-9 ning tähti A, B, C, D, E, F:

Ülesandest Antud laboriülesande puhul tuleb luua KS mis, erinevalt üldjuhust, realiseerib vaid ühe segmendi juhtimise loogika.


Läbi tuleb teha järgmised etapid:

  1. Koostada funktsioon y=f(x)

    Näiteks, kui meil on antud segment A, siis peab ta põlema hakkama järgmistel juhtudel (näidatud punaselt)


    Kuna kahendkoodis saab 4 bitiga esitada 16 arvu (0-15), siis arvude 10-15 korral on meie funktsioon määramata.

    Selle info põhjal tulebki karnaugh' kaardi abiga funktioon y välja kirjutada.

  2. Luua skeem

    Saadud funktsiooni põhjal saame, kasutades vastavaid loogikalülitusi, välja joonistada digitaalskeemi. Seejärel tuleb see sisestada DixiCAD-i skeemiredaktorisse.

  3. Sisestada stiimulid

    UNIX masinatel tuleb võtta mingi tekstiredaktor, ning sisestada sinna stiimuli vektorid. Stiimuli vektor on skeemi sisenditele mingil taktil antud signaalide kombinatsioon. Kui me hiljem simuleerime skeemi reaktsiooni, võetakse igal taktil üks vektor koostatud nimekirjast kuni kas lõpeb simuleerimisaeg või lõpevad vektorid. Kui viimased saavad otsa enne, jääb viimase vektori väärtus kuni simuleerimisaja lõpuni.

    PC-del käib asi pisut teisiti - graafiliselt. Seal tuleb käivitada programm graafiline stiimuliredaktor, mille abil saab ette anda soovitud sisendsignaalid.

    Mõlemal juhul tuleb sisenditele anda signaalid väärtustes 0 ... 9.

  4. Simuleerida skeemi reaktsioon

    Järgnevalt tuleb simuleerida skeemi reaktsioon vastavalt meie poolt kirjapandud sisendite kombinatsioonidele.

    Enne simulaatori käivitamist on tarvis paika panna kaks parameetrit - skeemi nimi ja simuleerimisaja pikkus. Viimane saadakse stiimulivektorite arvu korrutamisel kellatakti pikkusega.

    Teksti rezhiimis saadakse see eelmises punktis meie poolt ette antud ASS//-lause kaudu ning lisaks võib otsa liita veel ühe takti pikkuse, mille DixiCAD oma tarbeks kasutab. Seega 10 vektori puhul kellataktiga 100ns, saame tulemuseks 1000 + 100 = 1100ns.

    Graafiliselt saab stiimulitsülite lõplikku aega näha redaktori paremas alaservas.

  5. Analüüsida saadud tulemusi

    Selleks, et teada saada kuidas skeem töötab, tuleb vaadelda sisendeid ja väljundeid (või ka sisepunkte) üheskoos kasutades signaali analüsaatorit.

    Kui programm tööle läheb, tuleb valida akna alaservas asetsevast menüüst "Select Signals", mispeale tekib alammenüü, kust tuleb valida "Insert Signal". Menüü kohal olevasse aknasse tuleb klõpsata hiirega ning kirjutada soovitud signaalide (skeemi sisendid ja väljundid) nimed. Mitme signaali lisamisel tuleb nad teineteisest eraldada komaga.

    Seepeale peaks ekraanile tekkima mingi sarnane kujutis:


    Madal nivoo tähendab nulli, kõrge ühte. Iga kriipsuvahe märgib üht kellatakti. Kui meil on ees kõik skeemi sisendid ja soovitud väljundid, saame vaadelda skeemi väljundit vastavalt sisenditele antud signaalist. Antud juhul on sisenditele X4...X1 antud arvud 0...9 kahendkujul. Väljund Y kajastab skeemi reaktsiooni nendele stiimulitele.

    Soovi korral saab vaadelda sisendit ka kuueteistkümnendsüsteemis.

    Bus name: x <ENTER>
    Bits: 4 <ENTER>
    Bit(3) x4 <ENTER>
    Bit(2) x3 <ENTER>
    Bit(1) x2 <ENTER>
    Bit(0) x1 <ENTER>
    Bus Name: <ENTER>
    Selleks tuleb valida "Select Signals" -> "Insert Bus" ning klikkides samasse kastikesse kuhu ennegi. Kui küsitakse siini (Bus) nime, tuleb anda üks suvaline mis veel ei esine (pole skeemi sisend, väljund ega sisepunk ja pole ka juba ekraanile valitud signaali nimi.
    Kui meil olid sisendid nimetatud x1, x2 jne, siis on täiesti sobilik anda nimeks lihtsalt x. Järgnevalt küsitakse siini laiust. Sinna tuleb kirjutada sisendite arv. Kui küsitakse vanimat bitti (näiteks Bit(3)), tuleb sisestada selle sisendi nimi, mis algselt kahendkoodi vanima biti jaoks valiti, antud näite puhul x4. Järgnevate bittide puhul tuleb siis vastavalt ka nimed anda. Kui noorima bitini on välja jõutud, küsib programm uue siini nime. Kuna me neid rohkem ei taha, siis vajutame kohe ENTERit. Selleks, et soovitud pilti ette manada, tuleb menüüst valida "Edit Screen" -> "Redraw Screen"
    NB! Kui minimiseerimise käigus mõni sisend hoopis ära kadus, tuleb nn. fiktiivse siini loomise käigus olla ettevaatlik, et õigeid tulemusi saada.

    Kui väljund on õige iga sisendi korral, siis on töö arvestamiseks kõlbulik.


Töö nr. 2

Koostada skeem, mis realiseerib mingi etteantud mooduliga loenduri.

Ülesandest
Ülesande idee on teha loendur, mis mingi arvu sammude järel uuesti nullist alustab, nagu näiteks elektonkella sekundite loendur, mis loeb vahemikus 0-59 ja siis jälle otsast alustab.

Antud juhul võib mooduli valida vahemikust 4...62, välja arvatud kahe astmed miinus 1(2n-1), s.t. 7, 15, 31, 63. Mooduli väärtusest sõltub ka vajaminevate trigerite arv.

Skeem tuleb koostada loengus antud "suvalise mooduliga loenduri" baasil vastavalt valitud moodulile. Kui kasutada trigereid, millel on ka Reset e. nullimise sisend, tuleb ka sellest teha skeemi sisend, et saaks trigeritele loendamist lubava signaali ette anda. Nullimine on soovitav teha sünkroonselt (nullimisel nihutatakse 0 sisse läbi sisendite); kuid lubatud on ka asünkroonne variant, kus nullimine toimub Reset sisendi juhtimise teel.
NB! Seejuures tuleb tähele panna, et kokku ei tohi ühendada skeemist tulevat nullimissignaali ning skeemi sisendist tulevat juhet. Selle asemel tuleb nad ühendada vastava elementaarloogika abil.

Sammud, mis läbi tuleb teha, on samad mis eelmisegi ülesande puhul. Vaid stiimulid tuleb ümber teha nii, et saaks uue skeemi sisenditele ette anda taktsignaali. PC-l võib selleks kasutada Clock käsku.

Nagu ka esimese töö puhul, saab töö arvestatud juhul, kui ajadiagrammil on näha, et skeem töötab korrektselt.

Töö nr. 3

Koostada operatsioonautomaat e. Aritmeetika-Loogika seade (ALU), mis võimaldab täita nelja funktsiooni.

Ülesandest
Koostada operatsioonautomaat Aritmeetika-Loogika seade (ALU), mis võimaldab täita nelja funktsiooni:

  • Aritmeetikaoperatsioonid:
    • liitmistehe (+)
    • üks vabalt valitud aritmeetikaoperatsioon (-, *, /, SHR, SHL, ...)
  • Loogikaoperatsioonid:
    • kaks vabalt valitud loogikaoperatsiooni (AND, OR, NOT, XOR, NAND, ...)

Skeemi põhimõte on toodud järgneval joonisel:

Sisendid A ja B on 4-bitised andmesisendid, C on 2-bitine juhtsisend ning Y on 4-bitine väljund. Juhtsisendi C abil saab kahendkoodis ette anda soovitud operatsiooni. Iga funktsiooniplokk (F1 .. F4) sisaldab üht täidetavatest operatsioonidest. Need kastid on tiglikud, s.t. nad ei pea olema sugugi tehtud eraldi komponentidena.

Jooniselt võib näha, et kõik funktsionaalplokid arvutavad oma tulemusi samaaegselt. See, millise tulemus jõuab skeemi väljundisse, valitakse multiplekseri (MUX) abil kasutades juhtsisendit C.


[Back to DTC Home Page] [Back to Info Page] [Back to "Computers I" Page]
© 1999 Priidu Paomets <priidu@pld.ttu.ee>