05.08.2013 Views

Föreläsning 1, Binära tal och logiska grindar

Föreläsning 1, Binära tal och logiska grindar

Föreläsning 1, Binära tal och logiska grindar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Moment 2 - Digi<strong>tal</strong> elektronik<br />

<strong>Föreläsning</strong> 1<br />

<strong>Binära</strong> <strong>tal</strong> <strong>och</strong> <strong>logiska</strong> <strong>grindar</strong><br />

Jan Thim<br />

2009-03-05 Jan Thim<br />

F1: <strong>Binära</strong> <strong>tal</strong> <strong>och</strong> <strong>logiska</strong> <strong>grindar</strong><br />

• Innehåll:<br />

– Introduktion<br />

– Talsystem <strong>och</strong> koder<br />

– Räkna binärt<br />

– Logiska <strong>grindar</strong><br />

– Boolesk algebra<br />

2009-03-05 Jan Thim<br />

1<br />

2<br />

1


Analoga signaler<br />

Varför lär vi oss detta?<br />

2009-03-05 Jan Thim<br />

Analoga-digi<strong>tal</strong>a system<br />

Digi<strong>tal</strong>a signaler<br />

Digi<strong>tal</strong>t system<br />

2009-03-05 Jan Thim<br />

Analoga signaler<br />

A/D-omvandlare D/A-omvandlare<br />

3<br />

4<br />

2


Digi<strong>tal</strong>a signaler<br />

• Värden på digi<strong>tal</strong>a siffror är<br />

– 0<br />

– 1<br />

• En digi<strong>tal</strong> signals värde representeras av en spänning<br />

1<br />

0<br />

2009-03-05 Jan Thim<br />

Analog spänning<br />

Analogt jämfört med Digi<strong>tal</strong>t<br />

• Digi<strong>tal</strong>t<br />

– Diskontinuerligt<br />

• Värde (kvantisering)<br />

Variabeln kan endast anta ett begränsat an<strong>tal</strong> värden<br />

• Tid (tidsdiskret)<br />

Variabeln är enbart definierad vid vissa tidpunkter<br />

• Exempel på diskreta värden<br />

En omkopplares position (på/av), digi<strong>tal</strong> logik (0/1), värdet på en sedel<br />

(20/50/100/500 …)<br />

2009-03-05 Jan Thim<br />

5<br />

6<br />

3


Varför digi<strong>tal</strong>t?<br />

• Okänslig för störningar<br />

• Tillförlitlig<br />

• Inte dyrt<br />

• Programmerbart<br />

• Reproducerbart<br />

• Många digi<strong>tal</strong>a funktioner kan integreras i en integrerad<br />

krets<br />

2009-03-05 Jan Thim<br />

Digi<strong>tal</strong> teknik finns överallt<br />

• Elektronik baserad på digi<strong>tal</strong>teknik används i många<br />

olika tillämpningar<br />

– Bilmotorer<br />

– Mikrovågsugnar<br />

– Digi<strong>tal</strong>a ur<br />

– Mobiltelefoner<br />

– Videospel<br />

– Etc. etc.<br />

2009-03-05 Jan Thim<br />

7<br />

8<br />

4


<strong>Binära</strong> <strong>tal</strong>systemet<br />

• Binärt<br />

– Positionssystem<br />

– Två symboler används, B = { 0, 1 }<br />

– <strong>Binära</strong> <strong>tal</strong> gör det lätt att bygga elektronik baserade på<br />

elektroniska omkopplare<br />

– En algebra utvecklad av Boole gör det lätt att hantera <strong>logiska</strong><br />

uttryck baserade på binära <strong>tal</strong><br />

2009-03-05 Jan Thim<br />

Representera positiva hel<strong>tal</strong><br />

• För positiva hel<strong>tal</strong>:<br />

ex., Decimalt <strong>tal</strong><br />

= N<br />

∑ − q 1<br />

i = 0<br />

2009-03-05 Jan Thim<br />

i<br />

ib s<br />

