Introduktion till digitalteknik

Relevanta dokument
F5 Introduktion till digitalteknik

Tentamen i Digitalteknik 5p

Digital- och datorteknik

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

Lösningsförslag till tentamen i Digitalteknik, TSEA22

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Grundläggande Datorteknik Digital- och datorteknik

Laboration i digitalteknik Introduktion till digitalteknik

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Tentamen i Digitalteknik, EITF65

2-14 Binära talsystemet-fördjupning Namn:

F5 Introduktion till digitalteknik

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

Repetition och sammanfattning av syntes och analys av sekvensnät

DIGITALTEKNIK. Laboration D172

Laboration D181. ELEKTRONIK Digitalteknik. Kombinatoriska kretsar, HCMOS v 2.1

Digital- och datorteknik

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Laboration D159. Sekvensnät beskrivna med VHDL och realiserade med PLD. Namn: Datum: Epostadr: Kurs:

TSEA22 Digitalteknik 2019!

Tentamen i Digital Design

Tentamen i IE1204/5 Digital Design måndagen den 15/

Tentamen i Digitalteknik, TSEA22

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

Digital- och datorteknik

Digital- och datorteknik

5:2 Digitalteknik Boolesk algebra. Inledning OCH-funktionen

IE1204/IE1205 Digital Design

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

Tentamen i Digitalteknik TSEA22

T1-modulen Lektionerna Radioamatörkurs OH6AG OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH

Introduktion till logik

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Institutionen för systemteknik, ISY, LiTH. Tentamen i. Tid: kl

Grundläggande digitalteknik

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Exempel på tentamensfrågor Digitalteknik

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

DIGITALTEKNIK I. Laboration DE1. Kombinatoriska nät och kretsar

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Försättsblad till skriftlig tentamen vid Linköpings universitet

Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD

Sekvensnät vippor, register och bussar

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.

Kodlås. Kopplingsschema över kodlåset PAL-18

DIGITALTEKNIK. Laboration D161. Kombinatoriska kretsar och nät

Digital elektronik CL0090

Det finns en hemsida. Adressen är

Tentamen i Digitalteknik, EIT020

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

LV6 LV7. Aktivera Kursens mål:

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Styrteknik: Grundläggande logiska funktioner D2:1

Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Tentamen i EDA320 Digitalteknik för D2

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Föreläsning 4/11. Lite om logiska operationer. Hambley avsnitt 12.7, 14.1 (7.3 för den som vill läsa lite mer om grindar)

Mattias Wiggberg Collaboration

Laborationshandledning för mätteknik

Laboration D151. Kombinatoriska kretsar, HCMOS. Namn: Datum: Epostadr: Kurs:

Laborationshandledning

Tenta i Digitalteknik

SEKVENSKRETSAR. Innehåll

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

Digital elektronik CL0090

Tenta i Digitalteknik

Hambley avsnitt 12.7 (7.3 för den som vill läsa lite mer om grindar) sann 1 falsk 0

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

Sekvensnät. William Sandqvist

Sekvensnät Som Du kommer ihåg

ALU:n ska anslutas hur då?

IT för personligt arbete F5

DIGITALTEKNIK. Laboration D164. Logiska funktioner med mikroprocessor Kombinatoriska funktioner med PIC16F84 Sekvensfunktioner med PIC16F84

Tentamen med lösningar för IE1204/5 Digital Design Torsdag 15/

Digital- och datorteknik

LABORATIONER I DIGITALTEKNIK. för kurserna. TSEA22, lab 1-4 TSEA51, lab 1-3 TDDC75, lab 1,2

Laborationshandledning

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Tentamen med lösningar i IE1204/5 Digital Design Måndag 27/

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Omtentamen IE Digital Design Måndag 14/

Omtentamen med lösningar i IE1204/5 Digital Design Fredag 10/

Gränsvärdesberäkningar i praktiken

Digital- och datorteknik

SMD033 Digitalteknik. Digitalteknik F1 bild 1

IE1204 Digital Design

Digital- och datorteknik

