VLSI (Very-Large-Scale-Integrated- Circuits) it Mer enn porter på samme. LSI (Large-Scale-Integrated-Circuits)

Like dokumenter
Repetisjon. Sentrale temaer i kurset som er relevante for eksamen (Eksamen kan inneholde stoff som ikke er nevnt her)

Repetisjon digital-teknikk. teknikk,, INF2270

Forelesning 9. Registre, tellere og minne

IN1020. Sekvensiell Logikk

INF2270. Sekvensiell Logikk

IN1020. Logiske porter om forenkling til ALU

Forelesning 7. Tilstandsmaskin

INF1400. Karnaughdiagram

Forelesning 6. Sekvensiell logikk

INF2270. Boolsk Algebra og kombinatorisk logikk

Oppsummering digital-teknikk, teknikk, INF2270

INF1400. Sekvensiell logikk del 1

Forelesning 3. Karnaughdiagram

INF1400. Sekvensiell logikk del 1

Kapittel 5 Tilstandsmaskin

INF1400. Tilstandsmaskin

INF1400. Tilstandsmaskin

INF1400. Digital teknologi. Joakim Myrvoll 2014

VHDL En kjapp introduksjon VHDL. Oversikt. VHDL versus C(++)/Java

Løsningsforslag INF1400 H04

Teoretisk minnemodell Flyktig minne - SRAM -DRAM Ikke-flyktig minne -ROM -EPROM - EEPROM Flash

UNIVERSITETET I OSLO

Dagens temaer. temaer hentes fra kapittel 3 i Computer Organisation. av sekvensielle kretser. and Architecture. Tilstandsdiagram.

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

Hva gikk vi gjennom forrige uke? Omid Mirmotahari 3

En mengde andre typer som DVD, CD, FPGA, Flash, (E)PROM etc. (Kommer. Hukommelse finnes i mange varianter avhengig av hva de skal brukes til:

Forelesning 2. Boolsk algebra og logiske porter

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and. ! Kort repetisjon fra forrige gang

INF1400 Kap 02 Boolsk Algebra og Logiske Porter

Ferdighetsmål: Kunne forenkle boolske uttrykk Kunne implementere flerinputs-porter med bare 2-inputs porter

Forelesning 4. Binær adder m.m.

Låsekretser (latch er) SR latch bygget med NOR S R latch bygget med NAND D latch. Master-slave D flip-flop JK flip-flop T flip-flop

INF1400 Kap4rest Kombinatorisk Logikk

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

Datamaskiner og operativsystemer =>Datamaskinorganisering og arkitektur

Dagens tema. Dagens tema hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er. Tellere og registre

INF1400 Kap 0 Digitalteknikk

Løsningsforslag i digitalteknikkoppgaver INF2270 uke 5 (29/1-4/2 2006)

Forelesning 5. Diverse komponenter/større system

LØSNINGSFORSLAG 2006

Dagens temaer. Dagens temaer er hentet fra P&P kapittel 3. Motivet for å bruke binær representasjon. Boolsk algebra: Definisjoner og regler

Dagens tema. Dagens temaer hentes fra kapittel 3 i læreboken. Repetisjon, design av digitale kretser. Kort om 2-komplements form

UNIVERSITETET I OSLO

TFE4101 Krets- og Digitalteknikk Høst 2016

INF1400. Kombinatorisk Logikk

Forelesning 8. CMOS teknologi

PENSUM INF1400 H11. Joakim Myrvoll Johansen. Digital Design, M. Morris Mano, 4th edition

Dagens temaer. Dagens temaer hentes fra kapittel 3 i læreboken. Oppbygging av flip-flop er og latcher. Kort om 2-komplements form

Synkron logikk. Sekvensiell logikk; to typer:

INF3340/4340. Synkrone design Tilstandsmaskiner

UNIVERSITETET I OSLO

7. Hvilket alternativ (A, B eller C) representerer hexadesimaltallet B737 (16) på oktal form?

INF3430/4431. Kretsteknologier Max. kap. 3

Tilstandsmaskiner (FSM) Kapittel 5

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF3340. Tilstandsmaskiner

INF1400. Kombinatorisk Logikk

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Kort repetisjon fra forrige gang. Kombinatorisk logikk

Notater: INF2270. Veronika Heimsbakk 10. juni 2014

Løsningsforslag til regneøving 6. a) Bruk boolsk algebra til å forkorte følgende uttrykk [1] Fjerner 0 uttrykk, og får: [4]

