Transcript pps
Digitaalsüsteemid, andme- ja
juht-osa, modelleerimise alused
L2. Arvusüsteemid ja kahend-loogika
L3. Loogikafunktsioonide esitamine ja
teisendamine
L4. Digitaalsüsteemid, andme- ja juht-osa,
modelleerimise alused
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
1
Digitaalsüsteem
Süsteemid
NB! Piirid pole täpselt paigas…
Mehhaanikasüsteem
Elektrisüsteem
Elektroonikasüsteem
– liikumine
– elektrienergia
– infotöötlus
Analoogsüsteem – signaalide esitamine ja
töötlus pidevate suurustena
Digitaalsüsteem – signaalide esitamine ja
töötlus diskreetsete suurustena
Sardsüsteem (embedded system)
kaasajal (hajutatud) digitaalsüsteem, mis sisaldab nii analoogalamsüsteeme aga ka mehhaanilisi ja elektrilisi komponente
Suvaline digitaalsüsteem sissaldab alati analoog, elektrilisi ja
mehhaanilisi komponente – nt. nivoomuundurid, toide, lülitid, …
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
2
Rakendusprogrammid
Kasutajaliides
Progr.
keeled
Assembler /
binaarkood
Arvutisüsteem:
CPU + RAM
reaalarvud
Operatsioonisüsteem
sümbolid /
kümnendarvud
Abstraktsioonitasemed
kahendarvud /
kahendloogika
Protsessor
RTL:
ALU & Co
Pooljuhid:
Si, GaAs & Co
Transistorid /
traadid
Loogikaelemendid
Loogikafunktsioonid
digitaalsüsteem
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
3
Abstraktsioonitasemed
Süsteemi tase
moodulid & infokanalid
Algoritmi tase
alam-moodulid & protokollid
Register-siirete (RT) tase
ALS-d, registrid & siinid
Loogikatase
skeem loogikaelementidest
Füüsikatase
skeem transistoridest
kristalli pinnalaotus
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
4
Abstraktsioonitasemed
Süsteemi tase
Algoritmi tase
Käitumuslik mõõde
Register-siirete tase
Struktuurne mõõde
süsteemi spetsifikatsioon
CPU, mälu
Loogika
tase
algoritm
protsessor, alamsüsteem
register-siirete kirjeldus
ALU, register, MUX
Skeemi tase
loogika-avaldised
loogikalüli, triger
diferentsiaalvõrrandid
transistor
ristkülik / polügon
std.element / alam-element
makro-element
plokk / kiip
kiip / trükkplaat
Füüsikaline mõõde
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
5
Abstraktsioonitasemed
Tase
Süsteem
Abstraktsioon
Käitumine ruumis ja ajas,
väljaviigud, ajalised piirangud
Arhitektuur
Funktsionaalsete üksuste
üldine jaotus
Registersiire
Andmevoo sidumine sõlmede
ja mikrokäskudega
Funktsionaalsed Primitiivsed operatsioonid ja
moodulid
juhtimisvahendid
Loogika
Loogikafunktsioonid, skeemid
loogikaelementidest
Lülitus
Transistorskeemide
elektrilised omadused
Pinnalaotus
Geomeetrilised parameetrid
© Peeter Ellervee
Vahendid
Plokk-skeemid, diagrammid,
kõrgtaseme keeled
HDL-d, pinnaplaneeringu
vahendid ennustamiseks
Süntees, simuleerimine,
resursside kasutamine
Teegid, moodulite
generaatorid, skeemisisestus
Skeemisisestus, süntees ja
simuleerimine, test
RC ekstraheerimine, ajastuse
kontroll ja analüüs
Pinnalaotuse redaktor, DRC,
laotus ja trasseerimine
I207 - Digitaalloogika ja -süsteemid – L4
6
Disaininäide
Neli kahend-sisendit ja
-väljundit
nt. 4 lülitit (S1-S4) ja
4 valgusdioodi (L1-L4)
Sisendite muutumine
muudab väljundeid
Võimalik programm
int s3p=0, s4p=0, v=0; l4=0;
while (1) {
if (s1&!s2) l1=1; else l1=0;
if (!s1&((s3^s3p)&s3)) v++;
if (v>3) v=0;
l2=v/2; l3=v%2;
if (s1&s2&((s4^s4p)&!s4)) l4~=l4;
s3p=s3; s4p=s4; wait_100ms();
}
kui S1=1 & S2=0, siis
L1←1, muidu L1←0
s1…s4 – lülitid
kui S1=0 & S3↑, siis
V++ (V[1]≡L2, V[0]≡L3)
l1…l4 – LED-d (tuled)
kui S1=1 & S2=1 & S4↓,
siis L4← ┐L4
© Peeter Ellervee
DIP1…DIP4 programmis
leds – kõik 4 ühes sõnas!
üksikute bittidega
manipuleerimine?
I207 - Digitaalloogika ja -süsteemid – L4
7
Protsessor / kontroller
(C)PU – (Central) Processing Unit
sisendid/väljundid (lülitid, lambid, releed, ...)
vahetulemused (nt. muutujad registrites/mälus)
töötlus- e. arvutus-sõlm (nt. aritmeetika-loogikaseade)
juhtosa (käsuloendur ja -register, juhtautomaat, ...)
aritmeetikaloogikaseade
juhtautomaat
registrid
© Peeter Ellervee
sisend/
väljund
I207 - Digitaalloogika ja -süsteemid – L4
8
Disaininäide – mikrokontroller
Esialgne programm
leds: and -> ‘0’; or -> ‘1’
dubleeritud lugemine
Optimeeritud programm
~~ Shannoni arendus
char leds=0,dip3p=0,dip4p=0,v=0;
// Initsialiseerimine
while (1) {
if (DIP1&&!DIP2) leds|=0b1000;
else leds&=0b0111;
if (!DIP1&&((DIP3^dip3p)&&DIP3))
v++;
if (v>3) v=0;
leds=(leds&0b1001)|(v<<1);
if (DIP1&&DIP2&&
((DIP4^dip4p)&&!DIP4))
leds^=0b0001;
dip3p=DIP3; dip4p=DIP4;
led_out(leds); delay_100ms;
}
char leds=0,dip3p=0,dip4p=0,v=0;
// Initsialiseerimine
while (1) {
if (DIP1) {
if (DIP2) {
if ((DIP4^dip4p)&&!DIP4) leds^=0b0001;
leds&=0b0111;
}
else leds|=0b1000;
}
else {
if ((DIP3^dip3p)&&DIP3) v++;
if (v>3) v=0;
leds=(leds&0b0001)|(v<<1);
}
dip3p=DIP3; dip4p=DIP4;
led_out(leds); delay_100ms;
}
ROM – 548 / RAM – 81
ROM – 518 / RAM – 81
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L4
9
Disaininäide – skeem
Kombinatsioon-skeem
Tegevused
kui S1=1 & S2=0, siis
L1←1, muidu L1←0
L1 ← S1 & !S2
Loendur + loogika
kui S1=0 & S3↑, siis
V++ (V[1]≡L2, V[0]≡L3)
D-tiger – S3p ← S3
kui S1=1 & S2=1 & S4↓,
siis L4← ┐L4
L2 ←V[1]; L3 ← V[0]
Kolm parallelset osa
kombinatsioon-skeem
loendur + loogika
T-triger + loogika
v++ ← !S1 & !S3p & S3
T-triger + loogika
D-tiger – S4p ← S4
!L4 ← S1 & S2 & S4p & !S4
Asünkroonsed pisihädad
takti ja signaali muutuse
sünkroniseerimine
vt. S3 muutmist…
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L4
10
Disaininäide – skeem
http://www.itcollege.ee/~lrv/I207/switch4led4.txt
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L4
11
Andme-osa & juht-osa
Digitaalsüsteem = andme-osa + juht-osa
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
12
Andme-osa & juht-osa
Andme-osa (operatsioonosa e. operatsioonautomaat)
andmete töötlus (arvutamine) – operatsioonid (loogikafunktsioonid)
andmete salvestamine (mälu) – registrid (mäluelemendid)
taktsignaal
operatsioonid: registri väljund –> registri sisend
register: salvestab tulemusi
Juht-osa (juhtautomaat)
operatsioonide järjestamine
tingimuslik järjestamine
(eelmiste) operatsioonide tulemused / välised tingimused
(sisendsignaalid)
Algoritm – operatsioonide järjestus / mikroprogramm
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
13
Disaininäide #2 – valgusfoor
Valgusfoor kui digitaalsüsteem
andmeosa + juhtosa
Kogutsükkel 30 sek., andurid puuduvad
roheline
kollane
punane
kollane+punane
12 sek.
3 sek.
12 sek.
3 sek.
punane
kollane+punane
roheline
kollane
Andme-osa – loendur (0...14)
Juht-osa – automaat
I={<12,≥12},
© Peeter Ellervee
O={R1,Y1,G1,R2,Y2,G2,rst_cnt(?)}
I207 - Digitaalloogika ja -süsteemid – L4
14
Valgusfoor – andme-osa
Andme-osa = loendur
andme-osa
0…14 → 4 bitti (0…15!)
asünkroonne nullimine kui
loendur == 15 (e. 4-NAND)
12 sek. == 0…11
3 sek. == 12…14 e. ≥12
≥12 == 1100+1101+1110
(+1111 määramatusena)
≥12 == 11-- (e. 2-AND)
rst_cnt vajalikkus?
sõltub juht-osa “tarkusest”
© Peeter Ellervee
rst_cnt
≥12
juht-osa
R1 Y1 G1
R2 Y2 G2
http://enos.itcollege.ee/~lrv/I207/tlc-datapath.txt
I207 - Digitaalloogika ja -süsteemid – L4
15
Valgusfoor – tulemus
http://www.itcollege.ee/~lrv/I207/tlc-applet.txt
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid – L4
16
Tulemuse kontroll
Modelleerimine
Valmis-seade/prototüüp …
mudeli korrektsus?
simuleeritavus
Kasutatav keel?
C++?
Paralleelsus!
C++ lõimed?
ADA?
Spetsiaalkeeled?
• Veel üks keel! :-(
© Peeter Ellervee
… või mudel?
I207 - Digitaalloogika ja -süsteemid - L4
17
SW vs HW
Tarkvara
üksik kontrollvoog
mitu kontrollvoogu
ühel protsessoril
mitmel protsessoril
• hajutatud ülesanded - protsessorite vaheline kaugus
sünkroniseerimispunktid (muutujad)
Riistvara
paralleelselt töötavad moodulid
sünkroniseerimissignaalid
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L4
18
Riistvara modelleerimine
Paralleelselt töötavad moodulid
Mudel üksikul protsessoril
Tulemus peaks olema korratav
Lihtne põhimõte – signaalil uus ja vana väärtus
arvutatakse kõikide signaalide uued väärtused
signaalidele omistatakse uued väärtused
Analoogsüsteemid
igal simulatsioonitsüklil uus arvutus
Digitaalsüsteemid
uus arvutus ainult muutunud sisendite korral
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L4
19
Digitaalsed simulaatorid
Sama-aegsed operatsioonid
modelleerimine järjestikulises süsteemis
Simulatsioonitsükkel
signaalide järgmiste väärtuste leidmine
signaalide jooksvate väärtuste värskendamine
Tsükkelpõhised ja sündmustepõhised
cycle-based vs. event-based
Viite modelleerimine
ühikviide (unit-delay)
nullviide (zero-delay)
deltaviide (delta-delay)
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L5
20
Ühikviide
Peamiselt tsükkelpõhised simulaatorid
Igas simulatsioonitsüklis
arvuta (kõigi) signaalide uued väärtused
värskenda signaalide väärtused
suurenda simulatsiooniaega ühe ühiku võrra
[ja korda tsüklit 1-st alates]
leia uued
väärtused
© Peeter Ellervee
värskenda
väärtused
I207 - Digitaalloogika ja -süsteemid - L5
21
Ühikviide
a
X1 <= a and b;
x2 <= not c;
y <= x1 xor x2;
b
c
x1
a
b
x2
x1
c
y
y
t
x2
sündmuste
jadad
© Peeter Ellervee
t+1ns t+2ns
b=1
x1=1
c=0
x2=1
I207 - Digitaalloogika ja -süsteemid - L5
y=0
time
[ns]
22
Nullviide
Sündmustepõhised simulaatorid
Simulatsioonitsükkel - tsükkel tsüklis
sündmuse alusel arvuta uus väärtus, eemalda sündmus
lisa uus sündmus sündmuste jadasse
korda 1-st alates kuni leidub jooksvale simulatsiooniajale
planeeritud sündmusi
suurenda simulatsiooniaega ühe ühiku võrra
[ja korda tsüklit 1-st alates]
leia uus
väärtus,
eemalda
sündmus
© Peeter Ellervee
lisa uus
sündmus
I207 - Digitaalloogika ja -süsteemid - L5
suurenda
simul.aega
23
Nullviide (#1)
a
X1 <= a and b;
x2 <= not c;
y <= x1 xor x2;
b
c
x1
a
b
x2
x1
c
y
y
x2
sündmuste
jadad
t
t
t
b=1
b=1
c=0
c=0
c=0
I207 - Digitaalloogika ja -süsteemid - L5
t
x1=1 x2=1
x1=1 x2=1
x1=1 x2=1
© Peeter Ellervee
t
time
[ns]
y=0
y=0
24
Nullviide (#2)
a
X1 <= a and b;
x2 <= not c;
y <= x1 xor x2;
b
c
x1
a
b
x2
x1
c
y
y
x2
sündmuste
jadad
© Peeter Ellervee
t
t
b=1
b=1
x1=1
y=1
x2=1
c=0
x1=1
y=1
c=0
y=0
c=0
c=0
x2=1
I207 - Digitaalloogika ja -süsteemid - L5
t
t
t
time
[ns]
25
Deltaviide – -viide / -delay
Sündmustepõhised simulaatorid
Simulatsioonitsükkel - tsükkel tsüklis tsüklis
kõikide sündmuste jaoks arvuta uued väärtused (1. tsükkel)
eemalda kasutatud ja lisa uued sündmused sündmuste jadasse
korda 1-st alates kuni leidub jooksvale simulatsiooniajale
planeeritud sündmusi
suurenda simulatsiooniaega ühe ühiku võrra
[ja korda tsüklit 1-st alates]
leia uued
väärtused
kõikidele
jooksvatele
sündmustele
© Peeter Ellervee
eemalda
vanad ja
lisa uued
sündmused
I207 - Digitaalloogika ja -süsteemid - L5
suurenda
simul.aega
26
Deltaviide
a
X1 <= a and b;
x2 <= not c;
y <= x1 xor x2;
b
c
x1
a
b
x2
x1
c
© Peeter Ellervee
y
x2
y
t
t+
b=1
x1=1
c=0
x2=1
I207 - Digitaalloogika ja -süsteemid - L5
t+2
y=0
time
[ns]
27
Motivatsioon
Riistvara kirjelduskeel
Hardware Description Language (HDL)
Erinevad abstraktsiooni-tasemed
Sama keel kõikidel projekteerimisetappidel
… või vähemalt enamikel projekteerimisetappidel
Sama mooduli erinevate kirjelduste
võrreldavus
Simuleerimine erinevatel kirjeldustasemetel
Dokumenteerimine
Modelleeritav spetsifikatsioon
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L4
28