Digital Design IE1204

Relevanta dokument
Talrepresentation. Heltal, positiva heltal (eng. integers)

Digital Design IE1204

Digital Aritmetik Unsigned Integers Signed Integers"

Digital Design IE1204

IE1205 Digital Design: F6 : Digital aritmetik 2

Digital Design IE1204

IE1204 Digital Design

DIGITALA TAL OCH BOOLESK ALGEBRA

Talrepresentation. Ett tal kan representeras binärt på många sätt. De vanligaste taltyperna som skall representeras är:

IE1204 Digital Design

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Digital Design IE1204

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

24/09/2013. Talrepresentationer" Digital Aritmetik Unsigned Integers Signed Integers" Positiva Heltal" Addition" Heltal" Addition"

Digital elektronik CL0090

Digital- och datorteknik

Adderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

Digital- och datorteknik

Digital- och datorteknik

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digital- och datorteknik

Digital Design IE1204

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

Transistorn en omkopplare utan rörliga delar

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

IE1204 Digital Design

Digital Design IE1204

Digital Design IE1204

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digital Design IE1204

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

Digital Design IE1204

Digital Design IE1204

Laboration 6. A/D- och D/A-omvandling. Lunds universitet / Fakultet / Institution / Enhet / Dokument / Datum

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tenta i Digitalteknik

Digital Design IE1204

F5 Introduktion till digitalteknik

Det finns en hemsida. Adressen är

IE1205 Digital Design: F4 : Karnaugh-diagrammet, två- och fler-nivå minimering

Grundläggande Datorteknik Digital- och datorteknik

VHDL 1. Programmerbara kretsar

Switch. En switch har två lägen. Sluten/Till (Closed/On) Öppen/Från (Open/Off) Sluten. Öppen. Symbol. William Sandqvist

Mintermer. SP-form med tre mintermer. William Sandqvist

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

Sekvensnät. William Sandqvist

IE1204 Digital Design

PNSPO! Adressering i Omrons PLC. 14 mars 2012 OMRON Corporation

Tentamen i Digital Design

F2 Binära tal EDA070 Datorer och datoranvändning

D0013E Introduktion till Digitalteknik

Digital Design IE1204

IE1205 Digital Design: F3 : CMOS-kretsen, Implementeringsteknologier. Fredrik Jonsson KTH/ICT/ES

Översikt, kursinnehåll

Tenta i Digitalteknik

Digital Design IE1204

Laboration Kombinatoriska kretsar

Tentamen i IE1204/5 Digital Design Torsdag 29/

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Digital- och datorteknik

F5 Introduktion till digitalteknik

IE1204/IE1205 Digital Design

HF0010. Introduktionskurs i datateknik 1,5 hp

Binär addition papper och penna metod

Digital- och datorteknik

Tenta i Digitalteknik

Datorsystemteknik DVG A03 Föreläsning 3

Moment 2 - Digital elektronik. Föreläsning 1 Binära tal och logiska grindar

IE1205 Digital Design. F2 : Logiska Grindar och Kretsar, Boolesk Algebra. Fredrik Jonsson KTH/ICT/ES

Tenta i Digitalteknik

Digitala System: Datorteknik ERIK LARSSON

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Tenta i Digitalteknik

Digital elektronik CL0090

Grindar och transistorer

Laboration Kombinatoriska kretsar

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

ASIC TENTAMEN TSTE81. Tid: Lördag 24 april 2004 kl. 14:00 18:00. Ansvarig lärare: Oscar Gustafsson, ,

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Styrteknik: Binära tal, talsystem och koder D3:1

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

Digital Design IE1204

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Laborationshandledning

Tenta i Digitalteknik

F2 Datarepresentation talbaser, dataformat och teckenkodning

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Maurice Karnaugh. Karnaugh-diagrammet gör det enkelt att minimera Boolska uttryck! William Sandqvist

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

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

Digitalteknik och Datorarkitektur 5hp

Tenta i Digitalteknik

Digital- och datorteknik

