digitaalsüsteemid / digital systems · 2017. 9. 5. · hulgad – sets • hulk on elementide...

49
Department of Computer Engineering digisys - introduction - 1 © Peeter Ellervee Digitaalsüsteemid / Digital Systems IAY0150 - 5 EAP 4 2-1-1 E S http://mini.pld.ttu.ee/~lrv/IAY0150/ ( Loogikasüntees / Logic Synthesis ) Peeter Ellervee ICT-526 620 2258 511 3631 [email protected] http://www.ati.ttu.ee/~lrv/ http://mini.pld.ttu.ee/~lrv/

Upload: others

Post on 23-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 1© Peeter Ellervee

Digitaalsüsteemid / Digital SystemsIAY0150 - 5 EAP 4 2-1-1 E S

http://mini.pld.ttu.ee/~lrv/IAY0150/

( Loogikasüntees / Logic Synthesis )

Peeter Ellervee

ICT-526 620 2258 511 3631 [email protected]://www.ati.ttu.ee/~lrv/ http://mini.pld.ttu.ee/~lrv/

Page 2: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 2© Peeter Ellervee

Kursuse sisu• 15 loengut (pluss varuajad)• kaks kodutööd• 15 harjutust/praktikumi (pluss varuaeg)• kirjalik eksam, eeldusteks esitatud kodutööd ja osalemine praktikumides (testid!)• koondhinne – kodutööd 25% & 15%, praktikumid 30%, eksam 30%

Loengud• Sissejuhatus

• Digitaalsüsteemid, struktuur, disaini põhietapid. Loogikasüntees disaini-protsessis. • Diskreetse matemaatika põhielementide kordamine. • Graafiteooria alused. Graafide kasutamine digitaalsüsteemide realiseerimisel. • Boole funktsioonide esitusviisid ja teisendused. Juht- ja operatsiooniautomaat.

• Digitaalsüsteemide modelleerimine• Digitaalsüsteemide modelleerimise alused. • Riistvara kirjelduskeel VHDL – stiilid, testpink, süntees.

Page 3: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 3© Peeter Ellervee

• Loogikafunktsioonide minimeerimine ja optimeerimine• Loogikafunktsioonide süsteemi täpne ja heuristiline minimeerimine. • Andme-esitus, baasalgoritmid. Espresso. • Mitmetasemeline loogikafunktsioonide realiseerimine.

Loogikavõrkgraaf (logic network) – teisendused ja optimeermismeetodid. • Viite mudel. Kriitiline signaalitee. Viite minimeerimine.

• Juhtautomaadid• Lõplik abstraktne automaat. Esitusvormid, klassifikatsioon, struktuur. Mäluelemendid.• Automaatide kodeerimine ja süntees. • Sümboolne minimeerimine ja kodeerimine. Kahendotsustusdigrammid (BDD). • Loogikavõrkgraafide kasutamine automaatide optimeerimisel. Ümberajastamine (retiming).

• Digitaalsüsteemide realiseerimine • Struktuuri optimeerimine. Digitaalsüsteemide testitavuse alused. • Asünkroonsed süsteemid. Füüsilise taseme projekteerimine.

• Kodutööd• Funktsioonide süsteemi minimeerimine. Mitmetasemeline realisatsioon. Modelleerimine. • Automaadi optimeerimine, realisatsioon ja modelleerimine. • Kodutööde näidislahendamine.

Page 4: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 4© Peeter Ellervee

• Harjutustunnid/praktikumid• 1 - Diskreetne matemaatika. Graafiteooria alused. • 2 - Esimese kodutöö ülesanne. • 3 - Loogikafunktsioonide teisendamine ja minimeerimine, tehnilised abivahendid. • 4 - Loogikafunktsioonide süsteemi minimeerimine, espresso. • 5 - Sissejuhatus VHDL-i. Kirjeldustasemed VHDL-s. • 6 - Esimese kodutöö skeemi süntees ja realiseerimine FPGA-l. • 7 - Mitmetasemeline loogikafunktsioonide minimeerimine/optimeerimine.• 8 - Viite arvutamine ja optimeerimine.• 9, 11, 12 - Miniprojekt – digitaalsüsteemi disain, süntees ja realiseerimine FPGA-l. • 10 - Teise kodutöö ülesanne. Automaadi süntees.• 13 - Ümberajastamine (retiming). Automaatide testitavuse alused. • 14 - Teise kodutöö skeemi süntees ja realiseerimine FPGA-l. • 15 - Trükkplaadi projekteerimine.