Kombinatorisk og synkron logikk. Kapittel 4

INF3340/4431. Tilstandsmaskiner

Hovedpunkter. Digital Teknologi. Digitale Teknologi? Digitale Teknologi? Forelesning nr 1. Tall som kun er representert ved symbolene 0 og 1

INF2270. Datamaskin Arkitektur

TFE4101 Krets- og Digitalteknikk Høst 2016

I dag. Minne typar Minne mot bussar (fysisk grensesnitt generelt) Meir buss

Digital Teknologi. Forelesning nr 1

INF2270. Datamaskin Arkitektur

Kontinuasjonseksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

Oppsummering av digitalteknikkdelen

Kontinuasjonseksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK. Onsdag 15. august Tid. Kl LØSNINGSFORSLAG

Fys 3270/4270 høsten Laboppgave 2: Grunnleggende VHDL programmering. Styring av testkortets IO enheter.

4 kombinatorisk logikk, løsning

EKSAMEN Emnekode: ITD13012

UNIVERSITETET I OSLO

INF1400 Kap 1. Digital representasjon og digitale porter

Digitalstyring sammendrag

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK Fredag 21. mai 2004 Tid. Kl

Høgskoleni østfold EKSAMEN. Dato: Eksamenstid: kl til kl. 1200

Emnenavn: Datateknikk. Eksamenstid: 3 timer. Faglærer: Robert Roppestad. består av 5 sider inklusiv denne forsiden, samt 1 vedleggside.

5 E, B (16) , 1011 (2) Danner grupper a' fire bit , (2) Danner grupper a' tre bit 1 3 6, 5 4 (8)

INF 3430/4430. Viktige momenter i syntese og for valg av teknologi

Kontinuasjonseksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

Høgskolen i Sør-Trøndelag Avdeling for teknologi

Høgskoleni østfold EKSAMEN. Emnekode: Emne: ITD13012 Datateknikk (deleksamen 1, høstsemesteret) Dato: Eksamenstid: kl til kl.

EKSAMEN (Del 1, høsten 2015)

MAX MIN RESET. 7 Data Inn Data Ut. Load

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK. Fredag 25. mai Tid. Kl LØSNINGSFORSLAG

INF3430. VHDL byggeblokker og testbenker forts.

SIE 4005, 8/10 (3. Forelesn.)

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

INF3430/4430. Kombinatoriske og sekvensielle byggeblokker implementert i VHDL :57

NY EKSAMEN Emnekode: ITD13012

Organisering og ledelse av hardware-utvikling

INF3430. Kretsteknologier Programmeringsteknologier VHDL-Access datatyper

Transkript:

Teknologier Repetisjon Sentrale temaer i kurset som er relevante for eksamen (Eksamen kan inneholde stoff som ikke er nevnt her) VLSI (Very-Large-Scale-Integrated- Circuits) it Mer enn porter på samme chip LSI (Large-Scale-Integrated-Circuits) Noen få porter på samme chip SSI (Small- Scale-Integrated-Circuits) Noen få porter på samme chip 2 3 Digitale design metoder I Hardvare basert design: SSI design Setter sammen SSI pakker på kretskort FPGA (Field Programmable Gate Array) Rekonfigurerbar logikk, eks. Xilinx, Altera, osv.. ASIC (Application Specified Integrated Circuit) Skreddersydd logikk (designer på transistor nivå) Strømforbruk / hastighet / areal / spesialfunksjoner / pris / kombinert analog-digital / andre spesielle formål 4 Digitale design metoder II Softvare / hardvare basert design: MicroController Mikroprosessor med tilhørende I/O og memory på en brikke (datamaskin på en brikke) DSP (Digital Signal Processor) Microcontroller spesialbygd for rask signalbehandling, eks. video, audio, osv.. PC / arbeidsstasjon Digitale operasjoner kan utføres på PC med I/O kort