2 1 0<br />

( 234 ) 10 = s 2 b + s1b<br />

+ s 0 b<br />

låt b = 10, S = { 0, 1, K , 8, 9}<br />

2<br />

1<br />

0<br />

( 234 ) 10 = 2•<br />

10 + 3•<br />

10 + 4•<br />

10<br />

( 234 ) 10 = 2•<br />

100 + 3•<br />

10 + 4•<br />

1<br />

( ) =<br />

200 + 30 + 4<br />

234 10<br />

9<br />

10<br />

5


Representera positiva hel<strong>tal</strong><br />

• exempel, Binärt <strong>tal</strong> (basen 2)<br />

3 2 1 0<br />

( 1011) 2=<br />

s 3b<br />

+ s2b<br />

+ s1b<br />

+ s0b<br />

låt b = 2, S = { 0, 1}<br />

3 2 1 0<br />

( 1011) 2=<br />

1•<br />

2 + 0 • 2 + 1•<br />

2 + 1•<br />

2<br />

( 1011) 2=<br />

1•<br />

( 1000)<br />

2+<br />

0 • ( 100)<br />

2+<br />

1•<br />

( 10)<br />

2+<br />

1•<br />

( 1)<br />

2<br />

( 1011) 2=<br />

( 1)<br />

10 • ( 8)<br />

10+<br />

( 0)<br />

10 • ( 4)<br />

10+<br />

( 1)<br />

10•<br />

( 2)<br />

10+<br />

( 1)<br />

10•<br />

( 1)<br />

10<br />

( 1011 ) = ( 8+<br />

2+<br />

1)<br />

= ( 11)<br />

10<br />

b<br />

2<br />

=<br />

F = s<br />

10<br />

− 1<br />

10<br />

2009-03-05 Jan Thim<br />

Exempel på decimal <strong>tal</strong><br />

b<br />

−1<br />

+ s<br />

− 2<br />

b<br />

− 2<br />

2009-03-05 Jan Thim<br />

+ s<br />

− 3<br />

b<br />

I det här exemplet så ser vi på ett<br />

decimalt <strong>tal</strong> som har tre siffror till<br />

höger om decimalpunkten<br />

− 3<br />

−1<br />

−2<br />

−3<br />

( 0.<br />

625 ) 10 = 6•10<br />

+ 2•10<br />

+ 5•10<br />

( 0. 625 ) 10 = 6•0<br />

. 1+<br />

2•0<br />

. 01+<br />

5•0<br />

. 001<br />

( 0. 625 ) 10 = 0.<br />

600 + 0.<br />

0200 + 0.<br />

005<br />

11<br />

12<br />

6


Exempel på <strong>Binära</strong> ”decimal<strong>tal</strong>”?<br />

b = 2<br />

−1<br />

−2<br />

−3<br />

( 0.<br />

101)<br />

= 1•2<br />

+ 0•2<br />

+ 1•2<br />

2<br />

1 1 1<br />

0 2= 1•<br />

+ 0•<br />

+ 1•<br />

2 4 8<br />

( . 101)<br />

( 0 . 101)<br />

= ( 0.<br />

100)<br />

2+<br />

( 0.<br />

000)<br />

2+<br />

( 0.<br />

001)<br />

2<br />

2<br />

2009-03-05 Jan Thim<br />

Procedur för bas-konvertering<br />

Exempel: Omvandla 57 10 till binärt <strong>tal</strong><br />

2009-03-05 Jan Thim<br />

kvot rest<br />

57 / 2 = 28 1<br />

28 / 2 = 14 0<br />

14 / 2 = 7 0<br />

7 / 2 = 3 1<br />

3 / 2 = 1 1<br />

1 / 2 = 0 1<br />

Svar: 57 10 = 111001 2<br />

Minst signifikanta biten<br />

(eng. Least Significant Bit)<br />

Mest signifikanta biten<br />

(eng. Most Significant Bit)<br />

13<br />

14<br />

7


Att tänka på vid omvandling<br />