• Eksam (kirjalik) • Paar teoreetilist küsimust ja mõned ülesanded• Eksamieeldus – esitatud kodutööd, osalemine praktikumides

Page 5: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 5© Peeter Ellervee

Digitaalsüsteemid• Süsteemid

• NB! Piirid pole täpselt paigas...

• Mehhaanikasüsteem – liikumine • Elektrisüsteem – elektrienergia • Elektroonikasüsteem – infotöötlus

• Analoogsüsteem – signaalide esitamine ja töötlus pidevate suurustena signaalide väärtused: 0...5 V, -10...+10 mA, jne.

• Digitaalsüsteem – signaalide esitamine ja töötlus diskreetsete suurustena signaalide väärtused: 0/1, tõene/väär, true/false, high/low, jne.

• Sardsüsteem (embedded system)• Kaasajal peamiselt (hajutatud) digitaalsüsteem, mis sisaldab nii analoog-alamsüsteeme aga ka

mehhaanilisi ja elektrilisi komponente• Suvaline digitaalsüsteem sisaldab alati analoog, elektrilisi ja mehhaanilisi komponente –

nt. nivoomuundurid, toide, lülitid, ...• Küberfüüsikalised süsteemid – süsteem + keskkond, kasutajad, ...

Page 6: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 6© Peeter Ellervee

Digitaalsüsteemid

• Digitaalsüsteem • digitaalne andmetöötlus• andmeosa, juhtosa, sisend/väljund

• Primaarturud• infosüsteemid• telekommunikatsioon• laiatarbe-elektroonika

• Sekundaarturud• süsteemid (nt. transport)• tootmine (nt. robotid)

• VLSI tehnoloogiate rakendused VLSI – Very Large Scale Integration

süsteemid

elektroonilisedalamsüsteemid

integraal-skeemid

EDA

digitaal-süsteemid

Page 7: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 7© Peeter Ellervee

Automatiseeritud projekteerimine• Gordon Moore seadus (1965)

• Edusammud tehnoloogias• väiksemad skeemid• suurem jõudlus• rohkem transistore kristallil

• Suurem integratsiooniaste• kompleksemad süsteemid• arvutusvõimsuse odavnemine• suurem töökindlus

• Automatiseerimine võimaldab:• uusimate tehnoloogiate kasutamist• vähendada projekteerimiskulutusi• kiirendada projekteerimist

Page 8: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 8© Peeter Ellervee

Turg e. $$$• Projekteerimise maksumus

• projekteerimisaeg & kristallide tootmise hind • suured kapitalimahutused • pea-aegu võimatu parandada

• Muudatuste kõrge hind • suured tootmismahud rentaablimad • null-defekti on äärmiselt oluline • turusuundumuste järgimine oluline

• Hind pöördvõrdeline tootmismahuga • üldotstarbelised protsessorid - odav kuid pole alati kasutatav • ASIC (Aplication-Specific Integrated Circuits) – häälestamine vastavalt vajadusele

(nt. telekommunikatsioon)• prototüübid – väljatöötluses on paindlikkus äärmiselt oluline • spetsrakendused (nt. sateliidid)

• Rekonfigureeritavus • paindlikud tooted, võimalus modifitseerida töötavat skeemi

Page 9: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 9© Peeter Ellervee

Miks kahendloogika?

• Digitaali eelised• Tulemuste korratavus

• samad sisendväärtused annavad alati sama tulemuse• analoog – temperatuur, toitepinge, vananemine, ...

• Projekteerimise lihtsus• loogikafunktsioonid, optimeerimisalgortitmid

• Paindlikkus ja funktsionaalsus• erinevad algoritmid, sama funktsionaalsus (võimsustarbe, kiiruse, suuruse jne. erinevused)

• Programmeeritavus• programmeerimiskeeled / riistvara kirjelduskeeled

• Töökiirus• Turu ja tehnoloogia areng

• ränikiipide/-tehnoloogia skaleeritavus/korratavus

Page 10: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 10© Peeter Ellervee

Miks kahendloogika?

• Analoogi eelised• Differentsiaalvõrrandite realiseerimine• Energeetiline efektiivsus• Kõrge töösagedus

• Nivoo-loogika• Kindel pingevahemik (vooluvahemik) – 0: <0,8V, 1: >3,8V

• Mitmevalentne loogika• Rohkem kui kaks diskreetset väärtust• Suurem infotihedus – nt. 4- ja 16-valentsed mälud• Boole’i algebra edasiarendus

