Digitalteknik
Från Rilpedia
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
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 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ä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.