Digital- och datorteknik

Relevanta dokument
Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Binär addition papper och penna metod

Grundläggande Datorteknik Digital- och datorteknik

Digital- och datorteknik

Digital- och datorteknik

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Digital Aritmetik Unsigned Integers Signed Integers"

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

Digital elektronik CL0090

Talrepresentation. Heltal, positiva heltal (eng. integers)

Digital- och datorteknik

Digital- och datorteknik

ÖH kod. ( en variant av koden används i dag till butikernas streck-kod ) William Sandqvist

IE1204 Digital Design

EDA216. Digital- och datorteknik. Diverse kompletterande material

Tenta i Digitalteknik

Laboration Kombinatoriska kretsar

Laboration Kombinatoriska kretsar

Digital- och datorteknik

Digital- och datorteknik

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

IE1205 Digital Design: F6 : Digital aritmetik 2

Digital- och datorteknik. Mekatronik-, data- och elektroingenjör Åk 1/ lp 1o2. Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen

Tenta i Digitalteknik

LV6 LV7. Aktivera Kursens mål:

Digital- och datorteknik

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

Digital- och datorteknik

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

EDA215 Digital- och datorteknik för Z

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Tenta i Digitalteknik

TENTAMEN(Nu anpassad till FLIS- processorn)

exempel på Tentamen 2

Det finns en hemsida. Adressen är

Laboration i digitalteknik Introduktion till digitalteknik

Tenta i Digitalteknik

Digital Design IE1204

Digital- och datorteknik

Tentamen i Digital Design

Exempel 3 på Tentamen

TENTAMEN (Något redigerad)

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik

Digital- och datorteknik, , Per Larsson-Edefors Sida 1

Lars-Eric Arebrink. Av institutionen utgiven. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

Digital- och datorteknik

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.

Tenta i Digitalteknik

Digital- och datorteknik. Lars-Eric Arebrink. vid flera tillfällen. Betyg 4: 36 poäng Betyg 5: 48 poäng

TSEA22 Digitalteknik 2019!

ALU:n ska anslutas hur då?

Tenta i Digitalteknik

TENTAMEN. Digital- och datorteknik E. Institutionen för data- och informationsteknik Avdelningen för datorteknik. Elektro Åk 1/ lp 4 EDA216/DIT790

Digital- och datorteknik. Lars-Eric Arebrink. Av institutionen utgiven instruktionlista FLEXIBLE INSTRUKTION SET PROCESSOR FLISP

Tentamen (Svar och lösningsförslag)

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

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

Tentamen i Digitalteknik 5p

Datorsystemteknik DVG A03 Föreläsning 3

Tentamen. EDA432 Digital och datorteknik IT INN790 Digital och datorteknik GU. Måndag 23 oktober 2006, kl i V-salar

Digital- och datorteknik

TENTAMEN. Digital- och datorteknik. Institutionen för data- och informationsteknik Avdelningen för datorteknik LEU431. Lars-Eric Arebrink

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

Tentamen i Digitalteknik, EITF65

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Digital- och datorteknik. Lars-Eric Arebrink. Betyg 4: 36 poäng Betyg 5: 48 poäng

Introduktion till digitalteknik

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Måndag 19 oktober 2009, kl

F5 Introduktion till digitalteknik

Digitala System: Datorteknik ERIK LARSSON

LEU431. Digital- och datorteknik. Diverse kompletterande material

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

Tentamen. EDA432 Digital- och datorteknik, It DIT790 Digital- och datorteknik, GU. Onsdag 12 Januari 2011, kl

Sekvensnät i VHDL del 2

Tenta i Digitalteknik

F2 Binära tal EDA070 Datorer och datoranvändning

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik

F5 Introduktion till digitalteknik

Omtentamen IE Digital Design Måndag 14/

Digital- och datorteknik

Tentamen 3. EDAxxx Grundläggande Datorteknik DIT791 Grundläggande Datorteknik, GU. Måndag xx Oktober 20xx, kl

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

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