Digitala system EDI610 Elektro- och informationsteknik

TSEA22 Digitalteknik 2019!

Digitalteknik F4. NOR-labben. Digitalteknik F1b bild 1

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Transkript:

Inledning Introduktion till digitalteknik Stefan Gustavson 997, lätt uppdaterat 2004-09-06 Digitalteknik är grunden till alla moderna datorer. I datorernas barndom förekom visserligen så kallade analogimaskiner, som med hjälp av analog elektronik, eller ibland till och med mekanik, löste vissa matematiska problem på ett helt annat sätt än vad moderna datorer gör. Det var emellertid först i och med att datorerna blev digitala som de blev verkligt användbara och generella. Det är alltså digitalteknikens förtjänst att datorer som vi idag känner dem överhuvudtaget finns. Man behöver inga ingående kunskaper i digitalteknik för att använda datorer. Även om man ägnar sig åt att programmera datorer kan man faktiskt klara sig helt utan kunskaper på området. Om man däremot vill försöka förstå sig på datorer i någorlunda detalj behöver man åtminstone ha ett grundläggande hum om ämnet digitalteknik. Det är detta grundläggande hum som detta kapitel avser att förmedla. Digitalteknik är, som namnet antder, ett ämne som behandlar digitala apparaters tekniska uppbggnad och funktion. I den form det vanligen studeras på högskolenivå är ämnet ganska omfattande och brukar förmedlas i särskilda kurser om fem eller till och med tio poäng. Den mesta tiden går dock åt till att behandla olika sntesmetoder, det vill säga metoder för hur man konstruerar digitala apparater utifrån givna specifikationer. För att kunna förstå hur digitala apparater som datorer fungerar, utan ambitioner att dessutom kunna konstruera dem, räcker det med betdligt mindre omfattande studier inom den del av ämnet som brukar kallas anals av digitala nät, det vill säga att reda ut hur en redan existerande digital apparat fungerar. Det som meddelas i detta kompendium är endast valda delar av de absoluta grunderna inom digitaltekniken, men det är fullt tillräckligt för att förstå hur datorer fungerar, även på en mcket detaljerad nivå. Logik och binära tal Digitala apparater arbetar uteslutande med logiska storheter som bara kan anta ett av två olika värden, sant eller falskt. Värdena representeras med elektriska spänningar, så att sant representeras med en hög spänning och falskt med en låg spänning. ( Hög spänning innebär i detta fall några enstaka volt, medan låg spänning innebär noll eller nära noll volt. Det är alltså inga höga spänningar i bokstavlig mening som det rör sig om.) För att kunna representera tal i digitala apparater använder man sig av det binära talsstemet. I det binära talsstemet är 0 och de enda siffror som behövs, och de logiska storheterna passar utmärkt till att representera en binär siffra vardera. Man väljer att låta sant representera siffran, och falskt siffran 0. Gränsen mellan logiska storheter (sant eller falskt) och binära siffror ( eller 0) är inte precis knivskarp, och i många fall spelar det heller ingen större roll hur man tolkar sina storheter. För enkelhets skull skriver man till och med ofta logiska värden med siffror, så att siffran får beteckna det logiska värdet sant och siffran 0 får beteckna falskt. Logiska storheter kan utsättas för logiska operationer för att ge na logiska storheter. De logiska operationerna motsvarar ungefär de fra räknesätten för vanliga tal. Ett finare ord för vanliga tal är aritmetiska storheter, och de fra räknesätten kan formellt kallas aritmetiska operationer. Aritmetiska operationer på aritmetiska storheter ger na aritmetiska storheter - ett tal plus ett annat tal ger ett ntt tal.