• funktsioonide süsteemi minimeerimine

Page 11: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 11© Peeter Ellervee

Digitaalsüsteemide realiseerimine – ajalugu ja tänapäev

Page 12: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 12© Peeter Ellervee

Algoritmist skeemini

• Peatuspunkt / sünkroniseerimine

• olek (automaadi olek)• mäluelemendid• takteerimine

• Funktsioon• y = ( b c ) + a b c

• Normaalkuju• y = a b + b c + b c

• Tõeväärtustabel

abc y

000 1

001 0

010 0

011 1

100 1

101 0

110 1

111 1

abc y

abc

y

Page 13: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 13© Peeter Ellervee

Algoritmist skeemini (2)

• Lähteandmed• x(a,b,c) = a b c + a b c + a b c + a b c • y(a,b,c) = a b c + a b c + a b c + a b c • z(a,b,c) = a b c + a b c + a b c + a b c

• Lõpptulemus• x(a,b,c) = a b c + a b c + a c • y(a,b,c) = b c + a b c + a b • z(a,b,c) = a b c + a c + a b

abc xyz

-01 010

011 110

111 101

0-0 101

00- 011

abc xyz

000 111

001 011

010 101

011 110

100 000

101 010

110 000

111 101

ab

c z

Page 14: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 14© Peeter Ellervee

Algoritmist skeemini (3)

• Lõplik funktsioonj=a’+b+c’k=c+dq=a+bs=ke+a’+b’t=q+cu=q+cv=jd+ae’

• Funktsioone/loogikalülisid – 7 ja 7• Literaale – 33 ja 20• Viide – 3 ja 2 (sõlmi)• Viide – 9 ja 7 (sõlmi+literaale)

v=a’d+bd+c’d+ae’

q=a+b

a

b

cx

y

p=ce+de r=p+a’ s=r+b’

t=ac+ad+bc+bd+e

u=q’c+qc’+qc

w

z

d

e

j=a’+b+c’

q=a+b

a

b

cx

yk=c+d

s=ke+a’+b’

t=kq+e

u=q+c

w

z

d

e

v=jd+ae’

Page 15: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 15© Peeter Ellervee

Algoritmist skeemini (4)

• Skeem• n0=q1q0 n1=q1q0 • d1=n0+x3n1 d0=x1y1+x2n0 • y1=q1 q0 y2=q0 • y3=n0+n1 y4=q1

it st q1 q0 st+1 q1 q0 ot

x1’ S1 0 0 S1 0 0 y1x1 S2 0 1x2’ S2 0 1 S3 1 1 y2,y3x2 S4 1 0- S3 1 1 S1 0 0 y2,y4

x3’ S4 1 0 S1 0 0 y3,y4x3 S4 1 0

begin

x1

y1

y2,y3

end

-

+

x2

y2,y4 y3,y4

x3

+

+

-

-

S1

S2

S3 S4

Page 16: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 16© Peeter Ellervee

Projekteerimine tänapäeval

• Riistvara kirjelduskeel

-- -- Highway is green, sidestreet is red. -- if sidestreet_car = NoCar then wait until sidestreet_car = Car;

end if; -- Waiting for no more than 25 seconds ... if highway_car = Car then wait until highway_car = NoCar for 25 sec;

end if; -- ... and changing lights highway_light <= GreenBlink; wait for 3 sec; highway_light <= Yellow; sidestreet_light <= Yellow; wait for 2 sec; highway_light <= Red; sidestreet_light <= Green;

Page 17: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 17© Peeter Ellervee

Hulgad – Sets

• hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918]• hulk – set , element – element, member

• x A – element x kuulub hulka A

• |A| , N(A) – hulga võimsus (kardinaalsus / cardinality) • lõplikud (finite) ja lõpmatud (infinite) hulgad• loenduvad (countable) hulgad

• P Q – alamhulk (subset) – hulk P on on hulga Q alamhulk kui iga hulga P element on ka hulga Q element

• ühisosata (disjunktsed) hulgad (disjoint sets)

• tühihulk (empty set) – , universaalhulk (universal set) – I

• 2A , P(A) – astmehulk ( potentshulk / power set ) – hulga A kõigi alamhulkade hulk

Page 18: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 18© Peeter Ellervee

Tehted hulkadega

• A × B = { (a,b) | aA & bB } – otsekorrutis (Descartes’i korrutis, Cartesian product)

• (a1,a2), <a1,a2> - järjestatud paar (ordered pair, ordered 2-tuple)

