D0013E Introduktion till Digitalteknik Slides : Per Lindgren EISLAB per.lindgren@ltu.se Ursprungliga slides : Ingo Sander KTH/ICT/ES ingo@kth.se
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 Enkel matematisk modell Bara 1:or och 0:or som värden Boolesk algebra Störningsokänslig, effektiv implementering av den matematiska modellen Transistor till denna utveckling 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 V DD V 1,min V 0,max V SS (Gnd) Logic value 1 Undefined 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 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 011 010 001 Analog signal Digital signal (3 bit) Digital signal (4 bit), dubbla samplings frekvensen) 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) 2 1 0 10 = 6 10 + 5 10 + 3 10 IE1204 Digital Design 12
Decimala talsystemet Representation av ett heltal N 10 =x m 1 10 m 1 + x m 2 10 m 2...+ x 1 10 1 + x 0 10 0 ( 653) 2 1 0 10 = 6 10 + 5 10 + 3 10 Representation av ett kommatal N 10 =x m 1 10 m 1 + x m 2 10 m 2...+ x 1 10 1 + x 0 10 0 + x 1 10 1 + x 2 10 2 +... (6.53) 0 1 2 10 = 6 10 + 5 10 + 3 10 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...+ x 1 2 1 + x 0 2 0 + x 1 2 1 + x 2 2 2 +... ( 110 ) 2 =1* 2 2 +1* 2 1 +0* 2 0 = ( 6 ) 10 ( 11.01) 2 =1 2 1 +1 2 0 +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...+ x 1 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...+ x 1 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...+ x 1 b 1 + x 0 b 0 + x 1 b 1 + x 2 b 2 +... IE1204 Digital Design 17
Heltalen för olika talsystem 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 IE1204 Digital Design 18
Omvandling mellan decimala och 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 binära tal 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 = = = = = = 26R1 13R0 6R1 3R0 1R1 0R1 x x 5 0 = 1(LSB) x x x x 1 2 3 4 = 0 = 1 = 0 = 1 = 1(MSB) IE1204 Digital Design 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/Till (Closed/On)" Öppen/Från (Open/Off)" Sluten Öppen x = 1 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" Power supply L(x) är en logisk funktion x är en logisk variabel S x " L(x) = 0 Light Off # $ 1 Light On Light IE1204 Digital Design, HT 2010 23
Operation AND (OCH)! AND-operationen ( ) uppnås genom switchar som kopplas i serie" S S Power supply x 1 x 2 Light L(x) =x 1 x 2 IE1204 Digital Design, HT 2010 24
Operation OR (ELLER)! OR-operationen (+) uppnås genom switchar som kopplas parallellt" 1 Power supply S Light S x x 2 L(x) =x 1 + 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
A! B! Y! 0" 0" 0" 0" 1" 0" 1" 0" 0" 1" 1" 1" Y = A B Logiska grindar AND-grinden (OCH)! IEC Symbol (International Electrotechnical Commission) A B A B & Traditional (American) Symbol Y Y IE1204 Digital Design, HT 2010 28
A! B! Y! 0" 0" 0" 0" 1" 1" 1" 0" 1" 1" 1" 1" Y = A + Logiska grindar OR-grinden (ELLER)! B IEC Symbol (International Electrotechnical Commission) A B A B 1 Traditional (American) Symbol Y Y IE1204 Digital Design, HT 2010 29
Logiska grindar Inverterare (NOT-grinden (ICKE))! Inverterare (Inverter) IEC Symbol (International Electrotechnical Commission) A 1 Y A! Y! 0" 1" 1" 0" Y = A A Traditional (American) Symbol Y IE1204 Digital Design, HT 2010 30
Y = A Logiska grindar XOR-grinden (Exclusivt ELLER)! A! B! Y! 0" 0" 0" 0" 1" 1" 1" 0" 1" 1" 1" 0" B = A B + A B IEC Symbol (International Electrotechnical Commission) A B A B 1 Traditional (American) Symbol Y Y IE1204 Digital Design, HT 2010 31
Vad är grindnätets funktion?! x 1 f x 2 IE1204 Digital Design, HT 2010 32
Tidsdiagram! x 1 x 2 A B f x 1 x 2 A B f 1 0 1 0 1 0 1 0 1 0 Time IE1204 Digital Design, HT 2010 33
Sanningstabell! x 1 x 2 A B f x 1 x 2 f ( x x 1, ) 2 A B 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 IE1204 Digital Design, HT 2010 34
Flera grindnät kan implementera samma funktion! a) x 1 f x 2 f =x 1 + x 1 x 2 b) x 1 x 2 g g = x 1 + x 2 IE1204 Digital Design, HT 2010 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?! x1! x2! f(x1,x2)! 0" 0" 1" 0" 1" 1" 1" 0" 0" 1" 1" 1" IE1204 Digital Design, HT 2010 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 = x 1 x 2 + x 1 x 2 + x 1 x 2 IE1204 Digital Design, HT 2010 43
Hur kan följande sanningstabell implementeras med logiska grindar?! 2. a) Gör en direkt implementering av den logiska funktionen:" x 1 x 2 f = x 1 x 2 + x 1 x 2 + x 1 x 2 f IE1204 Digital Design, HT 2010 44
Hur kan följande sanningstabell implementeras med logiska grindar?! 2. (bättre) Minimera den logiska funktionen" f = x 1 x 2 + x 1 x 2 + x 1 x 2 = x 1 x 2 + x 1 x 2 + x 1 x 2 + x 1 x 2 Lägg till redundant term x 1 x 2 (7b) = x 1 (x 2 + x 2 ) + (x 1 + x 1 )x 2 Distribution (12a) = x 1 1+1 x 2 (8b) = x 1 + x 2 IE1204 Digital Design, HT 2010 45
Hur kan följande sanningstabell implementeras med logiska grindar?! 3. Implementera den minimerade funktionen" f = x 1 + x 2 x 1 x 2 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! X 11 1 X 10 X 01 X 00 0 1 0 1 0 Z X 11 X 10 X 01 X 00 11 10 01 00 Z S 1 S 0 S 1 S 0 IE1204 Digital Design, HT 2010 50
x n x 1 x 0 (Mappning till muxar: Shannon-dekomposition)! En boolesk funktion f(x n,, x 1, x 0 ) kan delas upp enligt" f(x n,, x 1, x 0 ) =x 0 f(x n,, x 1, 1) + x 0 f(x n,, x 1, 0) " Funktionen kan sedan implementeras med en multiplexer" f(x n x 0,1) f1(x n x 1 ) f(x n x 0 ) f x n x 1 x n x 1 0 f(x n x 0,0) IE1204 Digital Design, HT 2010 51 f 1 f 0 x 0 f x n x 1 x n x 1 f0(x n x 1 ) f 1 f 0 x 0 f
Demultiplexern! Ingången kopplas till en vald utgång" f a 1 a 0 y 0 y 1 y 2 y 3 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 - - 0 0 0 0 f y 3 y 2 y 1 y 0 a 1 a 0 IE1204 Digital Design, HT 2010 52
(Read-Only Memory)! a 0 a 1... a m Sel 0 Sel 1... Sel 2 m 0/1 0/1... 0/1 0/1 0/1... 0/1... 0/1 0/1... 0/1 En d n-1 d n-2... d 0 IE1204 Digital Design, HT 2010 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?! " " " Select f 1 f 0 f 0 - f 0 f 0 1 f 1 - f 1 MUX" f 1 " 1" f 0" 0 " f" Select" Om vi återkopplar och kopplar utgången f till en av ingångarna (tex f 0 ) 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)! MUX" Latch" f 1 " f 0 " 1" 0" f" D D Q Select" Enable D Q" Enable D Q 0 - M Enable" Lång återkoppling (~4T)" 1 D D IE1204 Digital Design, HT10" 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 T latch +T logic " IE1204 Digital Design, HT10" 61"
D-vippan (eng. Flip-flop)! D Clk Master" D Slave" Clk D Q Q 0 0 1 1 1 0 D Q Q Inverterar-ring på clk anger negativ flank." 1 - M M 0 - M M - M M D-vippa" Lösning: Koppla två D-latchar " " efter varandra!" D Q Q IE1204 Digital Design, HT10" 62"
Tidsdiagram Master-Slave! D " Master" Slave " D " Q " Q m "" Q " D " Q " s " Q " Clock " Clk " Q " Clk " Q " Q " Clock " D " Q " m " Q " = " Q s " IE1204 Digital Design, HT10" 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 t logic " Setup-tid t su för vippan" Hold-tid t h för vippan" Clock-to-utgång t cq tiden" IE1204 Digital Design, HT10" 64"
Setup- & Hold-time! D måste vara stabil inom detta område för att garantera funktionen" D" t hold " t setup " Q" Clk" t clk-to-q " IE1204 Digital Design, HT10" 65"
Vad är den maximala frekvensen?! Grindfördröjningar" t logic = t NOT = 1.1 ns" Setup-tid " t su = 0.6 ns" Hold-tid " t h = 0.4 ns " Clock-to-utgång " " t cq = 1.0 ns" T = t su + t cq + t logic = 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 Q 4,, Q 1 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)"