Inleiding Digitale Techniek



Vergelijkbare documenten
Inleiding Digitale Techniek

Project Digitale Systemen

Jan Genoe KHLim. Reken schakelingen. Jan Genoe KHLim

Antwoorden vragen en opgaven Basismodule

Inleiding Digitale Techniek

2 Elementaire bewerkingen

Inleiding Digitale Techniek

2. Optellen en aftrekken van gelijknamige breuken

Digitale Systeem Engineering 1. Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/

Opdracht week 4 INLDIG 1

2 Elementaire bewerkingen

Kernbegrippen Handig met getallen 1, onderdeel Bewerkingen

Basisvaardigheden algebra. Willem van Ravenstein Den Haag

Studentnummer:... Opleiding:...

3.2 Basiskennis De getallenlijn Symbolen, tekens en getallen. 92 Algebra. Inhoofdstuk1zijnaandeordegeweest: Het=teken. =staat.

Inleiding Digitale Techniek

b) Geef het schema van een minimale realisatie met uitsluitend NANDs en inverters voor uitgang D.

OPGAVEN BIJ HET VAK INLEIDING DIGITALE TECHNIEK MET UITWERKINGEN

Antwoorden zijn afgedrukt!!!!!!!

Examen computerarchitectuur

Informatica 2. Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

1 Rekenen met gehele getallen

Uitwerkingen Rekenen met cijfers en letters

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 1

Willem van Ravenstein

Inleiding Digitale Techniek

Logische poorten. Invertor (NOT) Samenvatting Computer Architectuur Hoofdstuk 7 Klaas Lauwers 1

Rekenen met computergetallen

2.2 Ongelijknamige breuken en vereenvoudigde breuken Gemengde getallen optellen en aftrekken Van breuken naar decimale getallen 28

3.1 Haakjes wegwerken [1]

Groepen, ringen en velden

Hoe werkt een computer precies?

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

logische schakelingen & logica

Les B-02 Technologie: elektronische schakelingen

1. REGELS VAN DEELBAARHEID.

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

Tentamen Elektronische Schakelingen (ET1205-D2)

Het grondtal van het decimaal stelsel is 10. Voorbeeld: het getal Poorten De tellereenheid Mevr. Loncke 1

Lab Webdesign: Javascript 3 maart 2008

Elementaire rekenvaardigheden

1 Rekenen in eindige precisie

VAN HET PROGRAMMEREN. Inleiding

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Studiewijzer Inleiding Digitale Techniek, versie 1.6, , J.E.J. op den Brouw

Rekenen aan wortels Werkblad =

THEORIE TALSTELSELS. 1 x 10 0 = 1 (een getal tot de macht 0 = 1) 8 x 10 1 = 80 2 x 10 2 = x 10 3 = Opgeteld: 9281d(ecimaal)

Tentamen Computersystemen

Opgaven. en uitwerkingen bij het boek Digitale Techniek. Jesse op den Brouw

Examen computerarchitectuur

1.3 Rekenen met pijlen

Les A-03 Binaire en hexadecimale getallen

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 8e hoorcollege

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

Rekenen met cijfers en letters

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/

Hoe werkt een rekenmachine?

= = =0 7-8= 1 tekort! = 4299

slides12.pdf December 14,

VANTEK Discovery set. N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. N991240#1

Algebra, Les 18 Nadruk verboden 35

1. Tellen. b. Getalrijen voortzetten Laat de volgende opgaven maken: Maak de rijen af:

De wissel-eigenschap voor vermenigvuldigen Vermenigvuldigen kan in omgekeerde volgorde gebeuren, want voor ieder paar getallen a enbgeldt: a b=b a.

Proeftentamen Digitale technieken

Kerstvakantiecursus. wiskunde B. Voorbereidende opgaven VWO. Haakjes. Machten

Afspraken hoofdrekenen eerste tot zesde leerjaar

Getalformaten, timers en tellers

Hoofdstuk 4. Digitale techniek

Differentiëren. Training met de rekenregels en de standaard afgeleiden

Getal en Ruimte wi 1 havo/vwo deel 1 hoofdstuk 4 Didactische analyse door Lennaert van den Brink ( )

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

Inleiding Digitale Techniek. Week 7 Schuifregisters Jesse op den Brouw INLDIG/

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 2e werkcollege