Exempel 2 på Tentamen med lösningar

Lösningsförslag till tentamen i Digitalteknik, TSEA22

DIGITALTEKNIK. Laboration D172

Digitala system EDI610 Elektro- och informationsteknik

Tentamen med lösningar

Exempel 1 på Tentamen med lösningar

Introduktion till xdigiflex-simulatorn

Digital- och datorteknik

Transkript:

Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola

Aritmetik i digitala system Grindnät för addition: Vi har sett att man bör kunna bygga en komponent (ett grindnät) för addition av en enskild bit, och sedan seriekoppla (kaskadkoppla) n stycken sådana komponenter för att erhålla en n-bitars adderare. Ett grindnät för bitaddition som inte tar hänsyn till inkommande minnessiffra kallas för en halvadderare ( half adder ). Ett grindnät för bitaddition som tar hänsyn till inkommande minnessiffra kallas för en heladderare ( full adder ). c n c n-1 c i+1 c i c 1 c 0 c n-1 x i x 1 x 0 + y n-1 y i y 1 y 0 s n-1 s i s 1 s 0

Aritmetik i digitala system Grindnät för addition: Härledning av grindnät för en halvadderare: x i y i s i c i+1 s i = x i y i 0 0 0 0 0 1 1 0 c i+1 = x i y i x i s i 1 0 1 0 1 1 0 1 y i c i+1 AND-funktion XOR-funktion

Aritmetik i digitala system Grindnät för addition: Härledning av grindnät för en heladderare: Samma som halvadderare för c i = 0 c i x i y i s i c i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 s i = c i x i y i x i y i c i s i Villkorlig inverterare XOR-funktion för c i = 0 NXOR-funktion för c i = 1

Aritmetik i digitala system Grindnät för addition: Härledning av grindnät för en heladderare: Samma som halvadderare för c i = 0 c i x i y i s i c i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 c i+1 = x i y i + c i (x i + y i ) Men: denna bit blir 1 även om vi väljer XOR i stället för OR. Och vi har ju faktiskt redan denna XOR-funktion i halvadderaren.

Aritmetik i digitala system Grindnät för addition: Härledning av grindnät för en heladderare: Samma som halvadderare för c i = 0 c i x i y i s i c i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 c i+1 = x i y i + c i (x i y i ) x i y i c i c i+1

Aritmetik i digitala system Grindnät för addition: x i P s i Härledning av grindnät för en heladderare: y i Q c i C CO c i+1 c i x i y i s i c i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 s i = c i x i y i x i y i c i c i+1 = x i y i + c i (x i y i ) s i c i+1

c = a 'b c + a b 'c + a b c ' + a b c (4.3 i KMP) Aritmetik i digitala system Konstruktion av 4-bitars adderare: Vi kan nu kaskadkoppla fyra heladderare och få en 4-bitars adderare. Flera 4-bitars adderare kan sedan på samma sätt kopplas ihop för att bygga adderare för 8, 16 eller 32 bitars binärtal. y 0 x 0 y 1 x 1 y 2 x 2 y 3 x 3 Principen och grindnät för addition av två n-bitars tal c n c n-1 c n-2... c i+1 c i...c 1 0 minnessiffror a n-1 a n-2... a i...a 1 a 0 augendsiffror + b n-1 b n-2... b i...b 1 b 0 addendsiffror s n s n-1 s n-2... s i...s 1 s 0 summasiffror För att addera två n-bitars tal krävs det enligt uppställningen ovan n st grind utsignalerna s i och c i+1 av insignalerna a i, b i och c i, dvs n st heladderare med funktionstabell nedan. c in P Q C P Q CO C CO C CO c i+1 C CO c i+1 c 4 s 0 a i b i c i P Q s i a i b i P Q Heladderare s 1 s 2 s 3 c i s i 0 1 0 1 1 1 1 1 ai bi ci c 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Ur funktionstabellen får man fram s i och c i+1 på SP normal form: s i = a i 'b i 'c i + a i 'b i c i ' + a i b i 'c i ' + a i b i c i (4.2 i KMP)

