DM13-1. Obligatoriske Opgave - Kredsløbs design

Relaterede dokumenter
DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen

Boolsk algebra For IT studerende

Boolsk algebra For IT studerende

Computeren inderst inde

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Alt dette er også grundlaget for digitalteknikken, som er baseret på logiske

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

DM507 Algoritmer og datastrukturer

Eksamen dcomnet Q2/2010. Navn

Eksamen dcomnet 2012Q4. Årskortsnummer Navn

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

DM507 Eksamen Obligatorisk Opgave Rejseplanlægning

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

DM507 Algoritmer og datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Oversigt. Indhold mm.5: Latch es og flip-flops Analyse af synkrone sekventielle kredsløb Syntese. Boolsk algebra, byggeblokke,

Matematikkens filosofi filosofisk matematik

DATALOGI MASKINARKITEKTUR Blok 2 samt Reeksamination i DATALOGI MASKINARKITEKTUR Blok 1 og arkitekturdelen af DATALOGI 1E

DM507 Algoritmer og datastrukturer

Eksamen Computerarkitektur 2013Q4. Niels Olof Bouvin. Studienummer Navn

Computerarkitektur Eksamen 2014Q3. Niels Olof Bouvin. Studienummer Navn

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse.

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Repræsentation af tal

Computerarkitektur Eksamen 2014Q2. Niels Olof Bouvin A. Studienummer Navn

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.

Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense

Skriftlig eksamen i Datalogi

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Øvelses journal til ELA Lab øvelse 4: Superposition

Indholdsfortegnelse :

Danmarks Tekniske Universitet

CV for Lasse Nielsen

Danmarks Tekniske Universitet

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Om binære søgetræer i Java

Bits, bit operationer, integers og floating point

Start af nyt schematic projekt i Quartus II

Logik. Af Peter Harremoës Niels Brock

Sortering. Eksempel: De n tal i sorteret orden

Rolf Fagerberg. Forår 2013

Sortering af information er en fundamental og central opgave.

Sortering. Eksempel: De n tal i sorteret orden

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Elementær Matematik. Mængder og udsagn

Eksamen dcomnet Q2/2012. Studiekortsnummer Navn

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Danmarks Tekniske Universitet

Seriel kommunikation

Danmarks Tekniske Universitet

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

Danmarks Tekniske Universitet

DATALOGI MASKINARKITEKTUR

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

DM507 Algoritmer og datastrukturer

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

DM507 Algoritmer og datastrukturer

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %

Sortering af information er en fundamental og central opgave.

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

DM507 Algoritmer og datastrukturer

Induktive og rekursive definitioner

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

DM507 Algoritmer og datastrukturer

STUDIEORDNING FOR DE NATURVIDENSKABELIGE UDDANNELSER VED ODENSE UNIVERSITET

KNX løsninger til. Erhvervsbygninger. KNX Automatisk dagslysregulering med foldedørsstyring og manuel dæmp

DATALOGI 1E. Vejledende løsninger til Skriftlig eksamen fredag den 7. juni 2002

Rettevejledning, FP9, Prøven med hjælpemidler, endelig version

DM507 Algoritmer og datastrukturer

uprocessorens hardware

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

Det Digitale Niveau. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Skriftlig Eksamen Beregnelighed (DM517)

Introduktion. Philip Bille

Logik Rapport - Alarm. Klaus Jørgensen Itet. 1a. Klaus Jørgensen & Ole Rud 9/ Vejledere: PSS & SKH

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

3. Computerens opbygning.

Take-home Eksamen. DM505 Design og programmering af databaser. Syddansk Universitet Institut for Matematik og Datalogi

Grundlæggende Algoritmer og Datastrukturer

MASKELIGNINGER - KIRCHHOFFS LOVE (DC) Eksempel

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

16. marts P NP. Essentielle spørgsmål: NP P? Et problem Q kaldes NP -fuldstændigt 1 Q NP 2 R NP : R pol Q. Resume sidste gang

LEDER LEDER LEDER LEDER LEDER LEDER LEDER LEDER LEDER LEDER LEDER LEDER WALK AND TALK WALK AND TALK WALK AND TALK WALK AND TALK WALK AND TALK