DIGITALTEKNIK. Laboration D172

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

Digital Design IE1204

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Transkript:

Digital Design IE1204 F5 Digital aritmetik I william@kth.se

IE1204 Digital Design F1 F3 F2 F4 Ö1 Booles algera, Grindar MOS-teknologi, minimering F5 F6 Ö2 Aritmetik Ö3 KK1 LAB1 Kominatoriska kretsar F7 F8 Ö4 F9 Ö5 Multiplexor KK2 LAB2 Låskretsar, vippor, FSM F10 F11 Ö6 KK3 LAB3 FSM, VHDL introduktion F12 Ö7 F13 Asynkron FSM Ö8 F14 tentamen Minnen Föreläsningar och övningar ygger på varandra! Ta alltid igen det Du missat! Läs på i förväg delta i undervisningen areta igenom materialet efteråt!

Detta har hänt i kursen Talsystem: Decimala, hexadecimala, oktala, inära (175,5) = ( AE.8) = (256.4) = (10101110.1) 10 16 8 2 AND OR NOT EXOR EXNOR Sanningstaell, mintermer Maxtermer PS-form SP-form demorgans lag Buelgrindar Fullständig logik NAND NOR CMOS grindar, standardkretsar Minimering med Karnaughdiagrammet 2, 3, 4, 5, 6 varialer

Talrepresentation Ett tal kan representeras inärt på många sätt. De vanligaste taltyperna som skall representeras är: Heltal, positiva heltal (eng. integers) ett-komplementet, två-komplementet, sign-magnitude Decimala tal med fix tal-område Fix-tal (eng. fixed-point) Decimala tal i olika talområden Flyt-tal (eng. floating-point)

Heltal Positiva Heltal: 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 = 1 2 6 + 1 2 5 + 1 2 3 + 1 2 2 + 1 2 0 = 109 Men hur representerar vi negativa tal???

Sign-magnitude Heltal: S 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 = - (1 2 5 + 1 2 3 + 1 2 2 + 1 2 0 ) = - 45 Magnituden (eloppet) av talet Tecken-it Nackdel: två nollor (+/-) 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

1-komplement De negativa talen är komplementet av de positiva talen. Bit för i det positiva talet it inverteras för att ge den negativa motsvarigheten. B= N-1 N-2... 1 0 där i {0,1} N-1 N-2... 1 0 Tecken-Bit (Sign Bit) Nackdelar: Två nollor (+/-) 0. Vid vissa additioner krävs justering av resultatet.

2-komplement heltal Representation med 2-komplement B= N-1 N-2... 1 0 där i {0,1} Tecken-Bit (Sign Bit) Decimalvärde: N-1 N-2... 1 0 D(B)= - N-1 2 N-1 + N-2 2 N-2 +...+ 1 2 1 + 0 2 0 Detta är den vanligaste representationen av tal med tecken.

2-komplement heltal Omvandlingsexempel: B= N-1 N-2... 1 0 där i {0,1} 1 1 1 1 1 1 1 1 Tecken-Bit (Sign Bit) Decimalvärde: D(B)= - N-1 2 N-1 + N-2 2 N-2 +...+ 1 2 1 + 0 2 0 = -128 + 127 = -1 Det är alltid det största talet som motsvarar -1.

Talkonvertering positivt tal till negativt Tvåkomplementmetoden 01111 +15 10000 invertera 10001 lägg till ett 10001-15

Talkonvertering negativt tal till positivt Tvåkomplementmetoden 10001-15 01110 invertera 01111 lägg till ett 01111 +15 Samma procedur i ägge riktningarna!

2-komplement heltal 000 Dator-register är ringar. Figuren visar ett treitarsregister. När man räknar med tal med tecken är de negativa talen den vänstra halvan av ringen. 111 0 001-1 1 110-2 2-3 3 101-4 011 100 010

2-komplementet snat För att lätt ta fram 2-komplementet av ett inärtal kan man använda följande förfarande: Börja från högra sidan Kopiera alla itar som är 0 och fram till och med den första 1:an Invertera Invertera därefter alla andra itar Kopiera Exempel: 2-komplement från 0110 är 1010