c = a 'b c + a b 'c + a b c ' + a b c (4.3 i KMP) Aritmetik i digitala system Konstruktion av 4-bitars adderare: Vi kan nu kaskadkoppla fyra heladderare och få en 4-bitars adderare. Flera 4-bitars adderare kan sedan på samma sätt kopplas ihop för att bygga adderare för 8, 16 eller 32 bitars binärtal. y 0 c in x 0 Vad bestämmer löptiden för adderaren? P Q C CO C CO C CO c i+1 C CO c i+1 c 4 s 0 y 1 x 1 x 2 P Q y 2 y 3 x 3 a i b i c i P Q Principen och grindnät för addition av två n-bitars tal c n c n-1 c n-2... c i+1 c i...c 1 0 minnessiffror a n-1 a n-2... a i...a 1 a 0 augendsiffror + b n-1 b n-2... b i...b 1 b 0 addendsiffror s n s n-1 s n-2... s i...s 1 s 0 summasiffror För att addera två n-bitars tal krävs det enligt uppställningen ovan n st grind utsignalerna s i och c i+1 av insignalerna a i, b i och c i, dvs n st heladderare med funktionstabell nedan. s i Heladderare s 1 s 2 s 3 a i b i c i P Q s i 0 1 0 1 1 1 1 1 ai bi ci c 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Ur funktionstabellen får man fram s i och c i+1 på SP normal form: s i = a i 'b i 'c i + a i 'b i c i ' + a i b i 'c i ' + a i b i c i (4.2 i KMP)

Aritmetik i digitala system Konstruktion av 4-bitars subtraktionsenhet: Det vore praktiskt om vår 4-bitar adderare också kunde användas för subtraktion. Och vi har faktiskt redan sett hur detta skulle kunna gå till: 1-komplement Y 2-komplement = 2 n Y = 2 n 1+ 1 Y = (2 n 1 Y) + 1 carry-in X Y = X + ( Y) = X + Y 2 komplement = X + Y 1 komplement + 1 Vi kan alltså erhålla subtraktionen X Y genom att addera X till de inverterade bitarna i Y (1-komplementet) samt lägga till 1 till summan via adderarens carry-in.

Aritmetik i digitala system Konstruktion av 4-bitars addition/subtraktionsenhet: Vi kan nu konstruera en enhet för både addition och subtraktion genom att ansluta bitarna för Y via villkorliga inverterare. De villkorliga inverterarna styrs av signalen SUB som väljer om kretsen skall utföra addition (SUB = 0) eller subtraktion (SUB = 1) med Y. Signalen SUB sätter också rätt värde på carry-in : 0 vid addition och 1 vid subtraktion. Vi återkommer strax till den villkorliga inverteringen vid C.

Aritmetik i digitala system Tolkning av resultat Vi har alltså en enhet för både addition och subtraktion som kan arbeta med såväl tal utan tecken som tal med tecken. Fråga: Hur vet enheten vilken typ av tal som används? Svar: Det vet den inte! Den måste därför alltid generera resultat som kan användas för endera typen av tal.

Aritmetik i digitala system Tolkning av resultat Vi har en enhet som kan ge spill vid operationer på tal både med och utan tecken. Fråga: Hur vet man om resultatet har gett spill eller ej? Svar: Enheten måste generera information om spill för båda typer av tal. Det är sedan upp till användaren att tolka resultaten på rätt sätt. Denna information om spill finns i s k flaggbitar.