• Syftet med binär representation är att erhålla <strong>tal</strong> i ett<br />

format som passar digi<strong>tal</strong> logik<br />

• Ju större noggrannhet ett binärt <strong>tal</strong> har desto fler bitar<br />

krävs mer digi<strong>tal</strong>a kretsar<br />

• Alla <strong>tal</strong> i en bas kan INTE representeras exakt i en<br />

annan bas (avrundningsfel)<br />

2009-03-05 Jan Thim<br />

<strong>Binära</strong>, Ok<strong>tal</strong>a <strong>och</strong> Hexadecimala <strong>tal</strong><br />

• Det är lätt att konvertera binära <strong>tal</strong> till andra, mer<br />

lättarbetade format genom att gruppera bitar<br />

tillsammans <strong>och</strong> sedan konvertera till lämplig bas<br />

– Ok<strong>tal</strong>a <strong>tal</strong> S={ 0, 1, ... , 7 }, basen = 8<br />

• 3-bitars grupper<br />

– Hexadecimal S={ 0, ... , 9, A, B, C, D, E, F }, basen = 16<br />

• 4-bitars grupper<br />

2009-03-05 Jan Thim<br />

15<br />

16<br />

8


Exempel: Binär till Ok<strong>tal</strong> omvandling<br />

N2<br />

= 1010110100.<br />

1<br />

gruppera i 3-<br />

bitars grupper från " decimal"-punkten<br />

N2<br />

= 1010110100<br />

. 1<br />

fyll ut med nollor för att få ett ok<strong>tal</strong>t <strong>tal</strong> (en full grupp)<br />

N2<br />

= 001010110100<br />

. 100<br />

Konvertera varje 3-<br />

bitars grupp<br />

N8<br />

= 1 2 6 4 . 4<br />

N = 1264.4<br />

8<br />

( ) 8<br />

2009-03-05 Jan Thim<br />

Exempel: Binär till hexadecimal<br />

N2=<br />

1010110100.<br />

1<br />

gruppera i 4 - bitars grupper från " decimal"-punkten<br />

N2=<br />

1010110100<br />

. 1<br />

fyll ut<br />

med nollor för att få en komplett grupp<br />

N2=<br />

001010110100<br />

. 1000<br />

Konvertera varje 4 - bitars grupp<br />

N16=<br />

2 B 4 . 8<br />

N = 2B4.8 = 2B4.8<br />

16<br />

( ) 16 ( ) H<br />

2009-03-05 Jan Thim<br />

17<br />

18<br />

9


Viktade koder<br />

• Godtycklig vikt kan tilldelas varje position<br />

– Binary Coded Decimal (BCD)<br />

• 8, 4, 2, 1<br />

• exempel, 1001 = 8 + _ + _ + 1 = 9<br />

2009-03-05 Jan Thim<br />

Icke-viktade koder<br />

• Positionen i <strong>tal</strong>et spelar ingen roll<br />

– För viktade koder har varje position en vikt som multipliceras<br />

med siffran på den positionen<br />

– Den vanligaste icke-viktade koden kallas för Gray kod<br />

2009-03-05 Jan Thim<br />

19<br />

20<br />

10


3-bitars Gray kod<br />

Ordning Kodord<br />

0 0 0 0<br />

1 0 0 1<br />

2 0 1 1<br />

3 0 1 0<br />

4 1 1 0<br />

5 1 1 1<br />

6 1 0 1<br />

7 1 0 0<br />

2009-03-05 Jan Thim<br />

Alfanumeriska koder<br />

• Alfanumeriska koder representerar både<br />

– Decimala siffersymboler<br />

• 0 - 9<br />

– Alfabetets tecken<br />

• A –Z, a –z<br />

– Övriga skrivbara tecken<br />

• T.ex: %, &, ?, *, @<br />

– Styrsymboler<br />

• Blanksteg, ny rad, etc.<br />

– Standardkoder: ASCII, EBCDIC, etc.<br />

2009-03-05 Jan Thim<br />