De enklaste logiska operationerna, och faktiskt de enda som behövs, är tre: OCH, ELLER och ICKE. OCH-funktionen tar två logiska storheter som operander (indata), och ger ett sant resultat som utdata endast om båda operanderna är sanna. Om indata är A och B är alltså uttrcket A OCH B sant endast om både A och B har värdet sant. ELLER-funktionen tar också två logiska storheter som operander, och ger ett sant resultat som utdata om endera eller båda operanderna är sanna. Om indata är A och B är alltså uttrcket A ELLER B sant endast om A eller B har värdet sant. ICKE-funktionen tar bara en logisk storhet som operand, och ger ett sant resultat som utdata endast om operanden har värdet falskt. Om indata är A är alltså uttrcket ICKE A sant endast om A inte har värdet sant. Dessa enkla regler kan sammanfattas enligt tabell. Vi använder här beteckningen för sant och 0 för falskt. OCH ELLER ICKE 0 OCH 0 = 0 0 ELLER 0 = 0 ICKE 0 = OCH 0 = 0 ELLER 0 = ICKE = 0 0 OCH = 0 0 ELLER = OCH = ELLER = Tabell : De grundläggande logiska funktionerna Grindar De tre operationerna OCH, ELLER och ICKE kan enkelt konstrueras som elektriska kretsar med bara några få transistorer. Sådana små elementära kretsar brukar kallas grindar. Vi går inte närmare in på exakt hur kretsarna ser ut, eftersom det knappast är intressant i detta sammanhang. Vi visar i stället de smboler som brukar användas för de olika grindarna. I figur 2 ser du smbolerna för OCH-grinden och ELLER-grinden, samt för ICKE-grinden, eller som den oftare brukar kallas, inverteraren. OCH-grind ELLER-grind inverterare A B A Y > Y A B Y = A OCH B Y = A ELLER B Y = ICKE A Y Figur 2: Smboler för grindar På engelska heter funktionerna helt naturligt AND, OR och NOT, vilket kan vara bra att kunna. Grind heter på engelska gate, även i digitaltekniska sammanhang, och OCH-grind heter således AND gate. För att beskriva logiska funktioner kan man använda funktionstabeller. Eftersom det bara finns ett begränsat antal kombinationer av insignalerna kan man skriva upp alla dessa, och för varje kombination ange utsignalens värde. Om vi som tidigare låter 0 beteckna falskt och

beteckna sant kan man beskriva de tre funktionerna OCH, ELLER och ICKE med funktionstabellerna i tabell 3. Notera den stora likheten mellan tabell 3 och tabell. De beskriver egentligen samma sak, men i litet olika termer. Tabell beskriver de logiska funktionerna i sig, medan tabell 3 beskriver funktionen hos verkliga digitala grindar som utför dessa logiska funktioner. A B A OCH B A ELLER B A ICKE A 0 0 0 0 0 0 0 0 0 0 Tabell 3: Funktionstabeller för logiska funktioner Kombinatoriska nät Allmänt gäller att alla kombinatoriska nät kan beskrivas som en funktion f av insignalerna X. Om utsignalerna betecknas Y kan vi skriva detta Y = f( X). Funktionssambandet f kan allmänt beskrivas av en funktionstabell, där man som i tabell 3 ovan beskriver utsignalens värde för varje möjlig kombination av insignaler. För n insignaler får man 2 n möjliga kombinationer, och 2 n rader i tabellen. De grundläggande logiska funktionerna kan kombineras för att skapa mer komplicerade funktioner, och funktioner av fler än två insignaler. Vi skall inte gå in på exakt hur man konstruerar sådana större så kallade kombinatoriska nät, men vi ger några exempel och förklarar deras funktion. EXOR-funktionen Ett enkelt exempel på ett kombinatoriskt nät är den så kallade EXOR-funktionen, som tar två insignaler och ger ett sant värde om endera av insignalerna, men inte båda, har värdet sant. Namnet EXOR kommer sig av en hopdragning av engelskans exclusive or, vilket faktiskt ordagrant betder endera men inte båda. Funktionstabellen för denna funktion visas i tabell 4, och ett kopplingsschema för ett kombinatoriskt nät som utför denna funktion ses i figur 5. Funktionen A EXOR B kan enligt definitionen ovan skrivas (A ELLER B) OCH (ICKE (A OCH B)), vilket direkt återspeglas i kopplingsschemat. Kontrollera gärna att det kombinatoriska nätet i figuren fungerar som avsett genom att testa de fra möjliga kombinationerna av insignaler! EXOR-funktionen är faktiskt en ganska användbar funktion, och ges därför ofta en egen grindsmbol, nämligen den som visas längst till höger i figur 5. Vi kommer att använda den smbolen i nästa exempel. A B A EXOR B 0 0 0 0 0 0 Tabell 4: EXOR-funktionen