• A B = { x | xA V xB } – hulkade ühend (unioin)

• A B = { x | xA & xB } – hulkade ühisosa (lõige, intersection)

• A = { x | xI & xA } – hulga täiend (complement, AC)

• A \ B = { x | xA & xB } – hulkade vahe (difference, relative complement), ( A = I \ A )

• A B = { x | (xA & xB) V (xA & xB) } – hulkade sümmeetriline vahe

Page 19: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 19© Peeter Ellervee

Venn’i diagrammJohn Venn, 1834-1923

• A B

• A C =

• B C

• A B

• A B

• A

• A \ B

• A B

A B

A B

A B

A B

A BA \ B

A BA B

A

A

I

I

A

BC

Page 20: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 20© Peeter Ellervee

Operatsioonide omadused• Kommutatiivsus (vahetuvus, commutativity) A B = B A A B = B A • Assotsiatiivsus (ühenduvus, associativity) • A ( B C ) = ( A B ) C A ( B C ) = ( A B ) C • Distributiivsus (jaotuvus, distributivity) • A ( B C ) = ( A B ) ( A C ) A ( B C ) = ( A B ) ( A C ) • De Morgani seadused A B = A B A B = A B • Idempotentsusseadus (idempotency) A A = A A = A • Välistatud kolmanda seadused A A = I A A = • Topelttäiendi seadus = A • A = A I = A A = A A I = I • Neeldumisseadused• A ( A B ) = A A ( A B ) = A B A ( A B ) = A A ( A B ) = A B • Kleepimisseadused ( A B ) ( A B ) = A ( A B ) ( A B ) = A • A \ B = A B • A B = ( A \ B ) ( B \ A ) = ( A B ) \ ( A B )

A

Page 21: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 21© Peeter Ellervee

Vastavused – Functions (Relations)• Antud 2 hulka A ja B ning reegel, kuidas hulga A elemendid on vastavuses hulga B

elementidega – A x B : A B

Binaarsuhted – Binary Relations• Vastavuse erijuhtu, kus lähte- ja sihthulk langevad kokku – D() = R() = A • Tähistus – R AxA • Mugav interpreteerida suunatud graafina

• hulga A elemendid vastavad tippudele • seosed elementide vahel vastavad kaartele

• Binaarmaatriks (naabrusmaatriks)

a b c d

a 1 1 1 0b 0 0 1 1c 0 0 0 1d 1 0 0 1

a

b

c

d

Page 22: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 22© Peeter Ellervee

Binaarsuhete R omadused • Refleksiivsus (1) – ( aA [<a,a>R] )

• Antirefleksiivsus (2) – ( aA [<a,a>R] )

• Suhe, mis ei täida nõudeid 1 ega 2, on mitterefleksiivne

• Sümmeetria (3) – ( a,bA [<a,b>R <b,a>R] ), kus a b

• Antisümmeetria (4) – ( a,bA [<a,b>R <b,a>R] ), kus a b

• Suhe, mis ei täida nõudeid 3 ega 4, on mittesümmeetriline

• Transitiivsus (5) – ( a,b,cA [ ( <a,b>R & <b,c>R ) <a,c>R ] ), kus ab, bc, ac

• Antitransitiivsus (6) – ( a,b,cA [ ( <a,b>R & <b,c>R ) <a,c>R ] ), kus ab, bc, ac

• Suhe, mis ei täida nõudeid 5 ega 6, on mittetransitiivne

ei

ei

jah

ei

-

jah

ei

ei

jah

Näite-graaf

Page 23: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 23© Peeter Ellervee

Boole’i algebra• signatuur koosneb 2 binaarsest ja ühest unaarsest operatsioonist (+,•, ) • + ja • on kommutatiivsed, assotsiatiivsed, idempotentsed ning teineteise suhtes

distributiivsed • eksisteerivad elemendid 0 ja 1 nii, et x•x=0 ning x+x=1

• Näited • {2A,,, } – Cantori algebra • { (0,1)n,&,V, } – loogikaalgebra

