Digitalteknik

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif
Digitala kapslar av TTL-typ. Fyra grindar per kapsel är vanligt.

Digitalteknik är ett område inom datavetenskapen som handlar om analys och konstruktion av digitala nät. Ämnet tar upp både den abstrakta beskrivningen av nätet och den fysiska realiseringen. Tekniken blir bara mer och mer populär på grund av flera orsaker:

  • Lågt pris. Till skillnad från vid analog elektronisk konstruktion så sjunker priset på digitala komponenter för närvarande hela tiden. När tillverkningstekniken förfinas blir kretsarna mindre, strömsnålare och billigare. Kretsarna konstrueras idag i 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.

Innehåll

Historia

Claude Shannon, "informationsteorins fader", var den första att tillämpa den booleska algebran inom datavetenskapen. I sin magisteravhandling A Symbolic Analysis of Relay and Switching Circuits från 1937 visade han att 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, det vill säga att elektriska nät med brytare kan användas för att lösa booleska problem. Denna egenskap är grunden för digitalteknik och är också grunden som alla digitala och elektriska datorer baseras på.

Teori

Centralt inom digitaltekniken är begreppet funktion, att ett invärde kan sammankopplas med ett bestämt utvä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. Digitala nät kan i huvudsak beskrivas som antingen kombinatoriska nät eller sekvensnät.

Kombinatoriskt nät

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 Venn-diagram som visar två mängder. Snittet mellan dem motsvarar den logiska funktionen AND.

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: y = x_0 + x_1 * \bar x_2 , där y är en utgång och x0 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

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, tex D-vippor. Det kombinatoriska nä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.

Realisering

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.

Se även


Personliga verktyg