Flaggbitar: Aritmetik i digitala system Flaggbitar används inte bara för att detektera spill utan också för att indikera andra egenskaper hos ett resultat. Som vi skall se senare kan programvaran i en dator konstrueras så att den vidtar olika åtgärder beroende på vilka egenskaper ett resultat har. De vanligast förekommande flaggbitarna i ett digitalt system är Z (zero): Z-flaggan indikerar om resultatet av en operation blev 0. N (negative): N-flaggan indikerar om resultatet av en operation blev negativt (oftast bara av intresse vid aritmetik på tal med tecken) C (carry): C-flaggan indikerar om resultatet av en operation mellan tal utan tecken resulterade i spill. V (overflow): V-flaggan indikerar om resultatet av en operation mellan tal med tecken resulterade i spill.

Z-flaggan: Aritmetik i digitala system Baserat på resultatet från en aritmetisk operation skall Z-flaggan sättas till 1 när alla bitar s n-1, s n-2,, s 1, s 0 i resultatet är lika med 0. Z = s n 1 s n 2 s 1 s 0

N-flaggan: Aritmetik i digitala system Baserat på resultatet från en aritmetisk operation skall N-flaggan sättas till 1 när resultatet är mindre än 0. Då vi använder 2-komplementaritmetik vet vi att resultatet är mindre än 0 när teckenbiten s n-1 = 1. N = s n 1

C-flaggan: Aritmetik i digitala system Vi såg tidigare att carry-out c n = 1 indikerar spill från en n-bitars addition av tal utan tecken. Vi såg också att carry-out c n = 0 indikerar spill från en n-bitars subtraktion av tal utan tecken när man använder 2-komplementaritmetik.

C-flaggan: Aritmetik i digitala system Vi såg tidigare att carry-out c n = 1 indikerar spill från en n-bitars addition av tal utan tecken. Vi såg också att carry-out c n = 0 indikerar spill från en n-bitars subtraktion av tal utan tecken när man använder 2-komplementaritmetik. Vi kan alltså erhålla C-flaggan genom att använda en villkorlig invertering av carry-out c n från additionen, styrd av signalen SUB. C = c n SUB

V-flaggan: Aritmetik i digitala system Vid addition av tal med olika tecken kan spill aldrig uppträda, då beloppen inte adderas. Resultatet kommer aldrig närmare talområdets gränser än vad något av de två talen gör. Vid addition av tal med samma tecken kan spill uppträda, då beloppen adderas. Resultatet kommer närmare talområdets gränser än vad något av de två talen gör och kan komma att spilla över till andra änden av tallinjen.

Aritmetik i digitala system V-flaggan: Vid addition av tal med olika tecken kan Detta ger oss två möjligheter till spill: spill aldrig uppträda, då beloppen inte 1. adderas. Addition Resultatet av två positiva kommer tal ger aldrig ett närmare negativt talområdets resultat. gränser än vad något av de två talen gör. Vid addition av tal med samma tecken kan spill uppträda, då beloppen adderas. Resultatet kommer närmare talområdets gränser än vad något av de två talen gör och kan komma att spilla över till andra änden av tallinjen. 0 Villkor för spill: 0 0 x n 1 y n 1 s n 1 1

Aritmetik i digitala system V-flaggan: Vid addition av tal med olika tecken kan Detta ger oss två möjligheter till spill: spill aldrig uppträda, då beloppen inte 1. adderas. Addition Resultatet av två positiva kommer tal ger aldrig ett negativt närmare resultat. talområdets gränser än 2. vad Addition något av två de två negativa talen gör. tal ger ett positivt resultat. Vid addition av tal med samma tecken kan spill uppträda, då beloppen adderas. Resultatet kommer närmare talområdets gränser än vad något av de 1 två talen gör och kan komma att spilla över till andra änden av tallinjen. Villkor för spill: 1 1 x n 1 y n 1 s n 1 0

V-flaggan: Aritmetik i digitala system Vid addition av tal med olika tecken kan spill aldrig uppträda, då beloppen inte Genom adderas. att Resultatet kombinera kommer de två fallen aldrig får vi närmare ett slutligt talområdets villkor för spill gränser vid addition. än vad något av de två talen gör. Vid addition av tal med samma tecken kan spill uppträda, då beloppen adderas. Resultatet kommer närmare talområdets gränser än vad något av de två talen gör och kan komma att spilla över till andra änden V av = tallinjen. x n 1 y n 1 s n 1 + x n 1 y n 1 s n 1