• Kaks algebrat on isomorfsed ( A1=<M1,S1> A2=<M2,S2> ), kui eksisteerib üksühene vastavus nii, et : (M1S1) (M2S2), kus fi(mj1,...,mjk-1) = mjk j(fi)(j(mj1 ),...,(j(mjk-1 )) = j(mjk), mjlM1, j(mjl)M2, fiS1, j(fi)S2

Cantori algebra ja loogikaalgebra on isomorfsed

Page 24: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 24© Peeter Ellervee

Loogikafunktsioonid

• f ( x1 , x2 , ... xn ), kus

• nii argumendid kui funktsiooni väärtus kuuluvad hulka {0,1} • iga loogikafunktsiooni võib esitada tõeväärtustabelina

• Erinevate loogikafunktsioonide f ( x1 , x2 , ... xn ) arv K on

• n=1 K=4 • n=2 K=16 • n=3 K=256 • n=4 K=65536 • n=5 K=4,3•109

22n

Page 25: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 25© Peeter Ellervee

Kõikvõimalikud kahe muutuja funktsioonid f(x1,x2)

f0 – konstant 0 f1 – konjunktsioon, a&b ehk a·b ehk ab f2 – implikatsiooni eitus ab f3 – argumendi a väärtusf4 – pöördimplikatsiooni eitus ba f5 – argumendi b väärtusf6 – summa mooduliga 2, ab f7 – disjunktsioon, ab ehk a+b f8 – Pierce'i funktsioon, ab ehk ab f9 – samaväärsusfunktsioon, ab f10 – argumendi inversioon b f11 – pöördimplikatsioon ba f12 – argumendi inversioon a f13 – implikatsioon ab f14 – Shefferi funktsioon, a&b ehk ab f15 – konstant 1

• Üldlevinud prioriteedid – , &, , ,

a b f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f150 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 11 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 11 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Page 26: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 26© Peeter Ellervee

Loogika põhiseadused

• Idempotentsus – a&a=a a+a=a • Kommutatiivsus – a&b=b&a a+b=b+a • Assotsiatiivsus – (a&b)&c=a&(b&c) (a+b)+c=a+(b+c) • Distributiivsus – a&(b+c)=(a&b)+(a&c) a+(b&c)=(a+b)&(a+c) • Topelteitus – =a• De Morgan – a&b=a+b a+b=a&b • Kleepimine – (a&b)+(a&b)=a (a+b)&(a+b)=a • Neeldumine – a+(a&b)=a a&(a+b)=a a+(a&b)=a+b a&(a+b)=a&b • Konstandid – a+a=1 a&a=0 a&0=0 a+0=a a&1=a a+1=1 • Lisateisendusi – ab=a+b ab=(a&b)+(a&b) ab=(a&b)+(a&b)

a

Page 27: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 27© Peeter Ellervee

Normaalkujud

• Kanoonilised standardsed esitusvalemid – normaalkujud • Disjunktiivne normaalkuju (DNK, DNF) – elemantaarkonjunktsioonide disjunktsioon

• Elemantaarkonjunktsioon koosneb argumentide ja/või nende inversioonide konjunktsioonist

• Konjunktiivne normaalkuju (KNK, CNF) – elemantaardisjunktsioonide konjunktsioon• Elemantaardisjunktsioon koosneb argumentide ja/või nende inversioonide disjunktsioonist

• Iga funktsioon on esitatav DNK ja KNK kujul, kuid mitte üheselt

• Täielik DNK (TDNK, CDNF) – iga elemantaarkonjunktsiooni pikkus on n (st. iga elementaarkonjunktsioon sisaldab funktsiooni kõiki argumente)

• Täielik KNK (TKNK, CCNF) – iga elemantaardisjunktsiooni pikkus on n (st. iga elementaardisjunktsioon sisaldab funktsiooni kõiki argumente)

• Igal funktsioonil on täpselt üks TDNK ja üks TKNK

Page 28: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 28© Peeter Ellervee

Esitusviisid

• Funktsioon – f = (ac)+b = (a&c)+(a&c)+b

tõeväärtustabel

a b c f0 0 0 10 0 1 00 1 0 10 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

1

11

1

1

1

0

0a

b c

Karnaugh’ kaarthüper-kuup

ab

c

(1,1,1)

Page 29: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 29© Peeter Ellervee

Esitusviisid

000

110111

011

101

001

100

010

a

c b

ab

c

111

00

11

01

10a

b

ab

10 11

0001

a b

00 01

1011

000

001

010

011

100

101

110

a

b

c0000d

0001

0010

0011

01000101

0110

0111

1000

1001

10101011

1100

1101

1110

1111

0000

01100111

0011

0101

0001

0100

0010

a

b

cd

1100

10101011

1111

1001

1101

1000

1110

Page 30: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 30© Peeter Ellervee

Graafid – Graphs• Leonhard Euler (1707-1783), praktiliselt alles 1930. alates

• Graaf (graph) – G=(V,E) • vi V – sõlmede hulk [ node, vertex (pl. vertices) ] • en = <vi,vj> E – servade/kaarte hulk [ edge ]

• Silmus (loop) – serv sõlmest iseendale • Multigraaf (multigraph) – rohkem kui üks serv kahe sõlme vahel

(mitmikserv / multpile edge)• Lihtne graaf (simple graph) – puuduvad nii silmused kui ka mitmikservad

Page 31: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 31© Peeter Ellervee

• Orienteerimata graaf (undirected graph) – sümmeetriline • Orienteeritud graaf (suunatud graaf, directed graaf) – antisümmeetriline (servad) • Sõlme aste (degree) – sõlmega seotud kaarte arv • Hüpergraaf (hypergraph) – iga servaga võib olla seotud rohkem kui kaks sõlme • Kaalutud graaf (weighted graph, network) – reaalarv seostatud servaga (sõlmega)

ab

cd

1.5

254.5

150.5

Page 32: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 32© Peeter Ellervee

• Käik (walk) - sõlmede ja servade jada – ( a, <a,a>, a, <a,b>, b, <b,c>, c, <c,b>, b, <b,c>, c ) • Rada (trail) - käik erinevate servadega – ( a, <a,a>, a, <a,b>, b, <b,c>, c ) • Tee (path) - rada erinevate sõlmedega – ( a, <a,b>, b, <b,c>, c, <c,d>, d ) • Tsükkel (cycle) - suletud käik erinevate sõlmedega – ( a, <a,b>, b, <b,d>, d, <d,a> ) • Sidus graaf (connected graph) - vi,vjN path(vi,vj),

• Mets (forest) / atsükliline graaf (acyclic graph) – graaf ilma tsükliteta • Puu (tree) – sidus atsükliline graaf – juur (root) & leht (leaf/leaves)

ab

cd

puu

juur

leht

Page 33: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 33© Peeter Ellervee

• Täielik graaf (complete graph) – iga kahe sõlme vahel on kaar • Bikromaatiline graaf (bipartite graph) – sõlmed on võimalik jagada kahte rühma

selliselt, et iga serva üks otstest on ühes ja teine otstest on teises sõlmede rühmas• Graafi täiend (complement) – G-1=(V,E-1), e. E-1={ <vi,vj> | <vi,vj>E } • Alamgraaf (subgraph) – GS=(VS,ES), VSV & ESE • Klikk (clique) – täielik alamgraaf • Maksimaalne klikk – klikk, mis ei sisaldu üheski teises klikis

(mõned autorid nimetavad ainult maksimaalseid alamgraafe klikkideks) • Planaarne graaf (tasandgraaf, planar graph) – kujutades tasandil ükski serv ei lõiku • Isomorfsed graafid – üksühene vastavus sõlmede ja servade hulkade vahel

Page 34: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 34© Peeter Ellervee

• Näiteülesanne #1 – 3 kaevu & 3 maja • bikromaatiline graaf • kas see graaf on planaarne?

?

Page 35: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 34© Peeter Ellervee

• Näiteülesanne #1 – 3 kaevu & 3 maja • bikromaatiline graaf • kas see graaf on planaarne?

?

Vaja on kõrgematjärku pinda! :-)

