D0013E Introduktion till Digitalteknik

D0013E
Introduktion till
Digitalteknik
Slides :
Per Lindgren
EISLAB
[email protected]
Ursprungliga slides :
Ingo Sander
KTH/ICT/ES
[email protected]
Vem är Per Lindgren?
•  Professor Inbyggda System
•  Från Älvsbyn
•  Doktorerade i datorteknik 2000
–  Forskat på digitalteknik
(optimering av kretsar)
–  Senaste 10 åren mot inbyggda system
–  Inbyggd mjukvara
–  Realtidssystem
IE1204 Digital Design
2
Digitalteknik
• 
• 
• 
• 
• 
• 
Digital vs. Analog
Boolesk Algebra,Talsystem
Grindar och logik (kombinatoriska system)
Digitala kretsar/byggblock
Minnen/Vippor
Tillståndsmaskiner (sekvensiella system)
D0011E Digitalteknik f1
Digitalteknik
• 
• 
• 
• 
• 
• 
Digital vs. Analog
Boolesk Algebra,Talsystem
Grindar och logik (kombinatoriska system)
Digitala kretsar/byggblock
Minnen/Vippor
Tillståndsmaskiner (sekvensiella system)
D0011E Digitalteknik f1
Digitaltekniken skapade grunden
till denna utveckling
•  Enkel matematisk modell
–  Bara 1:or och 0:or som värden
–  Boolesk algebra
•  Störningsokänslig, effektiv implementering av
den matematiska modellen
–  Transistor
–  Integrerade kretsar
–  Framsteg i halvledarteknologin
•  Effektiva designmetoder och verktyg
IE1204 Digital Design
5
Egentligen borde digitaltekniken
vara sämre…
•  I stället för en analog signal som kan
anta kontinuerliga värden, så kan en
digital signal bara anta diskreta värden
101
100
011
010
001
000 001 010 001 010 011 100 100 011 011
IE1204 Digital Design
6
Digitaltekniken är mycket okänslig
för störningar!
Voltage
VDD
Logic value 1
V1,min
Undefined
V0,max
Logic value 0
•  Det är inte bara ett
spänningsvärde som
interpreteras som 1 eller
0 utan ett helt
spänningsområde
•  En avvikelse om några
mV kan vara mycket
störande inom
analogtekniken, men
gör ingen skillnad inom
digitaltekniken
VSS (Gnd)
IE1204 Digital Design
7
Fler bitar och högre sampling
höjer signalkvalitén
•  Har man tillräckligt många bitar och tillräckligt
hög samplingfrekvens efterliknar den digitala
signalen den analogen signalen
101
100
Analog signal
Digital signal (3 bit)
Digital signal (4 bit),
dubbla samplings frekvensen)
011
010
001
000 001 010 001 010 011 100 100 011 011
IE1204 Digital Design
8
Digitalteknik
• 
• 
• 
• 
• 
• 
Digital vs. Analog
Boolesk Algebra,Talsystem
Grindar och logik (kombinatoriska system)
Digitala kretsar/byggblock
Minnen/Vippor
Tillståndsmaskiner (sekvensiella system)
D0011E Digitalteknik f1
Matematisk modell
Boolesk Algebra: Axiomer
•  I boolesk algebra finns det bara 1 (sann/TRUE) och 0
(falsk) som värden
•  Följande operationer är definierade: AND (·), OR (+),
NOT (x)
•  Följande axiomer definierar den booleska algebran
IE1204 Digital Design
10
Binära tal
•  Digitaltekniken använder bara två
siffersymboler: 0 och 1
–  Enkelt att implementera – varje värde
motsvarar en spänningsnivå,t ex
•  0 Volt motsvarar 0
•  5 Volt motsvarar 1
Hur kan man då representera vanliga tal?
IE1204 Digital Design
11
Decimala talsystemet
•  I det decimala talsystemet har man 10
olika siffersymboler: 0 till 9
•  Ett decimaltal representeras med en
sekvens av siffersymboler
–  Positionen i sekvensen ger siffrans vikt och
multipliceras med en potens av 10 (basen i
decimalsystemet är 10)
(653)10 =6 ⋅10 2 + 5 ⋅101 + 3 ⋅10 0
IE1204 Digital Design
12
Decimala talsystemet
•  Representation av ett heltal
N 10 =x m −1 ⋅10 m −1 + x m −2 ⋅10 m −2 ...+ x1 ⋅10 1 + x 0 ⋅10 0
(653)10 =6 ⋅10 2 + 5 ⋅101 + 3 ⋅10 0
•  Representation av ett ”kommatal”
N 10 =x m −1 ⋅10 m −1 + x m −2 ⋅10 m −2 ...+ x1 ⋅10 1 + x 0 ⋅10 0 + x −1 ⋅10 −1 + x −2 ⋅10 −2 + ...
(6.53)10 =6 ⋅10 0 + 5 ⋅10 −1 + 3 ⋅10 −2
IE1204 Digital Design
13
Binära talsystemet
•  Binärsystemet fungerar på samma sätt
som decimalsystemet, men man
använder basen 2 i stället för 10!
N 2 =x m −1 ⋅ 2 m −1 + x m −2 ⋅ 2 m −2 ...+ x1 ⋅ 21 + x 0 ⋅ 20 + x −1 ⋅ 2−1 + x −2 ⋅ 2−2 + ...
( 110 )2 =1* 2 2 + 1* 21 + 0* 20 = ( 6 )10
( 11.01 )2 =1⋅ 21 + 1⋅ 20 + 0 ⋅ 2−1 + 1⋅ 2−2 = ( 3.25 )10
IE1204 Digital Design
14
Oktala talsystemet
(används sällan)
•  I det oktala talsystemet är basen 8 och
därmed används siffersymbolerna 0 till 7
N 8 =x m −1 ⋅ 8 m −1 + x m −2 ⋅ 8 m −2 ...+ x1 ⋅ 8 1 + x 0 ⋅ 8 0 + x −1 ⋅ 8 −1 + x −2 ⋅ 8 −2 + ...
( 65.3 )8 =6 ⋅ 8 1 + 5 ⋅ 8 0 + 3 ⋅ 8 −1 = ( 53.375 )10
IE1204 Digital Design
15
Hexadecimala talsystemet
•  I det hexadecimala talsystemet är
basen 16 och därmed används
siffersymbolerna 0 till 9 och A till F
N 16 =x m −1 ⋅16 m −1 + x m −2 ⋅16 m −2 ...+ x1 ⋅16 1 + x 0 ⋅16 0 + x −1 ⋅16 −1 + x −2 ⋅16 −2 + ...
( AE.8 )16 =10 ⋅16 1 + 14 ⋅16 0 + 8 ⋅16 −1 = ( 174.5 )10
IE1204 Digital Design
16
Talsystem med basen b
•  En allmän formulering kan erhållas för
basen b
N b =x m −1 ⋅ b m −1 + x m −2 ⋅ b m −2 ...+ x1 ⋅ b 1 + x 0 ⋅ b 0 + x −1 ⋅ b −1 + x −2 ⋅ b −2 + ...
IE1204 Digital Design
17
Heltalen för olika talsystem
IE1204 Digital Design
2
8
10
16
0
0
0
0
1
1
1
1
10
2
2
2
11
3
3
3
100
4
4
4
101
5
5
5
110
6
6
6
111
7
7
7
1000
10
8
8
1001
11
9
9
1010
12
10
A
1011
13
11
B
1100
14
12
C
1101
15
13
D
1110
16
14
E
1111
17
15
F
10000
20
16
10
18
Omvandling mellan decimala och
binära tal
•  Omvandling från binär till decimal är trivial
•  Omvandlingen från decimaltal till binärtal görs genom
upprepade delning med 2
–  Resten ger siffervärdet
–  Siffrorna kommer i omvänd ordning – Least Significant Bit (LSB)
kommer först
53 ÷ 2
26 ÷ 2
13 ÷ 2
6÷2
3÷2
1÷ 2
IE1204 Digital Design
= 26 R1 ⇒ x0 = 1 (LSB)
= 13R 0 ⇒
x1 = 0
= 6R1 ⇒
x2 = 1
= 3R 0 ⇒
x3 = 0
= 1R1 ⇒
x4 = 1
= 0R1 ⇒ x5 = 1 (MSB)
19
Sammanfattning
•  Det finns olika talsystem
•  Digitaltekniken använder det binära
talsystemet
•  Man kan omvandla tal mellan olika
talsystem
IE1204 Digital Design
20
Digitalteknik
• 
• 
• 
• 
• 
• 
Digital vs. Analog
Boolesk Algebra,Talsystem
Grindar och logik (kombinatoriska system)
Digitala kretsar/byggblock
Minnen/Vippor
Tillståndsmaskiner (sekvensiella system)
D0011E Digitalteknik f1
Switch!
En switch har två lägen"
Sluten
x = 1
Sluten/Till (Closed/On)"
Öppen/Från (Open/Off)"
Öppen
x = 0
Symbol
S
x
IE1204 Digital Design, HT 2010
22
Implementering av logiska
funktioner!
Switchen kan användas för att implentera
logiska funktioner"
S
Power
supply
L(x) är en logisk funktion
x är en logisk variabel
IE1204 Digital Design, HT 2010
Light
x
"0 Light Off
L(x) =#
$ 1 Light On
23
Operation AND (OCH)!
AND-operationen (⋅) uppnås genom
switchar som kopplas i serie"
Power
supply
S
S
x
x
1
2
Light
L(x) =x1 ⋅ x 2
IE1204 Digital Design, HT 2010
24
Operation OR (ELLER)!
OR-operationen (+) uppnås genom
switchar som kopplas parallellt"
S
x
Power
supply
1
S
Light
x
2
L(x) =x1 + x 2
IE1204 Digital Design, HT 2010
25
Operation NOT (ICKE)!
NOT-funktionen inverterar det logiska
värdet"
R
Power
supply
x
S
Light
L(x) =x
IE1204 Digital Design, HT 2010
26
Sanningstabell!
En logisk funktion kan också beskrivas
genom en sanningstabell (truth table)"
1 står för sann (true)
0 står för falsk (false)
IE1204 Digital Design, HT 2010
27
Logiska grindar
AND-grinden (OCH)!
IEC Symbol
(International Electrotechnical
Commission)
A!
B!
Y!
A
0"
0"
0"
0"
1"
0"
B
1"
0"
0"
1"
1"
1"
Y = A⋅ B
&
Traditional (American)
Symbol
A
Y
B
IE1204 Digital Design, HT 2010
Y
28
Logiska grindar
OR-grinden (ELLER)!
IEC Symbol
(International Electrotechnical
Commission)
A!
B!
Y!
A
0"
0"
0"
0"
1"
1"
B
1"
0"
1"
1"
1"
1"
Y = A+ B
1
Traditional (American)
Symbol
A
Y
B
IE1204 Digital Design, HT 2010
Y
29
Logiska grindar
Inverterare (NOT-grinden (ICKE))!
Inverterare
(Inverter)
IEC Symbol
(International Electrotechnical
Commission)
A
A!
Y!
0"
1"
1"
0"
Y=A
IE1204 Digital Design, HT 2010
1
Y
Traditional (American)
Symbol
Y
A
30
Logiska grindar
XOR-grinden (Exclusivt ELLER)!
IEC Symbol
(International Electrotechnical
Commission)
A!
B!
Y!
A
0"
0"
0"
0"
1"
1"
B
1"
0"
1"
1"
1"
0"
Y = A ⊕ B = A⋅ B + A ⋅ B
1
Traditional (American)
Symbol
A
Y
B
IE1204 Digital Design, HT 2010
Y
31
Vad är grindnätets funktion?!
x1
f
€
x2
€
€
IE1204 Digital Design, HT 2010
32
Tidsdiagram!
x1
€
€
x2
x 1 1 0 A
f
B
€
x 1 2 0 A 1 0 B 1 0 f 1 0 IE1204 Digital Design, HT 2010
Time
33
Sanningstabell!
x1
€
€
A
f
B
x2
x1
x2
f (
x
1
, x
2
)
A € B
0 0 1 1 IE1204 Digital Design, HT 2010
0 1 0 1 1 1 0 1 1
1
0
0
0
0
0
1
34
Flera grindnät kan implementera
samma funktion!!
x1
f
a)
x2
€
f =x1 + x1 ⋅ x 2
€
€
b)
x1
g
€x 2
€
€
IE1204 Digital Design, HT 2010
g = x1 + x 2
€
35
Boolesk algebra!
Eftersom flera grindnät kan implementera
samma funktion, så vill man hitta den
mest kostnadseffektiva
implementeringen!
Grindnäten kan bli mycket stora"
En matematisk bas behövs så att
automatiseringen av
grindnätsoptimering kan genomföras
med datorer"
IE1204 Digital Design, HT 2010
36
Boolesk algebra
Axiomer!
IE1204 Digital Design, HT 2010
37
Boolesk algebra
Enkla räknelagar!
Med axiomerna som bas kan man
formulera nya lagar (teorem)"
IE1204 Digital Design, HT 2010
38
Boolesk algebra
Räknelagar med flera variabler!
IE1204 Digital Design, HT 2010
39
Notationsalternativ!
Olika författare använder olika notationer"
IE1204 Digital Design, HT 2010
40
Analys och syntes!
Syntes"
Konstruktion av ett grindnätverk som
implementerar en given logisk funktion"
Analys"
Framtagandet av den logiska funktionen för
ett existerande grindnätverk"
IE1204 Digital Design, HT 2010
41
Hur kan följande sanningstabell
implementeras med logiska
grindar?!
IE1204 Digital Design, HT 2010
x1!
x2!
f(x1,x2)!
0"
0"
1"
0"
1"
1"
1"
0"
0"
1"
1"
1"
42
Hur kan följande sanningstabell
implementeras med logiska
grindar?!
x1!
x2!
f(x1,x2)!
0"
0"
1"
0"
1"
1"
1"
0"
0"
1"
1"
1"
1.  Ta fram den logiska funktionen:"
f = x1 x 2 + x1 x 2 + x1 x 2
IE1204 Digital Design, HT 2010
43
Hur kan följande sanningstabell
implementeras med logiska
grindar?!
f = x1 x 2 + x1 x 2 + x1 x 2
2.  a) Gör en direkt implementering av den
logiska funktionen:"
x1
€
x2
f
IE1204 Digital Design, HT 2010
44
Hur kan följande sanningstabell
implementeras med logiska
grindar?!
2.  (bättre) Minimera den logiska
funktionen"
f =
x1 x 2 + x1 x 2 + x1 x 2
= x1 x 2 + x1 x 2 + x1 x 2 + x1 x 2
= x1 (x 2 + x 2 ) + (x1 + x1 )x 2
=
x1 ⋅ 1+1⋅ x 2
=
x1 + x 2
IE1204 Digital Design, HT 2010
Lägg till redundant term x1x 2 (7b)
Distribution (12a)
(8b)
45
Hur kan följande sanningstabell
implementeras med logiska
grindar?!
3.  Implementera den minimerade
funktionen" f = x + x
1
2
x1
x2
f
€
Mycket enklare implementering!
IE1204 Digital Design, HT 2010
46
Sammanfattning
Logiska funktioner kan beskrivas med
boolesk algebra"
Det finns logiska grindar för de vanliga
booleska funktioner"
En logisk funktion kan uttryckas och
skrivas om mha boolesk algebra"
IE1204 Digital Design, HT 2010
47
Digitalteknik
• 
• 
• 
• 
• 
• 
Digital vs. Analog
Boolesk Algebra,Talsystem
Grindar och logik (kombinatoriska system)
Digitala kretsar/byggblock
Minnen/Vippor
Tillståndsmaskiner (sekvensiella system)
D0011E Digitalteknik f1
Multiplexern (Mux)!
Med multiplexern kan
man välja vilken
ingång man ska
koppla till utgången"
X
1
Y
0
Z
S
Z = SX + S Y
IE1204 Digital Design, HT 2010
49
Hierarkier av Muxar!
X11
1
X10
0
X01
1
X00
0
1
0
Z
X11
X10
X01
X00
11
10
01
00
S1
S0
IE1204 Digital Design, HT 2010
S1S0
50
Z
(Mappning till muxar:
Shannon-dekomposition)!
En boolesk funktion f(xn, …, x1, x0) kan delas upp enligt"
f(xn, …, x1, x0) =x0 f(xn, …, x1, 1) + x0f(xn, …, x1, 0)"
xn
x1
x0
Funktionen kan sedan implementeras med en
multiplexer"
f(xn…x0,1)
f1(xn…x1)
xn
xn
f1
f1
f(xn…x0)
x1
x1
f 1 f(x …x ,0)
f
f0(xn…x1)
n
0
xn
xn
f0
f0
x1
x1
x0
x0
0
IE1204 Digital Design, HT 2010
51
f
Demultiplexern!
Ingången kopplas till en vald utgång"
f
1
1
1
1
0
a1
0
0
1
1
-­‐
a0
0
1
0
1
-­‐
y0
1
0
0
0
0
y1
0
1
0
0
0
y2
0
0
1
0
0
y3
y2
f y1
y0
y3
0
0
0
1
0
a 1a 0
IE1204 Digital Design, HT 2010
52
(Read-Only Memory)!
a0
a1
...
am
Sel0
0/1
0/1
...
0/1
Sel1
0/1
0/1
...
0/1
.
.
.
.
.
.
0/1
Sel2m
0/1
...
0/1
En
dn-1
IE1204 Digital Design, HT 2010
dn-2
...
d0
53
Digitalteknik
• 
• 
• 
• 
• 
• 
Digital vs. Analog
Boolesk Algebra,Talsystem
Grindar och logik (kombinatoriska system)
Digitala kretsar/byggblock
Minnen/Vippor
Tillståndsmaskiner (sekvensiella system)
D0011E Digitalteknik f1
Sekvensiella System!
a(t)"
f(a(t))"
Ett sekvensiellt system har ett inbyggt minne - utsignalen beror därför"
BÅDE av insignalens NUVARANDE och FÖREGÅENDE värde(n)"
IE1204 Digital Design, HT10"
55"
Sekvensmaskiner!
Alla system i naturen har (ofta) ett
dynamiskt beteende och förändrar sig
ständigt, ibland med återkommande
mönster..."
Att bygga digitala system förutsätter att vi
kan beskriva dynamiska beteenden, dvs
att beräkna, behandla och skapa
sekvenser..."
IE1204 Digital Design, HT10"
56"
Hur får vi hårdvara att minnas
någonting?!
För att minnas någonting, så måste vi på något sätt
hålla kvar informationen."
"
Ett sätt är att lagra information
i form av en laddning på en
kapacitans (DRAM)."
"
Ett annat sätt är att låta informationen ”springa runt i en
ring och bita sig själv i svansen”."
IE1204 Digital Design, HT10"
57"
Hur får vi hårdvara att minnas
någonting?!
"
"
"
MUX"
Select
0
1
f1 f0
- f0
f
f0
f1"
f1 -
f1
f0"
1"
f"
0"
Select"
Om vi återkopplar och kopplar utgången f till en av ingångarna
(tex f0) så kommer Muxen att få ett nytt värde när den andra
ingången selekteras (Select=1), och behålla detta värde när
återkopplingen selekteras (Select=0)"
IE1204 Digital Design, HT10"
58"
Latchen (den återkopplade Muxen)!
Latch"
MUX"
f1"
f0"
1"
D
f"
Q
D
0"
Select"
Enable
Q"
D
Enable"
Lång återkoppling (~4T)"
IE1204 Digital Design, HT10"
Enable
0
D Q
- M
1
D D
59"
Hur skapar vi en sekvens?!
En sekvens får vi om vi tar ett värde och sedan
bestämmer nästa värde utifrån nuvarande värde."
"
Ex:"0,1,0,1,… "
nästa värde = NOT (nuvarande värde)"
"
Om vi återkopplar nuvarande värde, behandlar det
(inverterar) och därigenom skapar nästa värde samt
kommer ihåg det tills nästa värde skall beräknas"
IE1204 Digital Design, HT10"
60"
Sekvensmaskiner (forts.)!
Latch"
NOT"
D
D
Q
Q
Clk
Problem!!! Om CLK är 1 för länge så snurrar värdena
bara runt med en period av Tlatch+Tlogic"
IE1204 Digital Design, HT10"
61"
D-vippan (eng. Flip-flop)!
Master"
D
D
Slave"
D
Clk
Q
Q
Inverterar-ring på clk
anger negativ flank."
Lösning: Koppla två D-latchar
"
" efter varandra!"
IE1204 Digital Design, HT10"
Clk D Q Q
↓
0 0 1
↓
1 1 0
1
- M M
0
- M M
↑
- M M
D-vippa"
D
Q
Q
62"
Tidsdiagram Master-Slave!
Master"
D"
Clock "
D" Q"
Clk " Q "
Slave "
Qm" "
D" Q"
Qs""
Clk " Q "
Q"
Clock "
D"
Qm" "
Q "= "Qs""
IE1204 Digital Design, HT10"
Q"
63"
Timing Analysis!
Det är möjligt att kunna bestämma den
maximala frekvensen i en sekvensiell
krets genom att ha information om"
Grindfördröjningar tlogic"
Setup-tid tsu för vippan"
Hold-tid th för vippan"
Clock-to-utgång tcQ tiden"
IE1204 Digital Design, HT10"
64"
Setup- & Hold-time!
D måste vara stabil inom
detta område för att garantera
funktionen"
thold"
D"
tsetup"
Q"
Clk"
tclk-to-Q"
IE1204 Digital Design, HT10"
65"
Vad är den maximala frekvensen?!
Grindfördröjningar"
tlogic = tNOT = 1.1 ns"
Setup-tid "
tsu = 0.6 ns"
Hold-tid "
th = 0.4 ns "
Clock-to-utgång "
tcQ = 1.0 ns"
T = tsu + tcQ + tlogic = 2.7 ns"
F = 1/T = 370 MHz"
"
IE1204 Digital Design, HT10"
66"
Shiftregister!
En shiftregister innehåller flera vippor"
För varje klockcykel skiftar man in ett värde från
vänster till höger"
Många konstruktioner använder shiftregister
och värden Q4, …, Q1 som ingångsvärden till
andra komponenter "
IE1204 Digital Design, HT10"
67"
Vanliga typer av Shift-register!
Parallel-In/Parallel-Out (PIPO)"
Parallel-In/Serial-Out (PISO)"
Serial-In/Parallel-Out (SIPO)"
Serial-In/Serial-Out (SISO)"
"
Användningsområden"
Köer, tex First-In/First-Out (FIFO)"
Mönsterigenkänning (eng. Pattern recognizers)"