A B > Kombinatoriskt nät EXOR-grind A Y = Y B Y = A EXOR B i båda fallen Figur 5: Ett kombinatoriskt nät för EXOR-funktionen, och en smbol för en EXOR-grind En annan möjlig omskrivning av A EXOR B är: (A OCH (ICKE B)) ELLER ((ICKE A) OCH B). Rita gärna upp hur ett kombinatoriskt nät som direkt återspeglar denna omskrivning skulle se ut, och kontrollera att det fungerar som avsett! För större kombinatoriska nät gäller det rent allmänt att det finns många sätt att skriva om funktionen som kombinationer av de grundläggande funktionerna OCH, ELLER och ICKE. Hur man gör dessa omskrivningar, och vilken som är bäst, hör till det som digitalteknik i den högre skolan handlar om, men som vi inte går in på här. Det finns också ett betdligt smidigare sätt än vad som visats här för att skriva kombinatoriska funktioner, närmare bestämt Boolesk algebra. Inte heller detta går vi in på närmare, men med Boolesk algebra skulle första raden i detta stcke kunna skrivas så här:. A B = AB + A B Adderare Som sagts i inledningen är det vanligt i digitala sstem i allmänhet, och i datorer i snnerhet, att man representerar tal med binära smboler. För att det skall vara någon ntta med detta behöver man också kunna räkna med dessa tal. En mcket vanlig räkneoperation är addition. Kan man då beskriva en aritmetisk operation som addition av två binära tal som en kombinatorisk funktion? Svaret är naturligtvis ja. Vilken funktion som helst som kan beskrivas med en funktionstabell kan faktiskt också beskrivas med endast de grundläggande operationerna OCH, ELLER och ICKE. Addition av två binära tal med godtckligt antal siffror kan utföras på en bitposition i taget, precis som en vanlig addition som man ställer upp för hand kan utföras på en sifferposition i taget. Det enda vi behöver för att kunna addera två binära tal av vilken längd som helst är alltså ett kombinatoriskt nät som tar två binära siffror som insignaler, och ger en binär siffra samt en eventuell minnessiffra till nästa position som utsignaler. Ett sådant kombinatoriskt nät kallas kort och gott för en adderare. För att vara riktigt komplett behöver adderaren dessutom kunna ta hand om en minnessiffra från föregående bitposition. Vi behöver alltså totalt tre insignaler till vår funktion: två inbitar x och och en minnessiffra, och funktionstabellen blir åtta rader lång. Vi har dessutom två utsignaler: en för summan s och en för minnessiffran cut, så funktionstabellen får två kolumner på utsignalsidan. Funktionstabellen och smbolen för en sådan enbits adderare visas i figur 6. Benämningarna och för minnessiffrorna kommer sig av engelskans carr, som betder just minnessiffra. Ett kopplingsschema för ett kombinatoriskt nät som utför denna operation visas i figur 7. Hur man kommer fram till denna koppling går vi inte in på, men du bör kunna övertga dig om att den fungerar genom att gå igenom alla åtta kombinationerna av insignalerna och kolla att utsignalerna stämmer överens med funktionstabellen, rad för rad.