NMOS transistoren NMOS (Negative doped Metal Oxide Silicon) En 3 (4) terminals komponent PMOS transistoren PMOS (Positive doped Metal Oxide Silicon) En 3 (4) terminals-komponent Drain Drain Source Source Symbol: Gate Gate Symbol: Gate Gate Source Source Drain Drain Spenningen på gate bestemmer om transistoren leder strøm mellom drain og source terminalene Spenningen på gate bestemmer om transistoren leder strøm i mellom drain og source terminalene 5 6 CMOS kretser CMOS NAND-krets CMOS (Complementary MOS) inverter 5V x x Gnd n+ n+ p+ p- V n- Sett fra siden Metall x 5V Vdd p+ Poly Både A og B må være 5V for å koble utgangen ned til V A A B (AB) n- B V p- x 7 Kontakt fra metall til n+ Sett ovenifra 8

CMOS NOR-krets Portforsinkelse A Portforsinkelse (propagation delay) er et mål på hvor lang tid det tar før utgangen til en port reagerer på en logisk forandring på inngangen Det holder at enten A eller B er 5V for å koble utgangen ned til V B (A+B) Portforsinkelse skyldes parasittiske kapasitanser i systemet Portforsinkelsen er gitt av driveregenskapene til porten samt hvor stor kapasitans det er på utgangen B A Kapasitansen på en utgang er vanligvis dominert av kapasistansene til inngangene utgangen er koblet til 9 Boolske funksjoner Tilordner en binær variabel en verdi bestemt av verdien på en eller flere andre binære variabler Eksempel: F = x + y z Direkte port-implementasjon: y y z Sannhetstabell En boolsk funksjon kan visualiseres i en sannhetstabell Eksempel: xyz F F = x + y z En gitt funksjon har kun en sannhetstabell Men, en gitt sannhetstabell har uendelig mange funksjonsuttrykk Stikkord: forenkling av funksjonsuttrykk 2

Teorem/postulatliste Port-implementasjon av F 2 x + = x x = x x + x = xx = x + y = y+x xy = yx x + (y+z) = (x+y) + z x (yz) = (xy)z x(y+z) = xy + xz x + x = x x + (yz) = (x+y)(x+z) x x = x x + = x = x + xy = x x(x+y) = x (x+y) = x y (xy) = x + y xy x z x y z x yz xy 3 4 Minterm Sannhetstabell / mintermer 5 I en funksjon kan en binær variabel x opptre som x eller x En funksjon kan være gitt på sum av produkt form Eksempel: F = xy + xy + x Hvert produktledd dd som inneholder alle variablene kalles en minterm For to variable fins det 4 forskjellige mintermer: xy + xy + x y + x y For 3 variable fins det 2 3 forskjellige mintermer: xyz + xyz + xy z + xy z +x yz + x yz + x y z + x y z 6 Hvis man genererer en funksjon ut i fra sannhetstabellen får man en sum av mintermer Eksempel: xyz F = x y z + xy z + xyz En sannhetstabell kan sees på som en liste av mintermer F

Maksterm Generell design prosedyre En funksjon kan være gitt på produkt av sum form Eksempel: F = (x+y)(x+y )y Hvert summeledd som inneholder alle variablene kalles en maksterm For to variable fins det 4 forskjellige makstermer: (x+y)(x+y )(x +y)(x +y ) For n variable fins det 2 n forskjellige makstermer:. Bestem hvilke signal som er innganger og utganger 2. Sett opp sannhetstabell for alle inngangskombinasjoner 3. Generer funksjonsuttrykket som sum av mintermer 4. Tilpass /forenkle funksjonsuttrykket mot aktuelle porter 7 8 Forenkling på portnivå Karnaugh - 4 variable Det er ikke alltid at det enkleste funksjonsuttrykket resulterer i den enkleste port-implementasjonen Ved forenkling på portnivå må man vite hvilke porter man har til rådighet, og så justere funksjonsuttrykket mot dette. (håndverk) Plassering av mintermer for 4-variable funksjoner Mintermene plasseres slik at kun variabel varierer i mellom hver vannrette/loddrette naborute 9 2