Sign-extension Vid eräkningar i datorer ehöver man ofta öka antalet siffror (itar) inför någon eräkning hur gör man det med negativa tal? Heltal: -2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 = -1 2 6 + 1 2 5 +1 2 3 + 1 2 2 + 1 2 0 = - 45 Teckeniten har negativ vikt -2 n-1 2 n-2 1 1 2 7 1 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 0 1 Om man vill utvidga talområdet genom att använda flera itar kopierar man teckeniten till de nya itarna!

Addition (BV: sida 264) (+5) + (+2) (+7) 0101 + 0010 0111

Addition (BV: sida 264) ignorera (+5) + (-2) (+3) 1 1 0101 + 1110 1 0011 Carry-iten kan ignoreras!

Addition (BV: sida 264) ignorera (-5) + (-2) (-7) 1 11 1011 + 1110 1 1001 Carry-iten kan ignoreras!

Overflow Overflow teckeniten stämmer inte överens med ingående tal... (+5) + (+5) (-6) 1 1 0101 + 0101 1010

Overflow 2 ignorera Overflow teckeniten stämmer inte överens med ingående tal... (-5) + (-5) (+6) 1 11 1011 + 1011 1 0110 Carry-iten kan ignoreras!

Sutraktion (BV: sida 265) Låna ett (+5) - (+2) (+3) 10 0101-0010???? Hur gör man sutraktionen på ett enkelt sätt?

Sutraktion (BV: sida 265) ignorera (+5) - (+2) 0101-0010 1 1 0101 + 1110 (+3)???? 1 0011 Gör en addition med 2-komplementet i stället! Carry-iten kan ignoreras!

Sutraktion (BV: sida 265) ignorera (-5) - (+2) 1011-0010 111 1011 + 1110 (-7)???? 1 1001 Carry-iten kan ignoreras!

Sutraktion (BV: sida 265) (+5) - (-2) (+7) 0101-1110???? 0101 + 0010 0111

Sutraktion (BV: sida 265) (-5) - (-2) (-3) 1011-1110???? 1 1011 + 0010 1101

2-komplement sammanfattning Område: -2 N-1 upp till 2 N-1-1 Negation: Invertera varje it (det oolska komplementet), addera sedan 1. Expansion av it-längd: Lägg till ytterligare it positioner till vänster om teckeniten, med samma värde som teckeniten. Overflow-regeln: Om två nummer med samma tecken adderas, så har det livit overflow om resultatet har ett motsatt tecken. Sutraherings-regeln: För att sutrahera B från A, ta tvåkomplementet av B och addera till A.

Alternativt sätt att detektera overflow (BV: sida 271) c 4 =0 c 3 =1 (+7) + (+2) (-7) 0 1 1 0111 + 0010 1001 Overflow eftersom c 4 och c 3 är olika!

Alternativt sätt att detektera overflow (BV: sida 271) c 4 =0 c 3 =0 (-7) + (+2) (-5) 0 0 1001 + 0010 1011 Inte Overflow eftersom c 4 och c 3 är lika!

Alternativt sätt att detektera overflow (BV: sida 271) ignorera (+7) + (-2) (+5) c 4 =1 c 3 =1 1 1 1 0111 + 1110 1 0101 Inte Overflow eftersom c 4 och c 3 är lika! Carry-iten kan ignoreras!

Alternativt sätt att detektera overflow (BV: sida 271) ignorera (-7) + (-2) (+7) c 4 =1 c 3 =0 1 0 1001 + 1110 1 0111 Carry-iten kan ignoreras! Overflow eftersom c 4 och c 3 är olika!

Logik för att detektera overflow För 4-it-tal Overflow om c 3 och c 4 är olika Annars är det inte overflow XOR testar olikhet Overflow = c 3 c 4 + c 3 c 4 = c 3 c 4 För n-it-tal Overflow = c n 1 c n