Page 36: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 35© Peeter Ellervee

• Näiteülesanne #2 – Köningsbergi sillad (L. Euler 1736)• 2 saart & 7 silda – ületada iga sild täpselt üks kord • kas see on võimalik?

EW

N

SS

N

EW

Page 37: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 36© Peeter Ellervee

• Näiteülesanne #3 – poliitilise kaardi värvimine • planaarse graafi värvimine • mitu värvi on vaja?

A EF

C

BD

M

A

D

E

FB

C

Page 38: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 37© Peeter Ellervee

• Suunatud graafid • sisendaste (indegree) & väljundaste (outdegree) –

sõlme sisenevate & sõlmest väljuvate kaarte arv • alusgraaf (underlying graph) – sõlmede ja kaarte hulk sama, kuid puudub orienteeritus

• Suunatud atsüklilised graafid (directed acyclic graphs – DAGs) • osaliselt järjestatud hulk• järglane (successor, descendant) – vj on järglane vi-le kui path(vi,vj) • eellane (predecessor, ancestor), otsene järglane, otsene eellane • polaarne s.a.g. (polar dag) – läte (source) & suue (sink) (võre)

• Intsidentsusmaatriks (incidence matrix) – |V| rida & |E| veergu

• Naabrusmaatriks (adjacency matrix) – |V| rida & veergu