Insignaler Utsignaler x s 0 0 0 0 0 0 0 0 x 0 0 0 0 0 0 0 0 0 0 Adderare s 0 0 Figur 6: Funktionstabell och smbol för en enbits adderare x = = s > Figur 7: Ett kombinatoriskt nät som utgör en enbits adderare Notera att kopplingsschemat för adderaren bland annat använder sig av den EXOR-grind som vi nss beskrev. Detta sätt att gruppera kända funktioner i block för att dölja detaljerna, och sedan återanvända blocken utan att längre br sig om exakt hur de är konstruerade, är ett av de viktigaste sätten som finns för att göra stora digitala sstem begripliga. En mikroprocessor till exempel kan innehålla flera miljoner grindfunktioner, men genom att gruppera ihop funktionerna till successivt större block är det fortfarande möjligt att förstå sig på den. En adderare för tal som är mer än en bit långa kan nu konstrueras genom att koppla samman flera av dessa enbitars adderare i en lång kedja. En adderare för två frabitars tal visas i figur 8. Detta kombinatoriska nät kan addera två frabitars tal x 3 x 2 x x 0 och 3 2 0 samt en eventuell minnessiffra in c 0. Resultatet blir ett frabitars tal s 3 s 2 s s 0 och en eventuell minnessiffra ut c 4. x 3 3 x 2 2 x x 0 0 c 0 x x x x s s s s c 4 s 3 s 2 s s 0 Figur 8: En frabitars adderare bggd av fra enbits adderare

Avkodare En uppgift som ofta behöver utföras i digitala kopplingar är att peka ut en av flera utgångar, strt av ett binärt tal. Detta utförs av en så kallad avkodare. En avkodare har ett antal ingångar där man skickar in ett binärt tal, och ett antal utgångar där endast en i taget antar värdet sant eller. Med n ingångar kan man peka ut en av 2 n utgångar. Ett enkelt exempel är en så kallad 2- till-4-avkodare, med två ingångar och fra utgångar. En sådan avkodare har en funktionstabell och en smbol enligt figur 9. Figuren visar också ett exempel på hur avkodaren kan bggas med grindar. insignaler utsignaler a a 0 u 0 u u 2 u 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 u 0 a 2 u a 0 2 3 u 2 u 3 a a 0 u 0 u u 2 u 3 Figur 9: Funktionstabell, smbol och grindnät för en 2-till-4-avkodare Multiplexer En annan vanlig uppgift i digitala kopplingar är att välja ut en av flera olika insignaler, och skicka den utvalda signalen vidare. Detta gör man med en så kallad multiplexer. En 2-till-- multiplexer har två ingångar för data, en ingång för att välja vilken av dataingångarna som skall väljas ut, och en utgång där utvalda data skickas vidare. Smbol och funktionstabell för en sådan multiplexer, samt ett sätt att bgga den med grindar, visas i figur 0. välj in 0 in ut in 0 0 0 0 0 0 0 0 0 0 in 0 0 > 0 ut in 0 0 0 in 0 välj 0 0 välj Figur 0: Funktionstabell, smbol och grindnät för en 2-till--multiplexer ut Därmed har vi gått igenom tillräckligt mcket av kombinatoriska nät för att ta oss vidare. Adderaren, avkodaren och multiplexern är allihop bra att komma ihåg till senare.