Domeinbeschrijving rekenen

Digitale Systeem Engineering 2

De Arduino-microcontroller in de motorvoertuigentechniek (2)

Digitale Systeem Engineering 1. Week 1 VHDL basics, datatypes, signal assignment Jesse op den Brouw DIGSE1/

4.1 Negatieve getallen vermenigvuldigen [1]

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken.

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

VBA voor Doe het Zelvers deel 20

Combinatorische schakelingen

Breuken met letters WISNET-HBO. update juli 2013

Logische functies. Negatie

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

Breuken som en verschil

ANTWOORDEN blz. 1. d = 1013; = ; = ; =

Transcriptie:

Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26

Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen. Elke general purpose microprocessor heeft een optelcircuit aan boord. Daarnaast is het eenvoudig een optelschakeling om te zetten in een aftrekschakeling. Een speciaal geval van optellen (add) is verhogen met één (increment). Veel processoren hebben ook een telschakeling (counter). 2

Optellen Optellen in het binaire systeem is identiek aan optellen in het decimale systeem. Ook alle andere rekenregels zijn identiek. Vermenigvuldigers kunnen worden gemaakt met behulp van optelschakelingen. Eerst wordt er uitgegaan van niet-negatieve* gehele getallen. * niet-negatief = unsigned 3

Optellen Het optellen van twee decimale cijfers levert een decimaal getal op van maximaal twee decimale cijfers: 4 5 9 + 5 + 5 + 9 + 9 8 Als het antwoord groter wordt dan 9, moet een overloop (carry) naar de volgende kolom worden doorgegeven. Het is hierdoor mogelijk twee getallen van willekeurige lengte op te tellen. 4

Optellen Het optellen van twee decimale getallen gebeurt kolomsgewijs. Als het resultaat van een kolomoptelling groter is dan 9, moet een carry naar de volgende kolom worden doorgegeven. carry 9 6 4 9 9 7 3 9 + 9 3 8 8 5

Binaire opteller Om inzicht te krijgen in het optellen van twee binaire cijfers moeten de vier mogelijkheden bekeken worden. + + + + In de eerste drie gevallen past de uitkomst (de som) ook in één binair cijfer. Bij de optelling + moet het resultaat met twee binaire cijfers worden weergegeven (er is een overloop). 6

Optellen Optellen in het binaire systeem is identiek aan optellen in het decimale systeem. In totaal moeten er per kolom drie bits worden opgeteld. In het voorbeeld worden twee 8-bit getallen opgeteld. carry getal A getal B + 7

Optellen Het is mogelijk om een optelschakeling te ontwerpen voor twee binaire getallen. Hiervoor wordt een overgang gemaakt van numerieke -en en -en naar logische -en en -en: numeriek logische numeriek logische Eerst wordt gekeken naar een optelschakeling voor twee binaire cijfers. 8

Half adder Voor deze opteller kan een waarheidstabel worden opgesteld. De variabelen a en b zijn de aangeboden bits. De variabele c out is het carry-bit en s is het sombit. De functies zijn eenvoudig: a b c out s c out s a b a b 9

Half adder Dit wordt in de digitale techniek een half adder genoemd. Het schema: a b = s a HA s & c out b c out

Full adder Een full adder is in staat om drie bits op te tellen. De variabelen a en b zijn de bits van de getallen. De variabele c in is de inkomende carry. c out is de uitgaande carry. c in a b c out s

Full adder De functie voor s is eenvoudig te vinden: s c in ( a b) c ( a b) Dit kan worden omgewerkt naar: in c in a b c out s s c ( a b) in c in a b De exor heeft de associatieve eigenschap. 2

Full adder De functie voor c out is als volgt: c in a b c out s c out c in ( a b) c ( a b) in Dit kan worden omgewerkt naar: c out a b a c in b c in Maar ook naar: c out a b c in ( a b) 3

Full adder Het schema kan als volgt worden opgebouwd. FA = = s s cin ( a b) c in a b & & c out c out a b a c in b c in & 4

Full adder Als alternatief kan de full adder ook als volgt worden opgebouwd. FA c in HA HA a b = & = & s c out s cin ( a b) c out a b c in ( a b) 5