a b c d e 1 2 3 41 -1 0 0 -1 -1 1 0 1 1 12 1 -1 0 0 0 2 0 0 1 03 0 1 -1 0 1 3 0 0 0 14 0 0 1 1 0 4 0 0 0 0

1 2

34

a

b

c

ed

läte

suue

Page 39: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 38© Peeter Ellervee

• Perfektsed graafid (perfect graphs) • klikiarv (clique number) – (G) – suurima kliki suurus • tükeldus klikkideks – G on tükeldatud täielikeks mittekattuvateks alamgraafideks • klikikate (clique cover) – G on kaetud täielike alamgraafidega • klikikattearv (clique cover number) – (G) – minimaalse klikikatte (-tükelduse) võimsus • stabiilne hulk (stable set) – sõlmed hulgas ei ole kaarega ühendatud • stabiilsusarv (stability number) – (G) – suurima stabiilse hulga suurus • graafi värvimine (coloring) – graafi tükeldamine stabiilseteks hulkadeks • kromaatiline arv (chromatic number) – (G) –

minimaalse stabiilseteks hulkadeks tükelduse võimsus

• Graafi perfektsus• tavaliselt – (G) (G) ehk (G) (G) perfektsed graafid – (G) = (G) ehk (G) = (G)

(G) = 3(G) = 2(G) = 2(G) = 3

(G) = 2(G) = 3(G) = 2(G) = 3(G)<(G) & (G)<(G)

(G)=(G) & (G)=(G)

klikk

värv

Page 40: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 39© Peeter Ellervee

• Kõõlgraafid (kolmnurk graafid, chordal graphs) – iga tsükkel rohkem kui kolmest sõlmest omab kõõlu (chord)

• Intervallgraafid (interval graphs) – sõlmed on võimalik seada vastavusse vahemikega selliselt, et kahe sõlme vahel on kaar, kui kaks intervalli kattuvad

S1S2S3S4S5S6S7S8S9

S0

V0 V1 V2 V3 V4 V5 V6 V7 V8 V91 8 8 1 9 8 8 8 1 8 V0

Variablesize [bit]

Stat

e

1V18

V49

V58

V81

V98

V28

V31

V68

V78

weight

Page 41: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 40© Peeter Ellervee

Graafid digitaalsüsteemide disainis

• Disaini ülesanne #1 – viite leidmine ahelas • pikima tee ülesanne (ainult atsüklilised graafid) • sõlm – loogikaelement, sõlme kaal – viide • kaar – ühendused loogikaelementide vahel

abcde

f2

3 5

4

a

b

c

d

e

0

2

3

5

4 f

2

3

812 12

Page 42: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 41© Peeter Ellervee

• Disaini ülesanne #2 – lihtimplikantide hulga minimeerimine • minimaalse klikikatte leidmine graafil • sõlm – oluline (‘1’) sisendvektorid (minterm)• klikk – lihtimplikant (võimalus asendada hüperservadega)

Impl. 0 1 2 5 6 7 8 9 10 14A1 x xA2 x xA3 x xA4 x x x xA5 x x x xA6 x x x x

5 7

2

1410

61

89

0

A4 A6

A2

Page 43: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 42© Peeter Ellervee

• Disaini ülesanne #3 – registrite sidumine • kaalutud (intervall)graafi värvimine • sõlm – register, kaar – registrid on korraga kasutuses (intervallid kattuvad)

S1S2S3S4S5S6S7S8S9

S0

V0 V1 V2 V3 V4 V5 V6 V7 V8 V91 8 8 1 9 8 8 8 1 8

V0

Variablesize [bit]

Stat

e

1V18

V49

V58

V81

V98

V28

V31

V68

V78

weight

V01

V18

V49

V58

V81

V98

V28

V31

V68

V78

C(1,3)

C(9,3)

C(8,3)C(8,1)

RG 1

1

1

1

1V0

V3

V8

RG 88V5

RG 9

8

8

9

9V1

V2

V4

RG 8

8

8

8

8V6

V7

V9

V4, V1, V2, V5, V6, V7, V9, V0, V3, V8

Lähteülesanne:intervallgraaf

Värvitud graaf

Intervallgraaf Lõpptulemus:registrid &multiplekserid

Page 44: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 43© Peeter Ellervee