21<br />

22<br />

11


ASCII<br />

• ASCII kodning<br />

– American Standard Code for<br />

Information Interchange<br />

– ASCII-tabell<br />

• Ger hexadecimal kod<br />

• Rad: minst signifikanta positionen<br />

• Kolumn: mest signifikanta<br />

positionen<br />

• Exempel: ASCII(’C’) = 43 16<br />

2009-03-05 Jan Thim<br />

Negativa <strong>tal</strong><br />

• teckenbit<br />

– Biten längst till vänster (S) representerar <strong>tal</strong>ets tecken<br />

• 1 negativt<br />

• 0 positivt<br />

– Bitarna till höger om teckenbiten är storleken på <strong>tal</strong>et<br />

S ...<br />

q-bitar som representerar storleken av<br />

<strong>tal</strong>et<br />

2009-03-05 Jan Thim<br />

23<br />

24<br />

12


Två-komplement<br />

• Två-komplement representation<br />

– För ett n-bitars <strong>tal</strong><br />

• är vikten för MSB –2n-1 (istället för +2n-1 )<br />

• övriga bitars vikter är samma som för binär kodning<br />

– Procedur för att utföra två-komplement<br />

• invertera samtliga bitar i <strong>tal</strong>et<br />

• addera 1 till <strong>tal</strong>et<br />

– Exempel:<br />

– Bilda två-komplement till 8-bitars <strong>tal</strong>et 00010001 2 (=17 10 )<br />

– 00010001 2<br />

– 11101110<br />

– + 1<br />

– 11101111 2-k = -17 10<br />

2009-03-05 Jan Thim<br />

Addition <strong>och</strong> subtraktion<br />

• Exempel:<br />

3 + 2 = ?<br />

0011<br />

0010<br />

0101 = 510 -1 - 3 = ?<br />

1111<br />

1101<br />

1 1100 = -410 2009-03-05 Jan Thim<br />

7 - 1 = ?<br />

0111<br />

1111<br />

1 0110 = 6 10<br />

2 - 3 = ?<br />

0010<br />

1101<br />

1111 = -110 25<br />

26<br />

13


Multiplikation/Division med 2<br />

• Skifta det binära <strong>tal</strong>et ett steg vänster<br />

0 0 1 0 = +2<br />

0 1 0 0 0 = +4<br />

2009-03-05 Jan Thim<br />

1 1 1 0 = -2<br />

1 1 0 0 0 = -4<br />

Skifta det binära <strong>tal</strong>et ett steg höger<br />

= +4<br />

0 1 0 0 1 1 0 0 = -4<br />

0 0 1 0 = +2<br />

1 1 1 0 = -2<br />

Boolesk Algebra – Definitioner<br />

Konstanter<br />

0 (Falsk)<br />

1 (Sann)<br />

Operationer<br />

+ (ELLER)<br />

· (OCH)<br />

’ (ICKE)<br />

2009-03-05 Jan Thim<br />

Axiom<br />

0 + 0 = 0<br />

1 · 1 = 1<br />

1 + 1 = 1<br />

0 · 0 = 0<br />

0 + 1 = 1 + 0 = 1<br />

1 · 0 = 0 · 1 = 0<br />

0’ = 1<br />

1’ = 0<br />

27<br />

28<br />

14


Räknelagar för en variabel<br />

x + x = x<br />

x · x = x<br />

x + x’ = 1<br />

x · x’ = 0<br />

2009-03-05 V.L = H.LJan<br />

Thim<br />

x + 1 = 1<br />

x · 0 = 0<br />

x + 0 = x<br />

x · 1 = x<br />

(x’)’ = x<br />

Dessa räknelagar kan enkelt visas utifrån axiomen.<br />

Visa att x + x = x<br />

Låt x = 1: 1 + 1 = 1<br />

Låt x = 0: 0 + 0 = 0<br />

Räknelagar för flera variabler<br />

• Associativa lagar<br />

x + (y + z) = (x + y) + z<br />