4-bit Full Adder Een 4-bit opteller kan worden opgebouwd uit een cascade-schakeling van -bit full adders. De getallen A en B worden opgesplitst in hun afzonderlijke bits. De bits krijgen een index: a 3 a 2 a a en b 3 b 2 b b De indexnummers komen overeen met de posities van de afzonderlijke binaire cijfers en geven ook de exponent van het gewicht aan (a 3 2 3, ). De naamgeving van c in en c out verandert: de inkomende c-bit krijgt hetzelfde nummer als de a- en b-bits, de uitgaande c-bit krijgt één hoger: a b c in = c, c out = c 2 6

4-bit Full Adder Een 4-bit opteller kan worden opgebouwd uit een cascadeschakeling van -bit full adders. a 3 b 3 a 2 b 2 a b a b 4-bit FA FA c 3 FA c 2 FA c FA c c 4 s 3 s 2 s s c 4 kan als 5 e sombit gebruikt worden 7

4-bit Full Adder Het voordeel van deze realisatie is dat er maar één logische schakeling hoeft worden te ontworpen en het systeem is eenvoudig uitbreidbaar. Het nadeel van deze realisatie is dat het lang duurt om de juiste waarde voor de uitgaande c 4 -bit te krijgen. Na het instellen van de getallen A en B en carrybit c, kost het enige tijd voordat c 4 beschikbaar is. Dit wordt een ripple carry adder genoemd. Deze vertraging heeft geleid tot een scala aan andere implementaties: carry look-ahead, carry-select, carry-skip, carry-completion. Deze implementaties zijn allemaal bedoeld om het berekenen van de carry s te versnellen. 8

Opgaven Tel de volgende binaire getallen op: + + + Toon aan dat: c out c ( a b) c ( a b) in in a b a c in b c in Toon aan dat: c out a b a c in b c in a b c in a b Als de functies van s en c out vanuit de -en zouden worden gemaakt, wordt de functie dan kleiner (minder poorten)? 9

Tellen De bewerking tellen komt in veel schakelingen voor. Meestal betreft het toepassingen waarbij wordt bijgehouden hoeveel keer een bepaalde gebeurtenis optreedt. Tellen wordt meestal gedaan in het binaire stelsel, maar het is heel goed mogelijk in het decimale systeem te tellen. In dit geval worden de decimalen in de BCD-code voorgesteld. Tellers hebben de eigenschap een getelde hoeveelheid te onthouden. Dat betekent dat tellers geheugen bezitten. 2

Tellen Tellers worden vrijwel altijd modulair opgebouwd (bv in processoren: 8 bits, 6 bits). In de BCD-code is dat van nature vier bits. Een cyclus van een 3-decaden teller loopt van BCD tot 999 BCD, waarna de teller weer in BCD start. Zo n teller heet cyclisch. 2 3... 99 2... 999 2... cyclus start opnieuw 2

Telcyclus 4-bit teller Hieronder een voorbeeld van een 4-bit binaire teller. cyclus start opnieuw Duidelijk is dat bij de huidige telstand steeds wordt opgeteld om de nieuwe telstand te krijgen. Dit kan dus met een opteller waarvan één getal de vaste waarde krijgt. 22

Verhogen met één Als voorbeeld verhogen we onderstaand getal met. Verwisselen van c met b levert iets moois op: c c + + B is! 23

Waarheidstabel De waarheidstabel voor de full adder kan aanzienlijk vereenvoudigd worden. Alle regels met b = kunnen worden geschrapt. Alleen de regels met b = blijven over. Aangezien b altijd is kan deze kolom worden geschrapt. c in a b c out s 24

Half adder De waarheidstabel wordt vereenvoudigd. Dit is een half adder. Een telschakeling kan dus gemaakt worden door een cascadeschakeling van half adders. c in a c out s 25

4-bit incrementer Hieronder het resultaat. Merk op dat de carry-ingangen nu verdwenen zijn en de carry-uitgangen zijn verbonden met de b-ingangen. a 3 a 2 a a HA HA HA HA 4-bit incrementer c 4 s 3 s 2 s s wordt niet gebruikt, of carry naar volgende sectie 26

Opgave Hieronder is de full adder die eerder is besproken nog eens afgebeeld, maar nu is de b-ingang aan een logische gekoppeld. Vereenvoudig het schema ( minimaliseer b weg ). Doe hetzelfde voor b is logisch. c in a = & = & s c out 27