Grupperingsregler for diagram med 2-4 variable Grupperer naboruter som inneholder slik at vi får sammenhengende rektangler Eksempel: Grupperingsregler for diagram med 2-4 variable Ytterkantene av diagrammet kan også være naboruter Eksempel 2 22 Utlesningsregler for diagram med 2-4 variable Representerer hver gruppe ved de variablene i gruppen som ikke varierer. Diagrammets funksjon n blir summen av hvert gruppeledd: Eksempel F = AD +CD +B C + AB Utlesning av ere Ved å lese ut de tomme rutene ( erne) fra diagrammet får man F Dette kan noen ganger gi en enklere funksjon, eksempel: F = yz + wx F = (yz + wx ) Hadde vi lest ut ere ville vi fått F = xy + w y + w z + xz 23 24

Don t care I noen tilfeller har man inngangskombinasjoner som aldri dukker opp A B C Innganger Digitalt system I andre tilfeller bryr man seg ABC F ikke om utfallet for visse inngangskombinasjoner Slike kombinasjoner kalles don t care kombinasjoner og X markers med X X Utganger F Halvadder (ikke mente inn) Binær adder A B S C n+ C n C A n B n C n C Fulladder (evt. mente inn) S n A n A B + S = A B C n+ B n S n S 25 26 Et adder system Menteforplantning Systemelementer: Halvadder: Tar ikke mente inn Fulladder: Tar mente inn Portforsinkelse gir menteforplantning (rippeladder) Eksempel Adderer og A 3 B 3 A 2 B 2 A B A B C 4 Full C 3 Full C 2 Full C Halv C = adder adder adder adder Full Full Full adder adder adder Halv adder S 3 S 2 S S 27 28

Definisjoner SR Latch - funksjonell beskrivelse Kombinatorisk logikk Utgangsverdiene er entydig gitt av nåværende kombinasjon av inngangsverdier Sekvensiell logikk Inneholder hukommelse (låsekretser) Utgangsverdiene er gitt av nåværende kombinasjon av inngangsverdier, samt sekvensen (tidligere inngangs-/utgangsverdier) ) Kretsen skal sette til hvis den får på inngang S. Når inngang S går tilbake til skal forbli på 2) Kretsen skal resette til når den får på inngang R. Når inngang R går tilbake til skal forbli på 3) Tilstanden på både S og R brukes normalt ikke S R SR SR låst 29 3 DL Latch Dataflyten gjennom en D latch kontrolleres av et klokkesignal D latch: D Clk ) Slipper gjennom et digitalt signal så lenge klokkeinngangen kk er (transparent) 2) I det øyeblikk klokkeinngangen går fra til låser utgangen seg på sin nåværende verdi. Forandringer på inngangen vil ikke påvirke utgangsverdien g så lenge klokkesignalet er D Latch Clk = : kretsen slipper gjennom signalet Clk = : kretsen holder (låser) utgangssignalet D Clk D Clk Logisk verdi på D i det øyeblikk Clk går i fra til bestemmer verdien som holdes på 3 32

Flip-Flop er p D Flip-Flop p 33 Flip-Flop er p kommer i to varianter: Positiv flanketrigget Negativ flanketrigget På en positiv flanketrigget Flip-Flop kan utgangen g kun skifte verdi i det øyeblikk klokkesignalet går fra til. På en negativ flanketrigget ti t Flip-Flop kan D utgangen kun skifte verdi i det øyeblikk klokkesignalet går fra til. Hakk, indikerer flanketrigget D Clk Clk 34 En D latch er transparent for Clk= D Clk D Clk En positiv flanketrigget D flip-flopflop sampler verdien på D i det øyeblikk Clk går fra til (positiv flanke). Denne verdien holdes fast på utgangen helt til neste positive flanke D Clk D Clk JK Flip-Flop F p JK Flip-Flop F p Kretsoppbygging g Grafisk symbol En JK flip-flop har følgende egenskaper J=, K=: Utgang låst J=, K=: Resetter utgang til J=, K=: Setter utgang til J=, K=: Inverterer utgang Utgangen kan kun forandre verdi på stigende klokkeflankekk k En JK flip-flop f p er den mest generelle flip-floppen vi har J K låst 35 36