En Snafråga Talet +5 representeras med 0101 om vi använder 4 itar. Vilket tal motsvarar -5 om vi använder 8 itars två-komplement representation? a: 1111 1011 : 1111 1010 c: 1000 0101

1939 heladderare med kontaktnät Konrad Zuse Dual rail carry full adder Demo

Hårdvara för aritmetik Nu när Hastighet/Komplexitet har etydelse!

Halv-adderaren (Half adder) a HA s c a c s 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 a 0 1 0 1 0 0 0 1 a 0 1 0 1 0 1 1 0 0 0 + 0 0 0 + 1 0 1 + 0 1 1 + 1 c = a a s = a s c 0 1 1 0

Hel-adderaren ( Full adder ) a c in FA s c ut a c in c ut s 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 a c in s c ut c in c in 0 1 a 00 01 11 10 0 1 0 1 1 0 1 0 s = a c in 00 01 11 10 0 0 0 1 0 1 0 1 1 1 c ut = a + c in a + c in

Summafunktionen? c in 00 01 11 10 0 1 0 1 1 0 0 1 1 0 s = a c in

Summa = Udda paritet Heladderarens summafunktion är den udda -paritetsfunktionen. Detta är XOR-funktionens naturliga utökning för fler varialer än två. Udda paritet är när antalet 1:or på ingångarna är ett udda tal. 0 a XOR 0 1 0 1 Udda paritet a c a Udda paritet 00 01 11 10 1 1 0 a c Udda paritet 0 1 0 1 1 0 0 1 1 0

( XOR odd parity ) a a a = + = a c a c a c a c a a c a a c ca ca ca ca = = = + = = + + + = = + + + = ) ( ) ( ) ( ) ( ) ( XOR-2 XOR-3

) ( ) ( a dc a a c d = + ) ( ) ( a dc a a c d = + ) ( ) ( a dc a a dc = + ) ( ) ( a dc a a c d = + ( XOR odd parity ) a c d a c d = = ) ( ) ( XOR-4 = + = + + + = = + + + ) )( ( ) )( ( ) )( ( ) )( ( ) ( ) ( ) ( ) ( a c d a c d a dc dc a dc dc a dc a dc a dc a dc

Carryfunktionen? 00 01 11 10 0 1 0 0 0 1 1 0 1 1 Majoritetsfunktionen. Utgången antar det värde 1/0 som flest av ingångarna har. M

Hel-adderaren med två ½ -adderare Vi kan även konstruera en hel-adderare mha två halv-adderare och en OR-grind a c in FA s c ut a c in HA HA s cut Dekomposition inneär att man ser kretsen som sammansatt av ygglock. Med hjälp av sådana kända ygglock kan man sedan ygga helt nya system Komposition.

a c in c ut s 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Hel-adderaren ½+ ½ = 1 c in c in a HA Man kan använda (a ) till åde s och c ut! a HA s cut s c ut c in c in a a 00 01 11 10 0 0 0 1 0 1 0 1 1 1 (a ) c in c ut = (a ) c in + a a 00 01 11 10 0 0 1 0 1 1 1 0 1 0 s = a c in

Populär tatuering? Tatueringar är för evigt! Men, tyvärr är detta inte den ästa adderarkretsen, inte om man vill ha snaa datorer. Spännande fortsättning om adderarkretsar följer

( Paritetsfunktionen trevägs ljuskontroll ) c in 0 1 00 01 11 10 0 1 0 1 1 0 1 0 Udda paritet. s = a c in

Trevägs ljuskontroll - revisited Brown/Vranesic: 2.8.1 Antag att vi ehöver kunna tända/släcka vardagsrummet från tre olika ställen. Lösningen är paritetsfunktionen. Paritetsfunktionen x 3 x 2 f x 1 x 2 x 3 Udda paritet f x 1

XOR eller NAND? x 1 x 2 x 3 Udda paritet f Den tidigare lösningen aserades på NAND-grindar. XOR-grindar lir mycket effektivare än NAND grindar! x 1 x 2 x 3 f x x 2 x 3 1 00 01 11 10 f 0 1 0 1 1 0 0 1 1 0

Enklare med XOR-grindar Med XOR-grindar: x 1 x 2 x 3 f 7486 ( Med NAND-grindar: )

Enklare med XOR-grindar x 1 x 2 x 3 f

( Paritetscheck ) Med paritetsfunktioner kan man kontrollera om data livit stört eller ej. 0 P U 1 0 1 0 Data - orginal Störning! Data som överförs har alltid jämn paritet! LARM! En it ändrad! Data har störts! 1 P U? 0 1 0 1 0 0 1 1 1 0 1 1 1 0 Paritetsit läggs till Paritetscheck kontrollerar om udda antal 1:or Data ev fel

Mer komposition Komposition kan även användas för att konstruera n-it-adderare F6aritmetik2.pdf Man ehöver n hel-adderare för att konstruera en n-it-adderare ( eller 2 n halvadderare ) Inte ovanligt med 128-its adderare!

(Vem ehöver en 128 it adderare?) 2 128 = 34028236692093846346337460743177 Kronor? VLIW Very Long Instruction Word. Kompilatorn parar ihop lämpliga instruktioner och packar ihop dem för att exekveras samtidigt. Matteläxa: a) addera 12+74 ) addera 27+39 Varför inte göra hela matteläxan, uppgifterna a och, på en och samma gång? Den här tekniken används i Intel Svar: a) 86 och ) 66 Itanium ( EPIC, Explicit Parallel Instruction Code ).