Subtractor Op eenzelfde wijze als het ontwerpen van een optelschakeling, kan ook een aftrekschakeling gemaakt worden. In de praktijk wordt echter een optelschakeling gebruikt en wordt de wiskundige gelijkheid gebruikt: A B = A + (-B) Dit vereist echter wel het gebruik van negatieve getallen. Negatieve binaire getallen worden later behandeld. 28

Vermenigvuldigen Het vermenigvuldigen van twee getallen is erg gemakkelijk in het binaire systeem. Er zijn maar drie tafels nodig: voor, en. Als voorbeeld een vermenigvuldiging in het decimale systeem. 39 283 73 328 782 653 x + deelvermenigmuldigingen leveren deelantwoorden die groter zijn dan 9. één plek opschuiven, want 8 is een tiental twee plekken opschuiven, want 2 is een honderdtal lastig, meerder rijen optellen 29

Vermenigvuldigen In het binaire systeem werkt het net zo: x + Vermenigvuldigen is eenvoudig: Vermenigvuldigen met levert! Vermenigvuldigen met levert getal! -en schuiven voor tweetal, viertal, Nadeel: multi-input opteller nodig Maximaal 4+4 = 8 cijfers 3

Vermenigvuldigen De multi-input opteller kan vermeden worden door tussentijds op te tellen: x + + + standaard optellers 3

Vermenigvuldigen Er zijn maar twee tafels nodig: de tafel van en van. Deze kunnen gecombineerd worden. = = = = Dit is precies de tabel van een AND! Een vermenigvuldiger is te bouwen uit ANDs en optellers. 32

Vermenigvuldigen Hardware ontwikkelen gaat ook eenvoudig: a 3 a 2 a a b 3 b 2 b b a 3 b a 2 b a b a b a 3 b a 2 b a b a b a 3 b 2 a 2 b 2 a b 2 a b 2 a 3 b 3 a 2 b 3 a b 3 a b 3 p 7 p 6 p 5 p 4 p 3 p 2 p p x + p = product term 33

Vermenigvuldigen Hardware voor deze oplossing: a 3 a 2 a a 4-bit Full Adders b 3 b 2 b b a 3 b a 2 b a b a b a 3 b a 2 b a b a b pp 4 pp 3 pp 2 pp pp a 3 b 2 a 2 b 2 a b 2 a b 2 pp 4 pp 3 pp 2 pp pp a 3 b 3 a 2 b 3 a b 3 a b 3 p 7 p 6 p 5 p 4 p 3 p 2 p p x x + + + pp = partial product term p = product term 34

Vermenigvuldigen a 3 b a 2 b a 3 b a b a 2 b a b a b a b Hardware: & HA & & FA & & FA & HA & & a 3 b 2 a 2 b 2 a b 2 a b 2 & & & & FA FA FA HA a 3 b 3 a 2 b 3 a b 3 a b 3 & & & & FA FA FA HA p 7 p 6 p 5 p 4 p 3 p 2 p p 35

Vermenigvuldigen Het langste pad van a b of a b naar p 7 is 8 optelsecties. Het kan slimmer met een carry-save structuur. Dit wordt niet besproken. 36

Vermenigvuldigen Natuurlijk kan een vermenigvuldiger ook volgens de bekende oplossingsstructuur van digitale systemen worden ontworpen. Stel een waarheidstabel op met 2x vier ingangen en acht uitgangen: a 3 a 2 a a b 3 b 2 b b p 7 p 6 p 5 p 4 p 3 p 2 p p.. 37

Vermenigvuldigen Dit levert echter zeer veel logica op. Een groot gedeelte van het ICoppervlakte wordt dan gebruikt voor de multiplier. Let hier op tijdens het gebruik van de * -operator in VHDL. library ieee; use ieee.std_logic_64. all; use ieee.numeric_std. all; entity vmul8x8i is port ( x: in unsigned (7 downto ); y: in unsigned (7 downto ); p: out unsigned (5 downto ); ); end vmul8x8i; architecture vmul8x8i_arch of vmul8x8i is begin p <= x*y; end vmul8x8i; 38

Vermenigvuldigen met een constante Een vermenigvuldiging met een constante kan eenvoudig worden omgezet naar een serie optellingen. Bijvoorbeeld: vermenigvuldigen met 3 x = 2 x 2 Het getal is te schrijven als 8 + 2 + = 2 3 + 2 + 2 Dus de vermenigvuldiging is 3 8 + 3 2 + 3 = 3 2 3 + 3 2 + 3 2 39