T Flip-Flop F p T Flip-Flop F p Kretsoppbygging Grafisk symbol En T flip-flop har følgende egenskaper T=, Utgang låst T=, Inverterer utgang Utgangen kan kun forandre verdi på stigende klokkeflanke Det er lett å lage tellere av T flip-flop er T låst 37 38 Register N bits register - parallellkobling av N stk. D flip-flopper flopper Shift register Shiftregister Seriell inngangsdata klokkes gjennom registeret ett trinn per klokkeperiode Data I -I 3 slippes gjennom til utgang A -A 3 på stigende klokkeflanke Anvendelse: Kontroll av dataflyt For animasjoner se www.play-hookey.com 39 4

Rippeltellere Shift register T flip-flopper Utgang toggler på negativ flanke A 3 A 2 A A Count clk Rippeltellere Shift register D flip-flopper Fører invertert utgang tilbake på negativ klokke A 3 A 2 A A Count www.play-hookey.com Count enable www.play-hookey.com 4 42 Rippeltellere Synkronteller Count enable Signalet rippler/propagerer gjennom trinnene clk Utganger skifter verdi samtidig / synkront Problem: Portforsinkelse gir temporært gale utgangsverdier A 3 A 2 A A 3 A 2 A JK uforandret A 43 Count Count enable 44 A Count Count www.play-hookey.com

Komparator -eksempel Dekoder Dekoder tar inn et binært ord, gir ut alle mintermer Eksempel: 3bit inn / 8bit ut 45 46 Dekoder - sannhetstabell Enkoder Eksempel: 3bit inn Innganger Utganger D xyz D D 2 D 3 D 4 D 5 D 6 D 7 Enkoder motsatt av dekoder Eksempel: 8x3 enkoder Innganger D D D 2 D 3 D 4 D 5 D 6 D 7 Utganger xyz x = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 Antar at det ikke eksisterer andre inngangskombinasjoner 47 48

Enkoder Eksempel D D 2 D 4 D 6 Multiplekser Multiplekser (MUX) velger hvilke innganger som slippes ut Hver inngang kan bestå av ett eller flere bit x = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 z Y A B C N UT D D 3 D 5 D 7 X Select 49 5 MUX Demultiplekser Demultiplekser motsatt av multiplekser INN A B C Eksempel: 4- MUX N Select 5 52

Minne - generelt Minne teoretisk cellestruktur Generelt minne Hvert bit lagres i egen minne-celle Data inn n-bit RAM celle laget av standardkomponenter Separat datainngang/datautgang 53 NB: Adresse Minne kan også brukes for å generere Boolske funksjonsutrykk, se tidligere eksamensoppgaver m-bit 2 m x n-bit minne n-bit Data ut Read / Write Enable Data inn/data ut deler ofte samme buss i praksis 54 RAM teoretisk system SRAM Systemeksempel: 4x4bit RAM SRAM (Static-Random-Access-Memory) ti + Raskt, <ns CPU cacheminne + Trenger ikke refresh, latch-basert - Høyt strømforbruk - Tar stor plass, 4 eller 6 transistorer / celle - Flyktig (volatile), data forsvinner når strømforsyningen slås av RAM-celle 4-inputs OR 55 56

DRAM DRAM -Dynamic Random Access Memory + Kompakt/billig struktur, transistor / celle - Trenger oppfriskning (refresh) hver 2-3ms - Flyktig (volatile), data forsvinner når strømforsyningen slås av ROM Read Only Memory ROM + Ikke-flyktig (non-volatile), data vedvarer når strømforsyningen slås av + Rask operasjon <ns + Lavt strømforbruk + Kan lages meget kompakt, kt hver celle består kun av en transistor eller diode - Må programmeres på fabrikken, aktuell for store produksjonskvanta 57 58 EPROM EPROM, Erasable Programmable Read Only Memory + Ikke-flyktig (non-volatile), data vedvarer når strømforsyningen slås av - Data kan legges inn av forbruker, data kan slettes ved bruk av ultrafiolett lys (eget lokk i pakken). Data må slettes (erase) før ny data kan legges inn EEPROM EEPROM, Elektrical Erasable Programmable Read Only Memory + Ikke-flyktig (non-volatile), data vedvarer når strømforsyningen s n slås av - Data kan legges inn av forbruker, data kan slettes uten bruk av ultrafiolett lys. Data må slettes (erase) før ny data kan legges inn 59 6