Ripple-Carry Adderare (RCA) a 1 1 a 0 0 c ut1 FA c in1 c ut0 FA c in0 s 1 s 0 + c ut1 c ut0 1 a 1 s 1 c in0 0 a 0 s 0

Ripple-Carry Adderare (RCA) a n-1 n-1 a 1 1 a 0 0 c utn-1 FA c inn-1 FA c in1 c ut0 FA c in0 s n-1 s 1 s 0 a n-1 n-1... a 0 0 A FA area för en Fulladder t FA fördröjning genom en Fulladder c utn-1 n-it ADD s n-1... s 0 c in0 Tidsfördröjning från c in0 till c outn-1 lir hela n t FA Totala arean lir n A FA

Ripple-Carry Adderare (RCA) a0 0 c in0 s0 Critical path a1 1 s1

Ripple effect = efterdyningar Carry måste rippla igenom hela adderaren!

Heladderarens & AND-OR Carry-funktion A AND-OR = 3 6+1 8= 26 MOS T AND-OR = 3T NAND & NAND-NAND & >1 & & & A NAND-NAND =3 4+1 6= =18 MOS T NAND-NAND = 2T NAND & Viktig fördröjning eftersom Carry är längs the critical path

XOR med NAND & & & & a a Area: A XOR =16 MOS Delay: T XOR =3T NAND ( ) ( ) a a a a a a a a a a a a = + = = + + + = = + = = ) ( ) ( ) ( ) ( ) ( ) (

XOR (3) med NAND S Area: A XOR =32 MOS Delay: T XOR =6T NAND Mindre viktig fördröjning eftersom S inte är längs the critical path

Kan vi konstruera en snaare adderare? Fördröjningen i en rippleadderare växer proportionellt med antalet itar För 32 itar kan fördröjningen lir mycket stor ( 65 gate delays)

generate- och propagate- funktionerna Carry-kedjan kan eskrivas med två funktioner: Generate g i (carry-out c i+1 = 1 ifall g i = 1) p i = x i + y i g i = x i y i Propagate p i (carry-out c i+1 = 1 ifall c i = 1 och x i = 1 eller y i = 1 ) p i = x i y Fungerar också! i c = g + i+1 i p i c i c i c i x i y i 0 1 c = 0 1 c i+ 1 x 00 01 11 10 0 0 0 1 i x i y i = y i x i 0 0 0 1 y i + c i 1 0 1 1 + c ( x i i x + 00 01 11 10 = x y 1 0 1 1 + c i + c y ( x i ) i y y i+ 1 i i i i i i )

Carry-look-ahead funktion Carry-it c 0 Carry-it c 1 c 1 = g 0 + p 0 c 0 c 2 = g 1 + p 1 c 1 = g 1 + p 1 (g 0 + p 0 c 0 ) = g 1 + p 1 g 0 + p 1 p 0 c 0 Propagate funktionen från föregående itar kan snaas upp genom att genereras parallellt Bara två logiknivåer ehövs g i = x i y i p i = x i + y i

Carry-kedjan i ripple-adderaren #1 ½ + ½ OR eller XOR kan användas till p funktionen! p 0 c 0 g 0 p 1 g 1 #2 #3 #4 c1 c 2 #5 p 2 #6 g 2 6 grindnivåer c 3

Snaare implementering av Carry-kedjan (med g och p) p 0 #1 #2 c 0 g 0 p 1 #2 c 1 g 1 #1 c 2 c 1 = g 0 +p 0 c 0 c 2 = g 1 +p 1 g 0 +p 1 p 0 c 0 Två-nivåers nät

(n = 8) med två logiknivåer c 1 =g 0 +p 0 c 0 c 2 =g 1 +p 1 g 0 +p 1 p 0 c 0.. Snat, men otympligt med så här många ingångar! c 8 =g 7 +p 7 g 6 +p 7 p 6 g 5 +p 7 p 6 p 5 g 4 +p 7 p 6 p 5 p 4 g 3 + + p 7 p 6 p 5 p 4 p 3 g 2 +p 7 p 6 p 5 p 4 p 3 p 2 g 1 + + p 7 p 6 p 5 p 4 p 3 p 2 p 1 g 0 + p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 c 0 Det ehövs nog specialgrindar till detta Ooops!

Carry-lookahead adder (CLA) 8-it adder c + 8s7s6s5s4s3s2s1s0 = a7a6a5a4a3a2a1a0 76 543 21 0 a 7 7 a 6 6 a 5 5 a 4 4 a 3 3 a 2 2 a 1 1 a 0 0 1-it Full Adder 1-it Full Adder 1-it Full Adder 1-it Full Adder 1-it Full Adder 1-it Full Adder 1-it Full Adder 1-it Full Adder c 0 s 7 s 6 s 5 s 4 s 3 s 2 s 1 s 0 c 8 p 7 g 7 c 7 p 6 g 6 c 6 p 5 g 5 c 5 p 4 g 4 c 4 p 3 g 3 Carry look ahead unit c 3 p 2 g 2 c 2 p 1 g 1 c 1 p 0 g 0 P 0 G 0 c 8 =g 7 +p 7 g 6 +p 7 p 6 g 5 +p 7 p 6 p 5 g 4 +p 7 p 6 p 5 p 4 g 3 +p 7 p 6 p 5 p 4 p 3 g 2 +p 7 p 6 p 5 p 4 p 3 p 2 g 1 + + p 7 p 6 p 5 p 4 p 3 p 2 p 1 g 0 + p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 c 0

c 32 Hierarkisk expansion (BV sid 277) a 31-24 31-24 Block 3 CLA a 23-16 23-16 Block 2 CLA 32-it adder a 15-8 15-8 Block 1 CLA a 7-0 7-0 Block 0 CLA G 3 P 3 S 31-24 G 2 P 2 S 23-16 G 1 P 1 S 15-8 G 0 P 0 S 7-0 c 24 c 16 c 8 P G P G 3 3 2 2PG 1 1P0 G0 c 0 P G 2 2PG 1 1P0 G0 c 0 PG P 1 1 0G0 c 0 P 0 G 0 c 0 c 0 32-its adderare. Varje lock estår av en 8-its CLA. First level four 8-it adders with Carry lookahead Second level four Carry lookahead units

Hierarkisk expansion nivå 2 Carry-itar från en andra nivåns Carry lookahead enheter C 8 = G 0 +P 0 c 0 C 16 = G 1 +P 1 G 0 +P 1 P 0 c 0 C 24 = G 2 +P 2 G 1 +P 2 P 1 G 0 +P 2 P 1 P 0 c 0 C 32 = G 3 +P 3 G 2 +P 3 P 2 G 1 +P 3 P 2 P 1 G 0 +P 3 P 2 P 1 P 0 c 0 etc. Med Carry lookahead enheter i flera nivåer kan adderare med fler itar konstrueras. Med flera nivåer kan också grindar färre ingångar användas, men varje nivå idrar med extra grindfördröjningar.

( Carry look ahead 3 level hierarchy ) 5-ingångars grindar med 2 nivåer 5-ingångars grindar med 2 nivåer 16-it LCU 64-it adder 5-ingångars grindar med 2 nivåer 64-it LCU Totalt sex grindnivåer

Carry-Select-Adder (CSA) Idé Man delar upp en adderare i två steg med samma antal itar För att snaa upp processen så räknar man ut resultatet av det andra steget i förväg för två fall Carry-in = 0 Carry-in = 1 När eräkningen av carry-iten är klar för det första steget, så väljer man resultatet av det andra steget eroende på carry-itens värde!

8-it (4+4) ripple carry Adder [7:4] a[7:4] a[3:0] [3:0] a a+ = s c c 4 c 0 8 Add Add s[7:4] s[3:0] s

4+4/4 it Carry-Select-Adder c 8-high [7:4] [7:4] a[3:0] [3:0] 1 0 Add Add Add Mux c c 8 a[7:4] c 8-low Mux c a[7:4] c 4 s[7:4] s[3:0] s c 0 a a+ = s Dula hastigheten 1/3 extra area

Ripple-Carry Adder Jämförelser T(n)= n*2.5*t NAND, A = n*12.5a NAND T(4)= 14T NAND, A(4) = 50 A NAND Carry-Lookahead Adder (4 its) T(4)= ~8T NAND, A(4)= 43A NAND +4*4*A NAND = ~60A NAND Carry-Select Adder (8 its) T(8)= ~(8+4)T NAND, A(8)= ~(120+20)A NAND

Vilken är den ästa adderaren? Det finns inget entydigt svar! Ripple-adderaren tar minst plats men är långsam Carry-lookahead-adderaren tar mycket plats men är sna Carry-select-adderaren är en kompromiss Man måste göra en trade-off mellan area och speed

Sutraktion Sutraktion kan göras genom addition med två komplementet Invertera alla itar av den andra operanden Addera 1

Add/su-enheten y n 1 y 1 y 0 Add/Su = 0: Addition Add/Su = 1: Sutraktion Add Su control x n 1 x 1 x 0 c n n -it adder c 0 s n 1 s 1 s 0

Add

Su

Arithmetic Logic Unit (ALU) Funktionsväljare f 0 f 1 AU LU A/L MUX Ex. ALU specification f 0 f 1 A/L x ALU y c in Processorer rukar alltid ha en ALU, inte ara en adderare. A/L f1 f0 Funktion 0 0 0 x+y 0 0 1 x+y+c in 0 1 0 x-y 0 1 1 x-y-c in 1 0 0 x or y 1 0 1 x and y 1 1 0 x xor y 1 1 1 inv x

Komparator Komparatorn, = jämförelse, implementeras som en sutraktionskrets Flaggor:???

Komparator Komparatorn, = jämförelse, implementeras som en sutraktionskrets Flaggor: På övningen får Du veta hur > < jämförelser görs.

Sammanfattning Addition och sutraktion av heltal Två-komplementet Sutraktion av ett tal implementeras som addition med dess två-komplement Trade-Off: Area mot Speed Olika Adder-strukturer Ripple-Carry Adder (RCA) Carry-Lookahead Adder (CLA) Carry-Select Adder (CSA)

Just for fun Halvadderarkrets med Dominorickor

Just for fun 4 its adderare med Dominorickor