Vermenigvuldigen met een constante Nu is vermenigvuldigen met 8 (2 3 ) niets anders dat drie plaatsen naar links schuiven en aanvullen met nullen. Vermenigvuldigen met 2 (2 ) is één plaats naar links schuiven en aanvullen met nullen. x = + + Vermenigvuldigen van een 4-bit getal a 3 a 2 a a met 2 : a 3 a 2 a a x 2 = a 3 a 2 a a + a 3 a 2 a a + a 3 a 2 a a 4

Vermenigvuldigen met een constante a 3 a 2 a a a 2 a a s 3 s 2 s a 3 s 4 s s 5 + a 3 a 2 a a a p 7 a a 3 a 2 a p 6 p 5 p 3 p 3 p 2 p p + + + + + s 5 a 3 a 2 a s 4 a s 3 s 2 s s + + + + p 7 p 6 p 5 p 4 p 3 p 2 p p 4

Opgaven Ontwerp volgens de bekende oplossingsstructuur van digitale systemen een 2x2-bit vermenigvuldiger. Ontwerp een schakeling die test of twee niet-negatieve 4-bit getallen gelijk zijn. Ontwerp een 4x4 bit carry save multiplier (tip: uiteraard heeft iemand dat allang gedaan). Hoeveel optellers zijn er nodig voor een 5x3-bit vermenigvuldiger? Hoe breed zijn de optellers? 42

Delen Delen gaat op vergelijkbare wijze als in het decimale systeem: : =, - -,, - 365 : = 36,5 3 65 6 5, 5, Het algoritme is gebaseerd op aftrekken als het mogelijk is en het bijtrekken van de volgende cijfers. Combinatorische delers leveren veel hardware op. 43

Referenties De volgende boeken zijn gebruikt: Digitale techniek, van probleemstelling tot realisatie deel ; A.. Thijssen; 5 e druk. Digital Design, rinciples and ractices; J.F. Wakery; 3 th Ed. Fundamentals of Digital Logic with VHDL Design, S. Brown, 3 th Ed. 44

Carry lookahead Een 4-bit full adder ontworpen als ripple carry adder heeft als nadeel dat het veel tijd kost voordat c 4 beschikbaar is, ongeveer 8 poortvertragingen. Maar c 4 kan natuurlijk ook geschreven worden als functie van de ingangen a 3 t/m a, b 3 t/m b en c. Dit levert echter heel veel hardware op. Slimmer is om uit te gaan van de functie voor de carry. 45

Carry lookahead De carry voor de eerste -bit full adder kan geschreven worden als: c a b a b ) ( c Er worden nu twee hulpfuncties geintroduceerd: G a a b b G staat voor carry generate, want het genereert een carry c onafhankelijk van de c. staat voor carry propagate, want het geeft een eventuele c door aan c. 46

47 Carry lookahead De functie voor c is nu te schrijven als Maar dan is voor c 2 te schrijven In deze functie kan de functie voor c ingevuld worden c G c 2 c G c 2 c G G c G G c G c

48 Carry lookahead En dan kan de functie voor c 3 ook uitgewerkt worden: En natuurlijk uiteindelijk de functie voor c 4 : 2 2 2 2 2 2 2 2 2 3 c G G G c G G G c G c 2 3 2 3 2 3 2 3 3 2 2 2 2 3 3 3 3 3 4 c G G G G c G G G G c G c

Carry lookahead De functie voor c 4 is nu te maken met AND2, AND3, AND4, AND5 en een OR4. Samen met de - en G-hulpfuncties levert dit een schakeling die maximaal drie poortvertragingen heeft. Deze realisatie van carry-propagatie heet carry lookahead. Op de volgende slide staat een schema voor een 4-bit Full Adder. Merk op dat de inversen van en G gegenereerd worden, dat levert snellere logica op. 49

Carry lookahead Uitvoering van de SN74283 4-bit full adder. Merk op dat de inversen van en G gegenereerd worden. 5

De Haagse Hogeschool, Delft +3-5-2663 J.E.J.opdenBrouw@hhs.nl www.dehaagsehogeschool.nl