Flash CPLD/FPGA design Flash - en billig og rask variant av EEPROM. Meget aktuell hukommelse for mange anvendelser + Ikke-flyktig (non-volatile), data vedvarer når strømforsyningen slås av + Kan lages meget kompakt, hver celle består av kun en transistor Skjematisk design Simulering VHDL design PC Verifikasjon, logisk syntese og implementasjon 6 62 Fysisk programmering CPLD/FPGA krets FPGA-oppbygning Generell FPGA-logikkenhet En FPGA-brikke inneholder et gitt antall rekonfigurerbare logikkenheter Hver logikkenhet inneholder typisk en oppslagstabell ll (LUT) og en flip-flop logikkenhetene kobles sammen slik softvaren finner hensiktmessig for å implementere designet vårt LUT-en kan brukes til å implementere en hvilken som helst 4-variabels boolsk funksjon / kombinatorisk krets med 4 innganger og utgang (en slags ROM som kan omprogrammeres) 63 64

Tilstandsmaskin En tilstandsmaskin er et sekvensielt system som gjennomløper et sett med tilstander styrt av verdiene på inngangssignalene Tilstanden systemet befinner seg i, pluss evt. inngangsverdier g bestemmer utgangsverdiene g Tilstandsmaskins-konseptet gir en enkel og oversiktlig måte å designe avanserte system på Generell tilstandsmaskin basert på D flip-flops N-stk flip-flops gir 2 N forskjellige tilstander Utgangssignalene er en funksjon av nåværende tilstand pluss evt. inngangsverdier Tilstandsmaskin 65 66 Eksempel nr. Tilstandsmaskin der utgang y er en funksjon av tilstanden gitt av verdiene til A og B, samt inngangen x 67 x clk D A D B A A B B y 68 Tilstandstabell Tilstandstabell = sannhetstabell for tilstandsmaskin Eksempel nr.: En inngang, en utgang og 2 stk. D flipflops Utgang for Nåværende Neste nåværende tilstand Inngang tilstand tilstand A B x A B y

69 Tilstandsdiagram Tilstandsdiagram = grafisk illustrasjon av egenskapene til en tilstandsmaskin Eksempel nr.: Inngangsverdi x som medfører ny tilstand, samt utgangsverdi y for opprinnelig tilstand med inngangsverdi g x x / y Tilstand A B / / / / / / / / 7 Eksempel nr.3 design av sekvensdetektor k Ønsker å lage en krets som finner ut om det har forekommet tre eller flere ere etter hverandre i en klokket bit-sekvens x Klokket bit-sekvens: Binært signal som kun kan skifte verdi synkront med et klokkesignal Klokkesignal l Utgang x Eksempel nr.3 design av sekvensdetektor k Tilstandsdiagram Velger å ha 4 tilstander..lar hver tilstand symbolisere antall ere som ligger etter hverandre i bit-sekvensen. Inngang: bit-sekvens x Utgang: gitt av tilstanden, for tilstand -2, for tilstand 3 / / / / / / / / Bruker D flip-flops Eksempel nr.3 D A og D B settes til de Nåværende verdiene man ønsker at tilstand Inngang A og B skal ha i A B x neste tilstand D A = A B x + A B x + A B x D B = A B x + A B x + A B x y = A B Neste tilstand Utgang for nåværende tilstand A B y 7 72