V-flaggan: Aritmetik i digitala system Vid subtraktion av tal med samma tecken kan spill aldrig uppträda. För att inse detta påminner vi oss om att subtraktion X Y utförs medelst additionen X + Y 2-komplement. Då måste de två talen som adderas ha olika tecken, vilket vi vet inte kan ge spill. Vid subtraktion av tal med olika tecken kan spill uppträda. Med ett liknande resonemang inser vi att de två talen som adderas har samma tecken, vilket vi vet kan orsaka spill.

V-flaggan: Aritmetik i digitala system Vid subtraktion av tal med samma tecken kan spill aldrig uppträda. För att inse detta Vi påminner får alltså vi samma oss om villkor att subtraktion för spill vid X Y subtraktion utförs medelst som additionen vid addition. X + Y 2-komplement. Då måste de två talen som adderas ha olika tecken, vilket vi vet inte kan ge spill. Vid subtraktion av tal med olika tecken kan spill uppträda. Med ett liknande resonemang inser vi att de två talen som adderas har samma tecken, V vilket = x n 1 vi vet y n 1 kan s n 1 orsaka + x n 1 spill. y n 1 s n 1

Aritmetik-/logikenhet (ALU) Ett nytt kombinatoriskt nät: Vår adderare kan nu, tillsammans med en uppsättning logikgrindar, användas för att bygga upp en aritmetik- och logikenhet (ALU). Detta nya kombinatoriska nät är nödvändigt för att kunna utföra beräkningar i datorn. Gränssnittet mot grindnätet utgörs av ett antal operationssignaler (F), ett par dataingångar (D och E), en datautgång (U) samt fyra flaggbitar (Z, N, C och V). D (d7,d6,d5,d4, d3,d2,d1,d0) E (e7,e6,e5,e4, e3,e2,e1,e0) kombinatorik C in F (f3,f2,f1,f0) N V Z C U (u7,u6,u5,u4, u3,u2,u1,u0)

Aritmetik-/logikenhet (ALU) ALU bitslice : Varje bit U i på datautgången ansluts till en väljare ( multiplexer ) som, styrd av operationssignalerna F, levererar en bit av resultatet (en s k bitslice ) från den valda operationen. Exempel på operationer i en ALU: addition och subtraktion bitvis XOR bitvis OR bitvis AND bitvis invertering bitkonstanter 0 och 1 Exempel: Väljare för bitslice med åtta operationer. "0" INV i AND i OR i XOR i SUB i ADD i "1" f 2 f 1 f 0 U i

Aritmetik-/logikenhet (ALU) ALU för laboration 1: f 3 f 2 f 1 f 0 U = f(d,e,f,c in ) Operation Resultat 0 0 0 0 Bitvis nollställning 0 0 0 0 1 D 0 0 1 0 E 0 0 1 1 Bitvis invertering D 1k 0 1 0 0 Bitvis invertering E 1k 0 1 0 1 Bitvis OR D OR E 0 1 1 0 Bitvis AND D AND E 0 1 1 1 Bitvis XOR D XOR E Den ALU ni möter i laboration 1 arbetar med 8-bitars maskintal, och innehåller de operationer vi visade för vår enkla bitslice, samt ytterligare ett par varianter av addition. 1 0 0 0 D + 0 + C in D + C in 1 0 0 1 D + FFH + C in D 1 + C in 1 0 1 0 D + E + C in D + E + C in 1 0 1 1 D + D + C in 2D + C in 1 1 0 0 D +E 1k + C in D E 1 + C in 1 1 0 1 Bitvis nollställning 0 1 1 1 0 Bitvis nollställning 0 1 1 1 1 Bitvis ettställning FFH