Skriftlig Eksamen Diskret Matematik (DM528)

Projekt Træningsmaskine

Niveauer af abstrakte maskiner

Hold 6 Tirsdag. Kristian Krøier, Jacob Christiansen & Thomas Duerlund Jensen Fag: ELA Lærer: Jan Petersen (JPe) Dato for aflevering: 29.

CPUer og maskinkode DM534. Rolf Fagerberg

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 18/ Side 1 af 11

Transkript:

DM13-1. Obligatoriske Opgave - Kredsløbs design Jacob Christiansen moffe42@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 1. Opgaven Opgaven består i at designe et kredsløb, som givet 2 binære tal, kan sammenligne dem og beregne 6 "condition codes". LT LE EQ NE GE GT < = > Disse returneres i et 6 bits register, hvor hvert bit har værdien true, så frem betingelsen er opfyldt. Dette kan f.eks. bruges til at implementere instruktionen COMPARE, så et efterfølgende kald til JUMP<cc>, vil hoppe såfremt det pågældende bit i registeret er sat. (cc betegner en af de 6 condition codes). Kredsløbet skal designes vha. "devide-and-conquer"-princippet, så beregningen bliver i logaritmisk tid. 2. Princip Ved at opbygge kredsløbet i en træstruktur, bruger vi "devide-and-conquer"-princippet, da vi deler problemet op. Vi starter med at sammenligne de enkelte bit i de to binære tal. Når vi så har sammenlignet de enkelte bit, sammenligner vi resultatet af to sammenligninger osv. op igennem træet til vi til sidst har en sammenligning, som vi så vil bruge til at sætte de respektive bit i vores 6 bit register. For at dette kan lade sig gøre, er vi nød til at finde en måde at kode sammenligningen. Dette gøres ved to bit som sendes videre. Det er her vi finder ud af at det faktisk kun er nødvendigt at kode for 3 tilstande, nemlig LT EQ GT < = > da vi ud fra disse nemt kan beregne alle 6 condition codes ud fra disse 3. Jeg har valgt at kode de 3 tilstande på følgende måde Condition code Bit 1 Bit 2 < 0 1 = 1 1 > 1 0 Tabel 1 Jeg har valgt ikke at bruge 00, da jeg kun har brug for 3 tilstande, men har 4 tilrådighed. I alle diagrammer herfra, er 00 bevidst undladt, da ingen af delkredsløbene vil aflevere 00 til det næste. For at finde ud af, hvordan de enkelte delkredsløb skal se ud, bruger jeg Karnaugh kort. Disse er ikke gennemgået i dette kursus, DM13, men i kurset DIG på IOT, Ingeniørhøjskolen Odense Teknikum, som jeg tidligere har fulgt. Vi kigger nærmere på de Karnaugh kort, jeg har stillet op for mine delkredsløb i afsnittet "Karnaugh kort". For at kunne løse problemet, er vi nød til at designe 3 forskellige delkredsløb. Et der sammenligner et bit fra hvert binært tal og som sender en af de 3 tilstande videre. Dette delkredsløb betegnes med tallet 1. Det andet skal tage to tilstande og sende en tilstand videre. Hvilke der skal sendes videre, ses i tabel 2 nedenfor.

Input 1 Input 2 Output < < < < = < < > < = < < = = = = > > > < > > = > > > > Tabel 2 Dette delkredsløb betegnes med tallet 2. Det sidste delkredsløb, skal ud fra en tilstand, sende de respektive condition codes til vores 6 bit register. Dette delkredsløb betegnes med tallet 3. Ved at sætte disse 3 delkredsløb sammen i en træstruktur, opnår vi det vi er ude efter, nemlig et kredsløb, som kan beregne de 6 condition codes i logaritmisk tid. Fig. 1 - Kredsløbets træstruktur opbygning Vi går ud fra i resten af dette skrift at alle binære tal er af power 2, da dette vil give et balanceret træ.