Sekvensnät Kombinatoriska nät kan som nämnts utföra vilken funktion som helst som kan beskrivas av en funktionstabell. Nu är det tvärr inte så enkelt att alla tänkbara uppgifter som en digital apparat kan behöva utföra kan beskrivas med en funktionstabell. För att kunna utföra mer komplicerade uppgifter räcker det inte med att kunna ge utsignaler som en funktion av givna insignaler. En digital apparat måste oftast ha en sak till, nämligen ett minne. Detta minne kallas i digitaltekniksammanhang för ett inre tillstånd, och betecknas ofta med Q. Det inre tillståndet Q lagrar information om vad som hänt tidigare med insignalerna, och gör att den digitala apparaten kan bete sig på olika sätt beroende på tidigare händelser. Digitala kopplingar som har någon form av minne kallas för sekvensnät. Minnet kan i det enklaste fallet vara mcket litet och mcket kort, kanske bara några få bitar som håller reda på vad insignalerna var alldeles precis nss, men det inre tillståndet kan också omfatta miljontals bitar. Allt som finns lagrat i minnet på en dator kan till exempel betraktas som datorns inre tillstånd. En dator är faktiskt inget annat än ett mcket komplicerat digitalt sekvensnät. Ett sekvensnät beskrivs av sitt inre tillstånd Q, sina insignaler X och sina utsignaler Y med en kombinatorisk funktion f enligt Y = f( X, Q). Utsignalerna beror alltså både av insignalerna och det inre tillståndet hos nätet, och kan inte beskrivas som en funktion av endast insignalerna. Dessutom måste man beskriva hur det inre tillståndet förändras med tiden. Även detta är en kombinatorisk funktion, som vi kan kalla g. Det inre tillståndet i nästa tidsintervall betecknas Q +, och förändringen av det inre tillståndet kan beskrivas av sambandet Q + = gxq (, ). Båda funktionerna f och g kan beskrivas av funktionstabeller, så skillnaden mellan sekvensnät och kombinatoriska nät är inte så stor rent formellt. Skillnaden är just att ett sekvensnät har ett minne, ett inre tillstånd, som alltså förändras med tiden beroende på insignalerna. Vippor Vi talade ovan om inre tillstånd och minne utan att nämna något om hur detta minne egentligen ser ut. På den allra lägsta nivån lagras det inre tillståndet i så kallade vippor. En vippa kan anta endera av de två logiska tillstånden sant () eller falskt (0). Tillstånden representeras i digital elektronik av spänningar, precis som för grindar, men en vippa har egenskapen att kunna hålla kvar denna spänning under en viss tid, så att kopplingen minns vilket tillstånd den har. Varje vippa lagrar en bit information. För att lagra flera bitar använder man flera vippor. D-vippan Den enklaste formen av vippa kallas D-vippa. Dess smbol visas i figur. Precis som grindar kan D-vippan bggas som en elektrisk krets med ett ganska litet antal transistorer, men vi går inte in på exakt hur den är uppbggd. D-vippan har en ingång, som brukar betecknas med D, och en utgång, betecknad med Q i figuren. Dessutom finns en klockingång, som vi återkommer till strax. ingång D Q utgång klocksignal Figur : D-vippan

D-vippan är faktiskt ett sekvensnät i sig, om än ett mcket enkelt sådant, närmare bestämt det enklaste tänkbara. Den kan alltså beskrivas av två funktioner f och g, där Y = f( X, Q) beskriver utsignalen och Q + = gxq (, ) beskriver vippans nästa inre tillstånd. Om vi betecknar den enda biten i vippans inre tillstånd med q, den enda insignalen med x och den enda utsignalen med beskrivs D-vippans funktion av sambanden = q och q + = x. Utsignalen är alltså identisk med det inre tillståndet q, och nästa inre tillstånd q + sätts till insignalens värde x. Om man så vill kan man se D-vippan som en enkel fördröjning av insignalen, så att utsignalen talar om vilket värde insignalen hade för en liten stund sedan. Snkronism Hur lång är då D-vippans fördröjning, och hur länge sedan är för en liten stund sedan i sista meningen i stcket ovan? Svaret ligger i en del av figur som vi ännu inte förklarat, nämligen klockingången på D-vippan. Klockingången är en ingång som talar om för vippan när den skall bta inre tillstånd, alltså när utsignalen från vippan skall sättas lika med insignalen. Vippan bter tillstånd när klockingången växlar från 0 till. Växlingen sker momentant, och mellan de tillfällen då klockingången växlar från 0 till behåller vippan sitt inre tillstånd oavsett värdet på ingången. Detta är en mcket viktig princip, och den ligger till grund för i stort sett alla digitala apparater. Alla vippor i ett digitalt sekvensnät bter inre tillstånd samtidigt och momentant. Detta kallas för att sekvensnätet är snkront. Principen kallas snkronism. Motsatsen kallas asnkrona nät. Asnkrona nät har visserligen sina fördelar i vissa fall, och de används ibland som delar av större snkrona nät, men man undviker att konstruera stora sekvensnät helt asnkrona. I alla snkrona sekvensnät, inklusive alla moderna datorer, finns det en övergripande klocksignal som talar om för alla vippor i nätet i vilken takt de skall arbeta. Denna klocksignal karakteriseras av sin frekvens, det vill säga hur många gånger per sekund som signalen växlar från 0 till och tillbaka igen. Sekvensnät som bara skall utföra enkla och långsamma uppgifter kan klara sig med en låg klockfrekvens, kanske så låg som några khz, men moderna datorer har en klockfrekvens på över GHz, vilket innebär att vipporna i nätet bter inre tillstånd mer än en miljard gånger per sekund. Vi skall slutligen, innan vi lämnar denna introduktion till digitalteknikens grunder, ta upp några vanliga och användbara exempel på sekvensnät. Register Ett register är en komponent som kan lagra ett värde och hålla kvar det under en längre tid. En eller flera insignaler anger de data man vill ladda (lägga in i registret), och en annan skall tala om när man vill ladda data. Notera att funktionen är snarlik den hos en D-vippa. Skillnaden är att vi nu inte skall stra laddningen med själva klocksignalen, utan vi skall bgga ett snkront sstem där klockingången hela tiden tar emot klockpulser i en jämn takt. Registret kan fortfarande bggas upp kring en D-vippa, men vi måste uttrckligen hålla kvar det aktuella värdet om vi inte skall ladda in ett ntt värde. Ett enkelt sätt att göra ett sådant sekvensnät är med en D-vippa och en 2-till--multiplexer enligt figur 2. Om signalen LADDA är kommer det värde som befinner sig på ingången IN att laddas in i D-vippan vid nästa klockpuls. Om signalen LADDA är 0 kommer D-vippans nuvarande värde att bibehållas, eftersom man laddar

