miniatyr|En signal i ett digitalt system ligger i något av två spänningsintervall. De i övre intervallet representerar logiskt 1 och signaler i det undre logiskt 0. Intervallen är väl åtskilda med ett mellanliggande förbjudet område där signalen är odefinierad. miniatyr|Digitala kapslar av TTL-typ. Fyra grindar per kapsel är vanligt. Digitalteknik är ett område inom både elektroniken och datavetenskapen som handlar om analys och konstruktion av digitala nät. Det vill säga signalbehandling med endast två tillgängliga tillstånd: hög och låg, eller 1 och 0. Digital teknik brukar förknippas med mikroprocessorer och datorer men omfattar även diskreta digitala kretsar, exempelvis ALU (Arithmetic Logic Unit), skiftregister och räknare, som numera är integrerade i ett enda chip. Ämnet tar upp både den abstrakta beskrivningen av nätet och den fysiska realiseringen. Tekniken blir mer och mer populär på grund av det låga priset och den systematiska konstruktionen.
Historia Claude Shannon var den första att formellt tillämpa den booleska algebran inom datavetenskapen. I sin magisteravhandling A Symbolic Analysis of Relay and Switching Circuits från 1937 visade han hur boolesk algebra och binär aritmetik kan användas för att förenkla telefonväxlarnas relänät. Han visade även det omvända, att elektriska nät med brytare kan användas för att lösa booleska problem. Detta blev en av principerna för modern digitalteknik men var egentligen inte helt nytt. Liknande idéer hade använts tidigare, om än mer informellt. Som exempel på tidiga programmerbara maskiner med binärt arbetssätt kan här tysken Konrad Zuses flyttalsbaserade datorer från 1936 (och framåt) nämnas, men det fanns binära automater av olika slag långt tidigare. I sitt vidare arbete med informationsteori använde och generaliserade Shannon flera viktiga resultat av den äldre svensk-amerikanen Harry Nyquist, bland annat samplingsteoremet.
Popularitet Ett par anledningar till att tekniken blivit och fortsätter bli mer populär Lågt pris. Till skillnad från vid analog elektronisk konstruktion sjunker priset på digitala komponenter hela tiden. När tillverkningstekniken förfinas blir kretsarna mindre, strömsnålare och billigare. Kretsarna konstrueras nu för tiden av kisel, vilket är en billig råvara. De flesta nät kan byggas helt av standardkomponenter. Systematisk konstruktion. Processen för att konstruera digitala nät har en tydlig struktur och vissa steg går därför att automatisera med hjälp av datorverktyg. Överskådligheten underlättar också planeringen av konstruktionsprojektet och kan hjälpa till att minska antalet buggar.
Teori miniatyr|Ett Venn-diagram som visar två mängder. Snittet mellan dem motsvarar den logiska funktionen A OCH B. Centralt inom digitaltekniken är begreppet funktion, att ett invärde kan sammankopplas med ett bestämt absolutvärde. I den digitala världen är funktionerna binära: indata och utdata kan anta ett av två möjliga värden. Dessa två lägen kallas för hög/låg, 1/0 eller sant/falskt. Detta gör att teori från både logik och boolesk algebra kan tillämpas.
Den enklaste digitala komponenten är en inverterare. Den har endast en ingång och en utgång. Allt den gör är att invertera insignalen, från hög till låg eller vice versa. Inverteraren tillhör de enklaste digitala komponenterna som kallas grindar. Grindar är konstruerade av transistorer och har en, två eller ibland flera ingångar och oftast en utgång. Utvärdet beror på insignalernas värden och på grindens logiska funktion.
De enklaste grindarna är logiska AND ("och"), OR ("eller") och XOR ("exklusivt eller") samt inverterade varianter av dessa: NAND ("inte och", ibland kallad noch), NOR ("inte eller") samt XNOR ("båda eller ingen"). NAND och NOR är de enda två av dessa grindar som själva kan realisera alla typer av logiska funktioner.
Dessa logiska grindar kan sedan kombineras i större nät, och sedan länge tillverkas så kallade mikrochip med inbyggda funktioner enligt en tabell. Ett sådant mikrochip innehåller vanligen 14 in/utgångar eller fler. Vilka som är ingångar resp utgångar måste man slå upp i mikrochipets manual. Två av in/utgångarna används för drivspänning, resten kan till exempel vara 4 NAND-grindar (som enkelt kan göras om till AND-grindar). Eller så kan mikrochipet innehålla 2 NAND- och 2 NOR-grindar. Mer avancerade chip kan innehålla fler än två ingångar samt flera utgångar för varje grind. Med stora system av "grind-chips" kan man tillverka allt från miniräknare till datorer (eller huvuddelarna av datorerna, som processorer, minnen och stora delar av moderkorten. Grindar är, som nämnts, i grunden transistorer. Transistorer kan idag göras mikroskopiskt små. Från slutet av 1960-talet fanns en empirisk formel vars huvudtes var att antalet transistorer på (avancerade) microchip skulle fördubblas på samma yta var 18:e månad. Denna förutsägelse höll i över 30 år, men under 00-talet började konstruktörerna få problem med att elektroner "hoppade över" mellan transistorer. De senaste 10 årens utveckling av till exempel processorer för PC-datorer har därför fått ske med hjälp av "smartare" chip.
Digitala nät kan i huvudsak beskrivas som antingen kombinatoriska nät eller sekvensnät.
Kombinatoriskt nät
miniatyr|En schematisk bild av ett kombinatoriskt nät. Antalet utgångar är oftast mindre än antalet ingångar. Varje unik kombination på ingångarna har en given tolkning som matas ut på utgångarna. Ett kombinatoriskt nät utför en boolesk funktion. Varje kombination på ingångarna har en given utdata på utgångarna. Den booleska funktionen kan beskrivas på flera sätt: Sanningstabell. En lista med alla möjliga ingångsvärden visar vad utsignalen kommer att vara vid denna kombination. Booleskt uttryck. Ex: , där är en utgång och osv är ingångar. står för logisk disjunktion (ELLER) medan står för logisk konjunktion (OCH). Karnaughdiagram. Används för att optimera funktionen och uttrycka den på ett minimalt sätt. Detta ger ett nytt booleskt uttryck. Venndiagram
Sekvensnät
300px|miniatyr|Ett sekvensnät av Moore-typ. Tillståndet hos minnet återkopplas. Ett sekvensnäts utgångsvärde beror inte bara på indata, utan även i vilken ordning datan kommer (dess sekvens). Ett sekvensnät tar hänsyn både till de nuvarande värdena på ingångarna och dess efterföljande värden. Därför består ett sekvensnät av ett kombinatoriskt nät och ett minne som återkopplas till nätet. Minnet lagrar vilket tillstånd som sekvensnätet befinner sig i, och är i form av ett antal vippor, till exempel D-vippor. Sekvensnätets uppgift är att läsa av det nuvarande tillståndet och insignaler, för att sedan avgöra vilket nästa tillstånd ska vara. Ett sekvensnät är den digitala formen av en tillståndsmaskin och analyseras på samma sätt. Ett sekvensnät är därför antingen av Moore-typ eller Mealy-typ.
Realiseringar I slutet av konstruktionen byggs nätet upp med logiska grindar och vippor. Kombinatoriska nät kan även realiseras som nät med strömbrytare. FPGA är också ett praktiskt sätt att implementera ett eller flera sekvensnät eller kombinatoriska nät på ett enda chipp. För att kunna programmera en sådan krets används ett hårdvarubeskrivande språk, där de vanligaste är VHDL och Verilog.
Grindteknik Detta avsnitt behandlar tänkbara realiseringar av alla typer av grindar. Realiseringarna är av pedagogiska skäl gjorda med bipolära transistorer. Moderna digitala kretsar innehåller dock mest MOSFET:s (Metal Oxide Sermiconductor Field Effect Transistor).
Transistorn miniatyr|Bipolär transistor av NPN-typ. Bipolära transistorer finns i två komplementära varianter: NPN-typ och PNP-typ, som skiljs åt genom att strömmarna går åt direkt motsatt riktning. PNP-transistorn används sällan i digitala grindar så vi nöjer oss med att visa NPN-varianten. Transistorn består av tre ben. Dessa är Bas (B), Kollektor (C) och Emitter (E). När transistorn tillförs en ström på basen får man en i regel mycket högre ström på kollektorn. Denna förstärkningsfaktor kallas för Beta (Ic är alltså Beta gånger större än Ib). Beta varierar med både kollektorström, kollektor-emitterspänning och temperatur så den är långt ifrån konstant men brukar för små signaler anses vara konstant. I digitala sammanhang är man dock mest intresserad av dess switchegenskaper; det vill säga vad som krävs för AV (strypt) eller PÅ (bottnad). Därmed får betafaktorn en underordnad betydelse. För småsignaltransistorer kan man räkna med en betafaktor på mer än 100, som betraktas som en tämligen stor betafaktor. Någonting som är bra att tänka på är att en transistor av kiseltyp behöver som minst cirka över bas-emittersträckan för att överhuvudtaget kunna leda någon ström. Denna gräns kallas tröskelspänning.
NOT-grinden (inverterare) miniatyr|En inverterare (NOT-grind). Den enklaste formen av grind är en inverterare. Vi skickar alltså in en signal (x) och får inversen (x') ut. Detta beror på att vi i det höga fallet förser den med så pass mycket basström att transistorn bottnar (0). Från transistoravsnittet ovan har vi ju att räkna med en betafaktor på mer än 100 vilket innebär att det hade räckt med 100k på ingången för att få transistorn att bottna. När vi sedan skickar in en låg signal får transistorn ingen ström alls varvid den blir strypt (1). Valet av 1k kollektormotstånd ger en kanske onödigt hög ström (5mA) vid låg utnivå men det har mest valts av pedagogiska skäl. Både sanningstabellen och grindsymbolen visas till höger.
Av kuriosaskäl kan nämnas att vald realisering av inverterare inte kommer att vara överdrivet snabb. Detta beror på Miller-effekten dvs den multiplicering av kapacitansen mellan kollektor och bas (Cbc) som sker när man har stor förstärkning hos en transkonduktiv komponent. Om författaren minns rätt så kan denna överskottsladdning ledas bort med hjälp av en diod mellan bas och kollektor. Ett annat sätt att snabba på switchningen är en liten kondensator över basmotståndet. Men vi är inte intresserade av snabba datorer här.
NAND-grinden miniatyr|En NAND-grind. NAND-grinden är låg när alla ingångar är höga men hög annars. Ingångstransistorerna är kopplade på ett lite speciellt sätt. De får sin basström från det gemensamma basmotståndet på 10k. Så fort minst en av ingångarna går låg så får vi de facto en kortslutning av bas-emittersträckan hos utgångstransistorn. Utgångstransistorn stryps då och vi får hög signal ut. Både sanningstabell och grindsymbol syns till höger.
OR-grinden miniatyr|En OR-grind. OR-grinden är hög när minst en av ingångarna är höga och låg annars. Både sanningstabell och grindsymbol syns till höger. Symbolen >1 är inte helt riktig då det borde vara >=1 (för man kan se ingångarna som en binär summering) men det blir rittekniskt klumpigt.
AND-grinden miniatyr|En AND-grind. AND-grinden är hög när alla ingångarna är höga och låg annars. Vi har här valt att helt enkelt hänga på en inverterare av ovanstående typ. Detta är med andra ord ingen direkt fundamental grind för den kan byggas av de andra tre ovan. Både sanningstabell och grindsymbol syns till höger.
NOR-grinden miniatyr|En NOR-grind. NOR-grinden är hög när alla ingångarna är låga och låg annars. Vi har här valt att helt enkelt hänga på en inverterare av ovanstående typ. Detta är med andra ord ingen direkt fundamental grind för den kan byggas av de andra tre ovan. Både sanningstabell och grindsymbol syns till höger. Det finns ett antal flera NOR-grindar, detta är bara en av alla.
XOR-grinden miniatyr|En XOR-grind. XOR-grinden är hög när ena ingången är hög (och den andra låg) och låg annars. Vi har här valt att realisera grinden med redan befintliga grindar enligt ovan. Det vore lite spännande att se en diskret version. Man kan naturligtvis även här hänga på en inverterare. Man får då en så kallad XNOR-grind (som indikerar likhet). Både sanningstabell och grindsymbol syns till höger.
Three-state-grinden miniatyr|En inverterande three-state-grind.