3. Karnaugh kort For at finde frem de boolske ligninger, som vi skal bygge vores delkredsløb fra, bruger jeg som tidligere nævnt Karnaugh kort. Først opstilles sandhedstabellen og derefter opstilles Karnaugh kortet. Sandhedstabellen og Karnaugh kortet for kredsløb 1 ses nedenfor. A B C D 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 Tabel 3 Fig. 2 - Karnaugh kort over delkredsløb 1 I delkredsløb 1 og 2, betegner henholdsvis bit C og bit D, første og andet bit i den tilstands kode, som viser de to binære tals inbyrdes forhold. Ud fra de to Karnaugh kort får vi følgende to boolske ligninger, for C og D. C = A + B D = A + B Understregningen gør det ud for en negering, da M$ Word 97 ikke har mulighed for at lave overstregning. Ud fra disse to boolske ligninger fås følgende kredsløb.

Fig. 3 - Delkredsløb 1 Delkredsløb 2 designes på samme måde. A B C D 01 01 0 1 01 11 0 1 01 10 0 1 11 01 0 1 11 11 1 1 11 10 1 0 10 01 1 0 10 11 1 0 10 10 1 0 Tabel 4

Dette giver følgende to boolske ligninger. Fig. 4 - Karnaugh kort over delkredsløb 2 C = A 1 B 1 + B 2 A 1 A 2 D = A 2 B 2 + B 1 A 1 A 2 A 1 betegner bit C fra tidligere delkredsløb og A 2 bit D. Dette samme gælder for B 1 og B 2. Disse to boolske ligninger giver os følgende. Fig. 5 - Delkredsløb 2

Til sidst gøres det samme for delkredsløb 3 A B C D E F G H 1 1 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 1 0 1 0 0 Tabel 5 Fig. 6 - Karnaugh kort over delkredsløb 3 Hvor de 6 output er henholdsvis LT, LE, EQ, NE, GE og GT, som svare til C, D, E, F, G og H. Dette giver anledning til 6 bolske ligninger. C = AB D = B E = AB F = AB + AB G = A H = AB

Dette føre til delkredsløb 3. Fig. 7 - Delkredsløb 3 Når disse 3 delkredsløb sættes sammen, som vist i fig. 1, vil kredsløbet beregne det som vi var ude efter, nemlig et 6 bit register, hvor de førnævnte condition codes er sat. 4. 2's komplement Ind til nu har vi taget de binære tal uden fortegn, og ikke negative. Vi vil nu kigge på biære tal i 2's komplement. I 2's komplement vil 0 have prioritet over 1, dvs. at 0 er større end 1. For at vores kredsløb skal kunne klare 2's komplement binære tal, er vi nød til at ændre det. En mulighed var at lave et fjedre delkredsløb, som omdannede 2's komplement binære tal til almindelige tal binære tal og så sende dem igennem resten af kredsløbet. Dette giver dog problemer, da vi ikke har designet kredsløbet til at klare negative tal. En anden mulighed var bare at negere alle indgange. Jeg har dog i stedet valgt bare bytte om på den rækkefølge som kredsløbet får de enkelt bit. I stedet for at få A og så B, så giver vi kredsløbet B og så A. På den måde vil kredsløbet give prioritet til 0 i stedet for 1. Et eksempel ses på fig. 8 nedenfor.

Fig. 8 - Kredsløbets træstruktur opbygning, ved 2's komplement 5. Konklusion Vi har ved hjælp 3 små delkredsløb, konstrueret et større kredsløb, som kan sammenligne to binære tal, og sætte 6 bit i et register, alt efter hvilke conditions der gælder mellem de to binære tal. Desuden har vi vist at der ved meget lille anstrengelse også kan bruges binære tal i 2's komplement, så det er muligt at sammenligne negative tal. Dog vil det kræve at der kommer noget logik før vores kredsløb eller der laves to, næsten, identiske kredsløb. Kredsløbet som vi har designet er skalerbart til, næsten, uendelighed, da det bare er spørgsmålet om at bruge flere delkredsløb. Dette vil dog i den virkelige verden, give fysiske problemer, f.eks. størrelse og spænding.