in det igen på D-vippans ingång vid nästa klockpuls. D-vippans värde är detsamma som registrets innehåll, och återfinns alltid på utgången UT. In 0 CLK D Q Ut Ladda Figur 2: Ett enbits register Register med flera bitar kan enkelt bggas upp som en grupp av flera register om en bit vardera. Genom att koppla samman LADDA-ingångarna för en grupp av flera enbitars register kan man få dem att bete sig som ett bredare register med flera bitar som laddas samtidigt på samma signal. En förenklad smbol för en grupp av fra enbitars register visas i figur 3. In Ladda Register Figur 3: Ett frabitars register Räknare En mcket vanlig komponent i digitala sstem är räknaren. Den allra enklaste sortens räknare lagrar i sitt inre tillstånd ett binärt tal om ett antal bitar, och när en ttre signal RÄKNA är räknas detta tal upp med ett vid nästa klockpuls. Om signalen RÄKNA är 0 står räknaren stilla och behåller sitt värde. Vi kan formulera detta som en funktionstabell, där vi för varje kombination av det inre tillståndet (räknarens aktuella värde) och insignalen RÄKNA anger vad nästa inre tillstånd (räknarens värde efter nästa klockpuls) skall vara. Funktionstabellen för en tvåbitars räknare visas i figur 4. Det inre tillståndet skall inte förändras när RÄKNA=0, men när RÄKNA= skall räknaren räkna upp i sekvensen 00-0-0--00 och så vidare. Ut RÄKNA q q 0 q + q + 0 räkna 0 0 0 0 0 = D Q 0 0 0 CLK 0 0 0 = 0 0 0 0 > D Q 0 0 0 CLK 0 0 Figur 4: Funktionstabell och sekvensnät för en tvåbitars räknare q 0 q