• Disaini ülesanne #4 – algoritmi (automaadi) tükeldamine• kaalutud graafi tükeldamine • sõlm – olek, kaar – siire + tingimused + sagedused/tõenäosused

1 2

3

45

6

x1 x1

x2

x2

x3

x3

x4x4

A B

x1 x1

x2

x2

f1C

f1

f2=1

a

bc

d

x3

x3

x4x4

f2

f2

f1=1

lähteautomaat vaheldumisi töötavad komponentautomaadid

Page 45: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 44© Peeter Ellervee

Algoritmid ja keerukus• Algoritmi keerukus – kui kaua kulub aega ja kui palju on vaja resursse

• Keerukus – O(n), O(n2), O(2n), jne. • polünomiaalne keerukus – P • mitte-polünomiaalne keerukus – NP

lahenduv polünomiaalse ajaga, kui on võimalik õige tulemus ära arvata • kas PNP või P=NP on siiani lahendamata!

• Harude ja tõkete meetod (branch and bound method)

• parim tulemus

• Ahne meetod (greedy method) • piisavalt hea tulemus?

b&b greedy

Page 46: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 45© Peeter Ellervee

Ahne meetod (Greedy Method)

• Vali jooksev objekt• suurim, väikseim, juhuslik jne.• vali värvimata sõlm

• Teosta operatsioon• sidumine, eraldamine, värvimine jne.• vali legaalne värv

• Korda kuni operatsioonid on sooritatud kõigi objektidega

• korda kuni kõik sõlmed on värvitud

1

2

3

4

12

3 4

Page 47: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 46© Peeter Ellervee

Harude ja tõkete meetod(Branch and Bound Method)

• Vali jooksev objekt • antud kombinatsiooni korral kasutamata• vali värvimata sõlm

• Teosta operatsioon• sidumine, eraldamine, värvimine jne.• vali legaalne värv

• Kui vahetulemus on halvem jooksvast parimast, siis alusta uut kombinatsiooni

• Korda kuni operatsioonid on sooritatud kõigi objektidega• korda kuni kõik sõlmed on värvitud

• Jäta jooksev parim tulemus meelde

• Alusta uut kombinatsiooni

1

2

3

4 5

6

7

8

9 10

11

Page 48: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 47© Peeter Ellervee

Algoritm – ahne või harud-tõkked?

1

2

3

4

5

6

1

2

3

4

5

6

1. 1-[1]-1-

2. 2-[2]-2-

3. 3-[1]-2- 12. 3-[2]-2-3 18. 3-[3]-3-3

4. 4-[2]-2- 7. 4-[3]-3-4

5. 5-[3]-3-

6. 6-[4]-4-4

8. 5-[2]-3-4 11. 5-[4]-4-3

9. 6-[3]-3-3 10. 6-[4]-4-3

13. 4-[2]-2-3 17. 4-[3]-3-3

14. 5-[1]-2-3 16. 5-[3]-3-3

15. 6-[3]-3-3

1

2

3

4

5

6

1. 1-[1]-12. 2-[2]-23. 3-[1]-24. 4-[2]-25. 5-[3]-36. 6-[4]-4

1. 1-[1]-12. 5-[1]-13. 6-[2]-24. 2-[3]-35. 4-[2]-36. 3-[2]-3

7. 1-[1]-1-3

9. 5-[2]-2-38. 5-[1]-1-3

10. 6-[2]-2-3 11. 6-[3]-3-3

12. 2-[3]-3-3

1

2

3

4

5

6Greedy Full search B&B

Page 49: Digitaalsüsteemid / Digital Systems · 2017. 9. 5. · Hulgad – Sets • hulk on elementide (objektide) kogum [Georg Cantor, 1845-1918] • hulk – set, element – element, member

D e p a r t m e n t o f C o m p u t e r E n g i n e e r i n g

digisys - introduction - 48© Peeter Ellervee

Pakkimine• Võimalikult efektiivne ressursside kasutamine

S1S2S3S4S5S6S7S8S9

S0

V0 V1 V2 V3 V4 V5 V6 V7 V8 V9

1D pakkimine(intervall-graafi värvimine)

[left-edge algorithm]

0 123 4 5

6

7

8 9

ruumae

g

pikkus

laiu

s

2D pakkimine(kastid laos)

[bottom-left algorithm]

piirang

0

1

2

3

4

5

6

7

pikkus

laiu

s

piirang

0

1

2

3

4 5

6

7

[parem tulemus]

Täpne lahendus lihtsa algoritmiga... Täpne lahendus töömahuka algoritmiga!