Kodutöö #1 - Loogikafunktsioonide süsteem

Kodutöö põhineb ühel konkreetsel osaliselt määratud 4 sisendi ja 4 väljundiga loogikafunktsioonide süsteemist. Igal üliõpilasel on oma loogikafunktsioonide süsteem. Funktsioonide leidmine toimub analoogselt "Diskreetse matemaatika" kodutööga. Peamine erinevus seisneb selles, et korrutamisel tuleb lisaks 7-le kasutada ka 5, 11 (B) ja 13 (D). 8-kohaline korrutis annab 1-de piirkonna, selle jagatis 3-ga annab määramatuste piirkonna. Seega moodustatakse funktsioonid järgmiselt:
1. f-n: Matrikli numbrit korrutatakse 5-ga, kuni moodustub 8-kohaline 16-arv.
2. f-n: Matrikli numbrit korrutatakse 7-ga, kuni moodustub 8-kohaline 16-arv.
3. f-n: Matrikli numbrit korrutatakse B-ga (11-ga), kuni moodustub 8-kohaline 16-arv.
4. f-n: Matrikli numbrit korrutatakse D-ga (13-ga), kuni moodustub 8-kohaline 16-arv.
Saadud tulemused annavad 1-de piirkonna (dubleeritud väärtusi tuleb ignoreerida). Määramatuste piirkond saadakse 3-ga jagamisel (v.a. need väärtused, mis on juba 1-de piirkonnas). Kui korrutamisel ei teki 8-kohalist arvu (vaid 7- ja 9-kohalised), siis tuleb kasutada 7-kohalist tulemust.

Järgnev näide on arvutatud unix keskkonnas kasutades utiliiti bc. Matriklinumbrile 001234 vastavad arvutatud väärtused on alla joonitud. Konkreetsed võtmesõnad võivad erineda, nt. obase asemel võib vanemates versioonides olla ob.

mini:~/>bc
obase=16
001234
4D2
ibase=16
4D2*5*5*5*5*5*5*5*5
1CBB3692
1CBB3692/3
993BCDB
4D2*7*7*7*7*7*7*7
3C92C69E
3C92C69E/3
1430ECDF
4D2*B*B*B*B*B*B
824D55A2
824D55A2/3
2B6F1C8B
4D2*D*D*D*D*D
1B4F344A
1B4F344A/3
91A66C3
quit

Seega on tulemuseks järgmine funktsioonide süsteem:
f1(x1,x2,x3,x4) = Σ(1,2,3,6,9,11,12) 1(13)-
f2(x1,x2,x3,x4) = Σ(2,3,6,9,12,14) 1(0,1,4,13,15)-
f3(x1,x2,x3,x4) = Σ(2,4,5,8,10,13) 1(1,6,11,12,15)-
f4(x1,x2,x3,x4) = Σ(1,3,4,10,11,15) 1(6,9,12)-

Sama süsteem tõeväärtustabelina:

0000 0-00
0001 1--1
0010 1110
0011 1101
0100 0-11
0101 0010
0110 11--
0111 0000
1000 0010
1001 110-
1010 0011
1011 10-1
1100 11--
1101 --10
1110 0100
1111 0--1

Tähtaeg

Nominaaltähtaeg on 7. aprill. Erandjuhul ja mõjuval põhjusel on lubatud ka hilisem esitamine, kuid sellisel juhul tuleb eelnevalt kokku leppida, et oleks tagatud tööde kontroll enne eksamit. Mõjuva põhjuseta hilinenud töö punkte korrutatakse 0,985-ga iga hilinenud päeva kohta (0,9 nädala kohta). Korrektselt vormistatud tööd eraldi kaitsmist ei vaja. Vigade parandused on lubatud eeldusel, et enne eksamit on ka parandused esitatud.

Ülesanded

1. [5p] Minimeerida funktsioonide süsteem kasutades mitmevalentsel loogikal põhinevaid meetodeid, st. kõik funktsioonid tuleb minimeerida korraga. Minimeerida võib nii 1-de kui ka 0-de järgi. Minimeerida võib nii käsitsi kui ka vastavate programmide abil. Programmide kasutamine on eelistatud, sest võimaldab proovida erinevaid kombinatsioone. Esitada tuleb nii minimeerimise käik kui ka lõpptulemus, programmide kasutamisel ka parameetrid. Lõpptulemus esitada kas implikant-tabelina või DNK-na (KNK-na). Soovitav on esitada nii lähteülesanne kui ka tulemus implikant-tabelina, sest selline esitus lihtsustab oluliselt tulemuse õigsuse kontrolli (st. võimaldab pool-automaatset kontrolli).

2. [15p] Saadud minimeeritud funktsioonide süsteem teisendada (heuristiliselt) mitmetasemeliseks loogikaelementide skeemiks (võrguks). Kasutatavad elemendid on 2- ja 3-sisendilised AND, NAND, OR, NOR ja XOR ning NOT (viimane loomulikult ühe sisendiga). Optimeerimisel taotleda tulemuse minimaalsust - pindale, viide, testitavus vms. Esitada tuleb teostatavad teisendused koos põhjendustega - tuumade otsimised, funktsioonide dekompositsioonid, jagamised jne. Lõpptulemusega (skeem ja/või võrrandite süsteem) peab kaasnema ka selle suuruse ja kriitilise tee hinnang. Mõõtühikute kasutamine on vaba, kuid nende valikut peab põhjendama.

3. [5p] Valideerida skeemi korrektsust modelleerimise teel. Kontrollima peab nii 1. kui ka 2. punkti tulemust, st. võrdlema lähteülesandega. Modelleerimiseks võib kasutada suvalist VHDL simulaatorit. Simuleerimistulemustel peavad olema näha kõikide väljundite väärtused kõikidel sisendkombinatsioonidel.

Hindamisel arvestatakse lahenduste ja analüüsi korrektsust. Maksimaalse hinde saamiseks tuleb arvestada võimalusega, et osa funktsioone võib olla otstarbekam realiseerida inverteeritult. Samuti peab arvestama hüpoteetilise teegi loogikaelementide parameetritega: 2-NAND - suurus 1.0 / viide 1.0; NOT, 2-NOR, 3-NAND - 1.5 / 1.5; 2-OR, 2-AND, 2-XOR, 3-NOR - 2.0 / 2.0; 3-OR, 3-AND, 3-XOR - 2.5 / 2.5 ("3-NAND" on 3-sisendiga NAND element, parameetrid on ühikuteta, sest kõigi elementide parameetrite normaliseerimise aluseks on 2-NAND).

Näidislahendus

Vormistamine

Töö peab olema esitatud elektrooniliselt.
Soositud formaadiks Portable Document Format (.PDF) (võ mõni muu üldlevinud formaat, kus lehekülje kujundus ei sõltu printerist). Kõik ülejäänud formaadid on ebasoosingus ja on lubatud ainult erikokkuleppel. Siia kuuluvad nii HTML (ka lingina), Rich Text Format (.RTF), MS Word Document (.DOC, DOCX), LibreOfiice/OpenOffice Document (.ODT, .SXW) kui ka StarOffice Document (.SDW). Kui on soov esitada ka käsitsi kirjutatud lehti, siis tuleks seda teha töösse lisatud piltidena. Fail (või link) tuleb üles laadida Moodle'sse, lisad on lubatud. Võib saata ka e-postiga - kas peeter.ellervee (at) taltech.ee või LRV (at) ati.ttu.ee.


tagasi