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)"