I figuren visas också ett sätt att bgga denna räknare med D-vippor och grindar. Funktionerna q + 0 och q + matas in på D-vippornas ingångar, och det inre tillståndet q 0 och q återfinns på D- vippornas utgångar. Tvåbitars räknare är inte så överdrivet vanliga i digitala kopplingar. Oftast använder man sig av räknare med 4 bitar eller mer. Sådana räknare kan konstrueras enligt samma enkla principer som räknaren i figur 4, men de kommer att innehålla fler vippor och betdligt fler grindar. Så pass komplicerade sekvensnät är inte längre så lätta att begripa sig på i detalj utan att kunna litet mer om digitalteknik, men man kan fortfarande förstå sig på hur räknaren som funktionsmässigt block fungerar utan att br sig om detaljerna. Vi kan rita upp en förenklad smbol för räknaren och bara komma ihåg att signalen RÄKNA medför att innehållet räknas upp med ett. En sådan förenklad smbol visas i figur 5. Vi har dessutom lagt till en signal NOLLSTÄLL som nollställer räknaren, och till och med en signal RÄKNA NED som får räknaren att räkna baklänges. Att verkligen konstruera en sådan räknare kräver litet mer ingående kunskaper i digitala sntesmetoder, men vi behöver inte gå in på detaljerna här. Räkna upp Räkna ned Räknare Nollställ Figur 5: En förenklad smbol för en mer komplicerad frabitars räknare Kombinerat register och räknare Utan att alls gå in på hur man skulle konstruera sekvensnätet ifråga skall vi till slut nämna att det är mcket praktiskt om en räknare också kan fungera som ett register. Förutom signaler för nollställning och upp- och nedräkning kan vi införa en signal LADDA och ett antal dataingångar, precis som för ett register. En allmän, förenklad smbol för ett sådant sekvensnät som både kan fungera som register och räknare visas i figur 6. Ut In Räkna upp Räkna ned Register/räknare Ladda Nollställ Ut Figur 6: En upp- och nedräknare med nollställning och registerfunktion

Avslutning Det är inte så oerhört svårt att förstå sig på principen för digitala sekvensnät. Faktiskt är grunderna precis så enkla som beskrivits här. Det som får tanken att svindla är att de kan fås att arbeta så oerhört fort, med flera milljarder klockpulser per sekund. Det är också det som gör att de kan fås att utföra något nttigt arbete, trots att de i grunden är så enkla. När man försöker förstå sig på datorer är det samma sak. Även om det är fullt möjligt att begripa precis varenda detalj i en dators uppbggnad och funktion kan man egentligen aldrig föreställa sig i vilken svindlande hastighet de enskilda operationerna utförs. Människor kan helt enkelt inte förstå så korta tidsrmder som en miljondels eller en miljarddels sekund. Trots att datorer i grund och botten är mcket enkla maskiner, och inte på långa vägar så komplicerade som våra egna hjärnor, är de därför bättre än människor på att snabbt lösa problem som kan beskrivas i formella tekniska och matematiska termer. Däremot är datorer fortfarande värdelösa på väldigt mcket. Människor kommer förmodligen alltid att vara överlägsna datorer på områden som kräver svårgripbara egenskaper som kreativitet, fantasi, improvisationsförmåga, omdöme, god smak och humor. Datorer kan inte ens lösa sådana problem som de är bra på att lösa om de inte fått exakta instruktioner om hur de skall lösas. Datorer som inte programmerats är helt oanvändbara, och programmeringen sköts av människor. Även om vi blir mer och mer beroende av datorer inom allt fler områden finns det således ingen anledning att befara att datorerna bokstavligen tar över världen. Datorer är inget annat än verktg, om än mcket komplicerade sådana, och det är faktiskt vi själva som väljer vad vi skall använda dem till. Sammanfattning Det är viktigt att du kommer ihåg åtminstone tre saker från denna korta introduktion:. Digitala apparater fungerar i grunden enligt mcket enkla principer, men de kan bestå av miljontals små elementära bggblock, och de kan arbeta oerhört snabbt. 2. Digitala apparater är formellt sett så kallade sekvensnät, där insignaler och ett inre tillstånd som lagras i vippor samverkar till att dels ge utsignaler, dels förändra det inre tillståndet. 3. Digitala apparater som exempelvis datorer är snkrona, vilket innebär att alla vippor i sstemet arbetar med en gemensam klocksignal som str när och hur fort saker händer. Allt som meddelats i övrigt på dessa sidor är naturligtvis också bra att komma ihåg, men om du åtminstone på en allmän nivå har förstått dessa tre punkter kan du gå vidare i kursen och ha god behållning av den.