Eksempel nr.3 Forenkler uttrykkene med Karnaugh-diagram D A = A x + B x D B = A x + B x y = A B x clk D A D B A B B y Generell designprosedyre basert på D flip-flops ) Definer tilstandene, inngangene og utgangene 2) Velg tilstandskoder, og tegn tilstandsdiagram 3) Tegn tilstandstabell 4) Reduser antall tilstander hvis nødvendig 5) Bytt tilstandskoder hvis nødvendig for å forenkle 6) Finn de kombinatoriske funksjonene 7) Sjekk at ubrukte tilstander leder til ønskede tilstander 8) Tegn opp kretsen 73 74 VHDL VHDL (Very High Speed Integrated Circuits) Hardware Description Language VHDL er en tekstlig beskrivelse av et digitalt design VHDL versus skjematisk design + Mulighet for å beskrive kretser på et høyere abstraksjonsnivå + Raskere design - Kan miste detaljkontroll på portnivå Generell VHDL struktur - delkretser En VHDL beskrivelse består av en eller flere delkretser Hver delkrets har: ) Entity: Et grensesnitt som definerer delkretsens innganger og utganger (pinout) 2) Architecture: En beskrivelse av delkretsens interne virkemåte Entity Architecture De elkrets 75 76

Eksempel II Kondisjonell beskrivelse Kondisjonell beskrivelse when/else: Interne signaler kan defineres lokalt l inne i architecture blokken Syntaks: Utgang <= verdi when test else verdi2 when test2t2 else verdi3; 77 Deklarasjon av internt signal NB: Selv om programlinjene er sekvensielle definerer de et parallelt (konkurrent) system 78 NB: alle tilstander bør defineres. Hvis ikke - har man mindre kontroll på det syntetiserte resultatet* Hvis flere tester slår til vil første tilordning være gjeldende (prioritet) *Noen synteseverktøy implementerer latcher (kan holde utgangsverdien), andre ikke Kondisjonell beskrivelse Process Eksempel 4-input MUX: Mekanismen process gir mulighet for sekvensiell beskrivelse En process beskriver en konkurrent enhet med mulighet for intern sekvensiell oppførsel En process kan spesifiseres med en sensitivitets-liste. Systemet processen beskriver (kan man tenke seg) starter opp hver gang en av variablene i listen forandrer verdi Et større system kan inneholde flere parallelle processer - Analogi: event driven programmering 79 8

Process D latch eksempel Process D flip-flop eksempel 8 Beskrivelse av en D latch Sensitivitets-liste Processen starter opp hver gang clk eller D forandrer verdi (event) Når clk går til overføres verdien på D til Når D forandres og clk= overføres verdien på D til (transparent t latch). 82 Beskrivelse av en D flip-flop Processen starter opp hver gang clk forandrer verdi clk event slår til når clk forandrer verdi clk event kan synes unødvendig, men er viktig for å garantere syntese av flip-flop og ikke latch Merk at på positiv clk-flanke overføres verdien på D til. Ellers skjer det ikke noe 83 Process MUX eksempel Beskrivelse av en 2- MUX Når Sel går til overføres verdien på A til. Når Sel går til overføres verdien på B til. Når verdien på A eller B forandres overføres selektert t verdi til Generelt: Når alle input- signaler er spesifisert i sensitivitets-listen og alle utganger alltid gis en verdi, syntetiseres en kombinatorisk krets 84 Generelt om processer En process kan beskrive både kombinatoriske kretser (med hukommelse) og sekvensielle kretser Vil man beskrive en kombinatorisk krets: Ta med alle inngangssignaler i sensitivitets-listen Pass på at utgangssignalene alltid blir tilordnet en verdi Vil man beskrive en sekvensiell krets: Latcher bør generelt unngås: bruk flip-flop s ved å spesifisere flanketrigging ( event)) Forsøk å gjøre den sekvensielle delen så liten og oversiktlig som mulig ved å trekke kombinatoriske element ut av processen

Mer om kondisjonelle tester For kondisjonell testing innen processer brukes ofte case Syntaks: case : signalet is when verdi => uttrykk; when verdi2 d2=> uttrykk2; when others => uttrykk3; end case; Husk å spesifisere alle mulige verdier til signalet, evt. med others Pass på at verdi, verdi2 er forskjellige Tidspunkt for signaltilordning i processer Viktig å vite: Inne i en process vil alle signaltilordninger (<=) utføres først i det øyeblikket processen terminerer ( end process linjen utføres) x clk y D D C clk C Eksempel: signal z vil ikke nødvendigvis være lik signal x z 85 86