x·(y·z) = (x·y)·z<br />

Kommutativa lagar<br />

x + y = y + x<br />

x·y = y·x<br />

Distributiva lagar<br />

x·(y + z) = x·y + x·z<br />

x + y·z = (x + y)·(x + z)<br />

2009-03-05 Jan Thim<br />

29<br />

30<br />

15


Räknelagar för flera variabler<br />

• absorptionslagar<br />

x + x·y = x<br />

x·(x + y) = x<br />

Concensuslagen<br />

x·y + x’·z = x·y + x’·z + y·z<br />

De Morgans lag<br />

(x + y)’ = x’ · y’<br />

(x·y)’ = x’ + y’<br />

2009-03-05 Jan Thim<br />

x + x·y = x ·(1 + y) = x ·1 = x<br />

x·(x + y) = x·x + x·y = x + x·y<br />

= x·(1 + y) = x ·1 = x<br />

x + y = x·y<br />

x·y = x + y<br />

Grundläggande <strong>logiska</strong> <strong>grindar</strong><br />

Augustus de Morgan<br />

Namn/operator Symbol Funktion Logisk operation<br />

OCH, eng. AND<br />

.<br />

ELLER, eng. OR<br />

+<br />

ICKE, eng. NOT<br />

’<br />

Z<br />

2009-03-05 Jan Thim<br />

X Y Z<br />

0 0 0<br />

0 1 0<br />

1 0 0<br />

1 1 1<br />

X Y Z<br />

0 0 0<br />

0 1 1<br />

1 0 1<br />

1 1 1<br />

X Z<br />

0 1<br />

1 0<br />

Z = X • Y<br />

Z = X + Y<br />

Z = X’<br />

31<br />

32<br />

16


Grundläggande <strong>logiska</strong> <strong>grindar</strong><br />

Namn/operator Symbol Funktion Logisk operation<br />

NAND<br />

NOR<br />

XOR<br />

⊕<br />

2009-03-05 Jan Thim<br />

X Y Z<br />

0 0 1<br />

0 1 1<br />

1 0 1<br />

1 1 0<br />

X Y Z<br />

0 0 1<br />

0 1 0<br />

1 0 0<br />

1 1 0<br />

X Y Z<br />

0 0 0<br />

0 1 1<br />

1 0 1<br />

1 1 0<br />

Z = X • Y<br />

Z = (X • Y)’<br />

Z = X + Y<br />

Z = (X + Y)’<br />

Z = X ⊕ Y<br />

Olika sätt att representera <strong>logiska</strong><br />

funktioner<br />

• Sanningstabell<br />

• Grindnät<br />

• Boolesk algebra<br />

• Normalform<br />

2009-03-05 Jan Thim<br />

33<br />

34<br />

17


Sanningstabell<br />

A<br />

B<br />

Z = A • B<br />

Ingångar<br />

A B<br />

0 0<br />

0 1<br />

1 0<br />

1 1<br />

2009-03-05 Jan Thim<br />

2009-03-05 Jan Thim<br />

Utgång<br />

Z<br />

0<br />

0<br />

0<br />

1<br />

Z<br />

Grindnät A•B•C A•B•C A•B•C A•B•C f (<br />

A,<br />

B,<br />

C)<br />

= ABC<br />

+ ABC<br />

+ ABC<br />

+<br />

ABC<br />

35<br />

36<br />

18


• Algebraisk manipulering<br />

– Visa att:<br />

Boolesk algebra<br />

x + yz = ( x + y)(<br />

x + z)<br />

( x + y)(<br />

x + z)<br />

= xx + yx + xz + yz<br />

= x + yx + xz + yz<br />

= x + xy + xz + yz<br />

= x + x(<br />

y + z)<br />

+ yz<br />

= x ( 1+<br />

y + z)<br />

+ yz<br />

= x + yz<br />

2009-03-05 Jan Thim<br />

SLUT på <strong>Föreläsning</strong> 1<br />

2009-03-05 Jan Thim<br />

37<br />

38<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!