04.09.2013 Views

ABSOLUTTVERDIKRETS FPGA

ABSOLUTTVERDIKRETS FPGA

ABSOLUTTVERDIKRETS FPGA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8 Vedlegg: Rapport veiledning TFE4105: Lab høst 2009<br />

Fag TFE4105 Digitalteknikk og datamaskiner<br />

RAPPORT<br />

102<br />

LAB 2<br />

<strong>ABSOLUTTVERDIKRETS</strong> <strong>FPGA</strong><br />

av<br />

Hans Hansen<br />

Ole Olsen<br />

Lab gruppe 123<br />

Lab utført: 24.9.2009<br />

Rapport levert: 10.11.2009<br />

FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG<br />

ELEKTROTEKNIKK<br />

Eksempel


Forord TFE4105: Lab høst 2009<br />

Forord<br />

TFE 4105 Digitalteknikk og datamaskiner inneholder en omfattende lab basert på et lab-kort<br />

fra Altera, en av verdens største produsenter av såkalte programmerbare logiske kretser. Labkortet<br />

er bygget rundt en brikke med programmerbar logikk (såkalt Field Programmable Gate<br />

Array, forkortet til <strong>FPGA</strong>). Inne i denne <strong>FPGA</strong>en er det dessuten implementert en enkel<br />

mikroprosessor (μP). Vi kan lett realisere ulike logiske funksjoner i maskinvare ved å legge<br />

disse inn i <strong>FPGA</strong>-kretsen. Dette skjer ved at vi laster ned en kodefil til kretsen som sørger for<br />

å konfigurere den i forhold til ønsket funksjon (dette kalles gjerne å programmere kretsen,<br />

men har ingen ting med programvare å gjøre). Slik kan systemet få ønsket logisk oppførsel<br />

uten at vi trenger å bruke loddebolten. I mikrokontrolleren kan vi kjøre våre C- eller<br />

assembler-programmer som også er med på å definere systemets oppførsel. Vi kan dermed<br />

demonstrere en rekke viktige prinsipper både fra digitalteknikk- og datamaskin-delen av<br />

faget. I tillegg til <strong>FPGA</strong> med μP, er lab-kortet (blant annet) utstyrt med brytere, lysdioder,<br />

LCD-display og en lyd-krets (audio codec), samt tilkobling til tastatur.<br />

Vi ønsker at du gjennom denne labben skal få en grunnleggende innsikt i hvordan moderne<br />

digitale systemer og små datamaskiner kan bygges opp. Gjennom LAB1 til LAB5 vil du<br />

jobbe med problemstillinger knyttet til aktuelt forelest stoff. Samtidig vil du og din labpartner,<br />

ved å løse konkrete problemer, også realisere ulike deler av et "produkt": et system<br />

for ”sanntids” lyd-bearbeiding. Vi håper at lab-oppgavene vil hjelpe deg å forstå hvordan<br />

ulike begreper og teknikker i faget er knyttet til hverandre i et virkelig system, og dermed<br />

bidra til å gi en helhetsforståelse. Videre er det et mål at lab-arbeidet skal gi deg et innblikk i<br />

arbeidsmetoder og verktøy som vil bli sentrale i videre studier og arbeid.<br />

Hovedmålsettingen har vært å inkludere viktige elementer fra faget på en pedagogisk og<br />

lærings-stimulerende måte. Lyd-bearbeiding ble valgt som tema da både generering av input<br />

og tilbakemelding fra systemet skulle være enkelt å få til. Videre skulle det gi et system med<br />

realistisk kompleksitet.<br />

Husk at læringen i faget står du selv ansvarlig for. Det vi tilbyr er kun undervisning og<br />

veiledning, og et forhåpentligvis godt tilrettelagt opplegg. Som student må du være aktiv,<br />

kritisk og selvstendig, samtidig som du gjennom lab- og øvings-arbeid i grupper kan<br />

bearbeide og drøfte stoffet med medstudenter og dermed fremme læring og faglig modning.<br />

Vi vil kreve at du er godt forberedt når du møter fram på labben. Dette er nødvendig fordi vi<br />

bare har begrenset plass og tid på labben.<br />

Fram til og med 2007 ble det i dette faget benyttet et egenutviklet kretskort. Dette er nå byttet<br />

ut, men oppgavene som kjøres i dag bygger i stor grad på det som ble gjort tidligere. Vi er<br />

derfor en stor takk skyldig et entusiastisk team (se neste side) av faglærere, ”vit.asser”,<br />

stipendiater og studenter, som har vært involvert i planleggingen, ferdigstillingen og<br />

videreutviklingen av lab-kort og lab-oppgaver opp gjennom årene.<br />

I


Forord TFE4105: Lab høst 2009<br />

Det opprinnelige ”utviklingsteamet” var, i tillegg til faglærerne Tormod Njølstad og Lasse<br />

Natvig, ledet av nøkkelpersonene Gunnar Tufte og Bianca Tjore. Videre bidro Kjell Magne<br />

Sæterbø, Eivind Vea, Åge Stien, Mufrid Krilic, Per Blix, Karstein Kristiansen, Knut Førland,<br />

Steinar Line, Ingebrigt Hole, Robin Hoel og Morten Hartmann vesentlig på hver sin måte til<br />

ferdigstillelsen og til gjennomføringen av teoriøvinger og lab-opplegg i 1998, 1999 og 2000<br />

Somrene 2001 – 2003 oppdaterte henholdsvis Are B. Willumsen, Øystein Andres Krogsæter<br />

og Øystein Ellingsson ulike deler av oppgavene og labheftet. Våren 2004 utviklet Øystein<br />

Ellingsson en ny lab 1 for å gi en lettere innføring i digital design. Denne ble forbedret av<br />

Hallvard Kringstad våren 2007. Sommeren 2008 har Per Gunnar Kjeldsberg og Ingulf<br />

Helland jobbet med å flytte lab-oppgavene over på det nye kortet fra Altera og å tilpasse<br />

oppgavene og labheftet til dette. Sommeren 2009 er det gjort forbedringer basert på<br />

erfaringene fra første kjøring av den nye labben.<br />

Vi vil gjerne oppfordre dere som nå skal følge dette kurset til å gi konstruktive tilbakemeldinger<br />

om mulige forbedringer til fagets øvingsansvarlige.<br />

På vegne av teamet ønsker vi dere herved: LYKKE TIL!<br />

Professor Per Gunnar Kjeldsberg Førsteamanuensis Morten Hartmann<br />

Koordinator for TFE4105. Faglærer i<br />

digitalteknikk-delen av faget.<br />

Faglærer i datamaskin-delen av faget.<br />

II


Forord TFE4105: Lab høst 2009<br />

Ordliste<br />

Norsk Engelsk Betydning<br />

Programmerbar Programmable logic En digital krets som kan konfigureres (programmereres)<br />

logikk-krets Circuit<br />

Altera Altera Et firma i San Jose som lager programmerbare logikk-kretser<br />

Brukes også om selve kretsene<br />

<strong>FPGA</strong> <strong>FPGA</strong> Forkortelse for Field Programmable Gate Array<br />

Dette er en type programmerbar logikk-krets<br />

LE LE Forkortelse for Logic Element.<br />

Dette er ”byggeklossene” inni Altera-kretsen (den har 33 216<br />

LE’er)<br />

Ruting Routing Å lage en elektrisk forbindelse fra et sted til et annet<br />

Nios II Nios II Mikrokontrolleren som er implementer inne i <strong>FPGA</strong>’en.<br />

Punktprøving Sampling Omforming av et kontinuerlig analogt signal (f.eks. et<br />

lydsignal) til et digitalt signal<br />

Sample Sample Øyeblikksverdi av lydsignalet. Her digitale tallverdier.<br />

Adressemapping Address Mapping Tilordning av adresser til de enheter som deler en felles buss<br />

IC IC Forkortelse for Integrated Circuit (en chip)<br />

Det vil si en mikrokrets som er laget i et stykke silisium<br />

RAM RAM Forkortelse for Random Access Memory<br />

Dette er et lager som:<br />

• Kan skrives til<br />

• Kan leses fra<br />

• Mister innholdet ved strømbrudd<br />

Codec Codec Forkortelse for Coder Decoder. Den oversetter signalet fra<br />

mikrofonen til et digitalt signal, og systemets digitale signal<br />

til et analogt signal som kan settes ut på høyttalerne,<br />

Buss Bus En samling elektriske ledere som utgjør en gruppe signaler<br />

Nedlasting Downloading Overføring av et design fra PC’en til Altera-kretsen<br />

Overføring av et mikrokontrollerprogram fra PC’en til uC.<br />

DSP DSP Forkortelse for Digital Signal Processing<br />

Det vil si digital signalbehandling<br />

Mux Mux Forkortelse for Multiplexer<br />

Det vil si en velger, som velger ut ett av flere<br />

inngangssignaler<br />

Nettliste Netlist Liste over fysiske forbindelser mellom komponentene i et<br />

design. Er vanligvis en ren tekstfil<br />

Syntese Synthesis Den prosessen som går ut på å omforme en (formell)<br />

spesifikasjon til en nettliste<br />

LUT LUT Look-Up-Table: Oppslagstabell<br />

III


Forord TFE4105: Lab høst 2009<br />

CODEC<br />

Det er ikke nødvendig å vite alt hva CODECen gjør. Men dette kan være greit å lese igjennom<br />

for å få en oversikt.<br />

CODEC’ens inn-del utfører disse operasjonene:<br />

• Forsterking av (det svake) inngangssignalet fra lydinngangen.<br />

• Digitalisering (sampling) av det analoge signalet 44100 ganger i sekundet ved hjelp av<br />

en analog-til-digital omformer (AD).<br />

• Kvantisering av det samplede signalet til et av 65536 amplitudenivåer.<br />

• Koding av de 65536 amplitudenivåene. Dette gjøres ved å oversette dem til tilsvarende<br />

16 bits toerkomplements binære tall (som kan anta alle heltallsverdier fra -32768 til<br />

32767).<br />

CODEC’ens ut-del utfører disse operasjonene:<br />

• Omforming av signalet fra digitalt til hakkete analogt (DA-konvertering), som har<br />

65536 mulige amplitudenivåer.<br />

• Lavpassfiltrering (“glatting”) av det hakkete analoge signalet.<br />

• Forsterking av det glattede analoge signalet slik at det kan drive en høyttaler eller<br />

hodetelefon (det vil si at Codec’en har en forholdsvis lavohmig utgang).<br />

IV


Introduksjon TFE4105: Lab høst 2009<br />

Introduksjon<br />

Oversikt<br />

På labben bruker vi kretskortet DE2 fra Altera. Dette er et utviklingskort med en rekke ulike<br />

funksjoner. Det benyttes i industrien til å designe og teste ut nye systemer inntil man har fått<br />

laget mer spesialiserte kretskort. Slike kort brukes også mye i utdannings- og<br />

undervisningssammenheng. Den viktigste komponenten på kretskortet er en Cyclone II <strong>FPGA</strong><br />

med navn EP2C35. Det er inne i denne kretsen at vi kan legge våre digitale design. Rundt<br />

denne kretsen finnes det i tillegg en rekke andre moduler og komponenter som gjør at vi med<br />

dette kortet kan bygge opp et komplett system. Av dette skal vi i denne labben blant annet<br />

bruke<br />

• lysdioder<br />

• trykknapper<br />

• brytere<br />

• sjusegmentdisplay<br />

• LCD-skjerm<br />

• mikrofon- og lydinngang<br />

• lydutgang<br />

Inne i <strong>FPGA</strong>’en vil det dessuten i denne labben være en Nios II mikroprosessor. Dette er en<br />

såkalt myk mikroprosessor. Det vil si at den ikke eksisterer som noen egen krets, men at den<br />

legges inn som en del av <strong>FPGA</strong>’en hver gang man laster ned et nytt design.<br />

Når man skal lage et digitalt design som skal kjøres på utviklingskortet, for eksempel vårt<br />

design for lydbearbeiding, så trenger vi en PC. PC’en brukes til å:<br />

• Konstruere digitale kretser.<br />

• Simulere kretsene.<br />

• Laste ned kretsenes funksjonalitet i <strong>FPGA</strong>’en.<br />

• Skrive mikroprosessorprogrammer.<br />

• Simulere mikroprosessorprogrammene.<br />

• Laste ned mikroprosessorprogrammene til mikroprosessorens RAM.<br />

Øverst på innsiden av omslaget vises den logiske oppbyningen av vårt lydbehandlingsdesign.<br />

PC’en er ikke med på skissen, da den ikke har noen funksjon i systemets logiske struktur.<br />

Utenfor <strong>FPGA</strong>-rammen er utviklingskortet. Kun de enheter av utviklingskortet som skal brukes<br />

i dette faget er tegnet inn. Inne i <strong>FPGA</strong>-rammen er det en egen ramme rundt det<br />

studentdesignet dere skal jobbe med. I tillegg er det tegnet inn moduler som angir grensesnittet<br />

mellom utviklingskortet og studentdesignet. Dette grensesnittet gjør det meget enkelt å teste ut<br />

modulene som skal designes. Design som lages kan testes vha. grensesnittet, både i testmodus<br />

og i lydmodus.<br />

1


Introduksjon TFE4105: Lab høst 2009<br />

Signalbehandlingssystemet er “rammeverket” for lab-øvingene. Igjennom labben skal det<br />

komplette signalbehandlingssystemet bygges opp:<br />

Tabell 1-1: Oversikt over signalbehandlingssystem<br />

Modul Betydning Fysisk plassering LAB<br />

ABS Tar absoluttverdien av signalet (likeretter) Inne i <strong>FPGA</strong>’en 1 og 2<br />

FACT Finner ønsket forsterkning av inngangssignal Inne i <strong>FPGA</strong>’en 3<br />

MUL Multipliserer to signaler med hverandre Inne i <strong>FPGA</strong>’en 4<br />

Figur 1: Signalbehandlingssystem<br />

Signalbehandlingssystemet består av modulene ABS, FACT, og MUL (se figur 1Error!<br />

Reference source not found.). De forskjellige modulene har i tillegg til inn- og utganger for<br />

data, forskjellige styreinnganger. Disse blir forklart nærmere i kapitlene for de respektive<br />

labbene. Under følger en prinsipiell forklaring av virkemåten til signalbehandlingssystemet.<br />

Signalbehandlingssystemets virkemåte<br />

Systemet som skal designes er en forenklet lydkompressor. En lydkompressor jevner ut<br />

forskjeller i lydstyrke på inngangssignalet, slik at utgangesignalet har mest mulig jevnt volum.<br />

Svake inngangssignaler forsterkes, mens sterke inngangssignaler dempes. Dette skjer ved først<br />

å detektere styrken på inngangssignalet (skjer i ABS og FACT). Dette benyttes så til å finne<br />

hvor mye signalet skal forsterkes eller dempes (skjer i FACT). Til slutt styrer modulen MULT<br />

volumet på utgangssignalet ved å multiplisere inngangssignalet med den ønskede<br />

forsterkningen/dempingen.<br />

En lydkompressor benyttes i mange sammenhenger (på godt og vondt). Når reklamene på TV<br />

høres ut som om de har dobbelt så høyt volum som programmene så skyldes det at lyden på<br />

disse er kjørt gjennom en lydkompressor. Alt blir dermed en jevn gjennomtrengende høy lyd.<br />

Underveis i programmene er det derimot viktig å kunne la volumet variere, så her benyttes ikke<br />

lydkompressoren. En mer nyttig anvendelse kan være tilpasning av lyden i mikrofonen til<br />

forelesere på NTNU. Denne kan typisk være høy når foreleser har munnen vendt mot<br />

mikrofonen, mens den er for lav når hodet er vendt den andre veien. Med en lydkompressor vil<br />

lyden ut til studentene bli passe høy hele tiden. Ytterligere detaljer om lydkompressorer finner<br />

dere på følgende Wikipedia-artikkel:<br />

http://en.wikipedia.org/wiki/Audio_compressor (30. juni 2009)<br />

Vår lydkompressor er som nevnt en del forenklet i forhold til kommersielle produkter. En del<br />

av løsningene som er valgt er kanskje heller ikke de enkleste og beste for et virkelig system.<br />

Dette er gjort for å en pedagogisk fornuftig oppgave med passe kompleksitet. Vi tror likevel at<br />

2


Introduksjon TFE4105: Lab høst 2009<br />

systemet på en forhåpentligvis god måte vil demonstrere hvordan et slikt system kan bygges<br />

opp.<br />

Hva er det så som skjer inne i de tre modulene ABS, FACT og MUL? La oss se på et eksempel<br />

på et lydsignal slik det er vist i Figur 2. Her ser vi at volumet varierer kraftig (bestemmes av<br />

amplituden på signalet). Figur 2 gjengir egentlig en kort lydsekvens, mens en lydkompressor<br />

typisk fungerer over lengre sekvenser. Vi kan imidlertid illustrere forklaringen nedenfor godt<br />

med eksemplet i Figur 2.<br />

Figur 2: Lydsignal på inngangen<br />

Lydsignalet i Figur 2 varierer rundt null. Dette er uheldig for vår løsning for deteksjon av<br />

signalstyrke, og det første vi vil gjøre er derfor å sørge for at signalet bare har positive verdier.<br />

Dette gjør vi ved å ta absoluttverdien av inngangssignalet i modulen ABS. Resultatet av denne<br />

operasjonen sees på Figur 3.<br />

Figur 3: Absoluttverdi av lydsignal<br />

Inne i modulen FACT detekteres signalstyrken på de ulike delene av signalet og det beregnes<br />

hvilken forstekning/dempning som skal til for å få et jevnt signal ut. Detaljene rundt dette vil<br />

bli presentert i oppgaveteksten for lab 3. I modulen MULT blir så det opprinnelige<br />

inngangssignalet multiplisert med den verdien som ble funnet i FACT. Ideelt sett skulle<br />

utgangsignalet fra MULT se ut som i Figur 4. I vårt forenklede system blir det nok ikke riktig<br />

så pent, men det kommer vi tilbake til i oppgaveteksten for lab 4.<br />

Figur 4: (Ideelt) lydsignal på utgangen<br />

3


Introduksjon TFE4105: Lab høst 2009<br />

Modulene CODEC IN, CODEC OUT og 7-SEG med sine INTERFACE, samt CLK GEN &<br />

DISTR (se omslaget) skal dere ikke jobbe direkte med i labbene. Dere bare henter signaler fra<br />

og/eller sender signaler til dem. CODEC IN omformer et analogt lydsignal (enten fra LINE IN<br />

eller MIC) til digitalt signal, mens CODEC OUT omformer et digitalt signal til analogt<br />

høyttalersignal (LINE OUT). Internt i designet benyttes mono digitalt signal, mens LINE IN og<br />

LINE OUT er stereosignal. Omformingen mellom mono og stereo skjer i CODEC<br />

INTERFACE. CODEC INTERFACE genererer også nødvendige konfigureringssignal for<br />

CODEC (for eksempel å velge mellom LINE IN og MIC som analog lydkilde). CLK GEN &<br />

DISTR genererer og distribuerer ulike klokkesignaler i systemet. Dette gjelder blant annet en<br />

11,29MHz masterklokke og et 44,1KHz klokkesignal som brukes av CODEC.<br />

Designverktøy<br />

For å håndtere dagens store og komplekse designoppgaver er man nødt til å ta i bruk<br />

designverktøy. Verktøyet som benyttes i denne labben er Quartus II, et PC-basert<br />

designverktøy fra Altera, spesielt laget med tanke på Alteras egen familie med <strong>FPGA</strong>-brikker<br />

(slik som Cyclone II EP2C35 som finnes på utviklingskortet).<br />

Designverktøy i dag er mer enn avanserte tegneprogrammer. De kan blant annet simulere<br />

kretsens virkemåte, uten at vi trenger å koble den opp fysisk. Verktøyene kan også foreta<br />

syntese. Det vil si at vi skriver en formalisert spesifikasjon, og lar verktøyet “oversette” dette<br />

til en nettliste (vi må fortelle verktøyet hvilke komponenter det får lov til å bruke). En nettliste<br />

er en tekstfil som innholder komponentene kretsen består av samt sammenkoblingen mellom<br />

disse.<br />

Designverktøyets ”input” er ikke bare skjemategninger. Man kan også bruke maskinvarebeskrivende<br />

språk (Hardware Description Language - HDL). Eksempler på HDL er VHDL og<br />

Verilog. Quartus II håndterer begge disse språkene. En HDL-utskrift “ser ut som” et vanlig<br />

dataprogram, men det beskriver maskinvare. Skal man mestre HDL må man “tenke<br />

maskinvare”, og være klar over at det er forskjellig fra programmering. VHDL inngår i lab 4.<br />

Designmetodikk<br />

Grunnregelene i god designmetodikk er:<br />

• Skill spesifikasjon og implementering<br />

• Del opp i moduler<br />

Det er altså viktig å skille spesifikasjonsarbeidet fra implementeringen. Selv om det kan være<br />

fristende å starte med å implementere og dermed komme i gang, er det vanskelig å få oversikt<br />

og implementere en korrekt løsning uten først å ha gjennomført spesifikasjonen.<br />

Videre er det helt nødvendig å tenke hierarkisk og forstå oppdelingen i moduler for å klare å ha<br />

oversikt over større digitale systemer.<br />

Lab-arbeidsmåte<br />

Selvstendighet og egen hjelp<br />

Labben i dette faget er krevende, og det er begrenset mengde med stud.ass.’er tilgjengelig.<br />

Labheftet inneholder heller ikke alle detaljer, og noen skjermbilder kan avvike noe fra det hver<br />

gruppe får på sin egen skjerm.<br />

4


Introduksjon TFE4105: Lab høst 2009<br />

Det er derfor absolutt nødvendig å være godt forberedt før oppmøte på labben. Likeledes<br />

gjelder det å selv være aktiv til å løse problemer som måtte dukke opp, både gjennom å benytte<br />

hjelpefunksjonene i Quartus II, og ved å tilstrebe en forståelse av det som gjøres i labben, i<br />

motsetning til slavisk å følge opplegget uten å tenke så mye på hva man gjør. Å ta seg god tid<br />

til forståelse i begynnelsen betaler seg raskt tilbake senere i semesteret.<br />

Skulle det er være vanskelig å få fatt i en stud. ass., kan det være andre studenter som er villige<br />

til å hjelpe dersom man står fast.<br />

Forarbeid<br />

Før man møter på labben må man ha gjennomført et forarbeid. Dette varierer fra lab til lab,<br />

men går i store trekk ut på å studere teori, sette seg inn i virkemåten til en eller flere kretser,<br />

tegne en eller flere kretser, og foreta utregninger. Dette gjøres både for å øve god<br />

designmetodikk, og for å kunne gjennomføre labben på en ryddig og god måte. Om man møter<br />

uforberedt på labben, vil man kanskje få modulen til å virke til slutt, etter mye prøving og<br />

feiling, og etter mange henvendelser til stud ass (men ikke innenfor den tilmålte tid). Alle<br />

utregninger og skjemategninger skal føres inn i en labprotokoll.<br />

Før man møter på labben bør man ha kjørt en “skrivebordtest” av de kretser man har tegnet.<br />

Det vil si å kjøre en “manuell simulering”. Man går kritisk gjennom designet og prøver å<br />

overbevise seg selv om at alt er riktig, slik at sannsynligheten for overraskelser på et senere<br />

tidspunkt reduseres til et minimum.<br />

På labben skal man implementere og teste designet. Det vil si å tegne kretsen inn i en<br />

skjemaeditor, simulere, laste ned i <strong>FPGA</strong>’en, og teste. Man skal altså ikke utføre design på<br />

labben. Når man tester, må man huske at det er spesifikasjonen som er fasiten. Derfor:<br />

• Bring modulens oppførsel i samsvar med de spesifikasjonene dere har bestemt.<br />

• Ikke bring spesifikasjonen i samsvar med hvordan dere ser at modulen oppfører<br />

seg.<br />

it’s learning<br />

Tilleggsinformasjon om labbene vil være tilgjengelig på kursets side på it’s learning. Det er<br />

link til it’s learning fra https://innsida.ntnu.no<br />

Arbeidsgang på labben<br />

Begynn alltid med:<br />

• Sett deg ved en PC, og les labinfoen på it’s learning.<br />

• Ta frem forarbeidet, og gjennomfør labben ihht. labheftet.<br />

• Bruk labprotokollen din aktivt.<br />

Lab-rapportering<br />

Hver gruppe skal skrive rapport på en av labbene. Hvilken lab som skal rapporteres oppgis<br />

senere. Hvordan rapporten skal skrives er gitt i vedlegget om rapportskriving.<br />

Man må ta vare på dokumentasjonen underveis. En enkel måte å gjøre det på, er:<br />

• Ta vare på alt forarbeidet til hver lab, ved å føre dette i labprotokoll.<br />

• Ta vare på de aktuelle skjermbildene på hver LAB (skjemategning,<br />

simuleringsresultater, osv), og lim (Paste) dette inn i Word eller Paint.<br />

• Bruk kopier og lim (Copy and Paste) funksjonene for å ta aktuell tekst inn i Word<br />

(HDL-kode osv).<br />

5


Introduksjon TFE4105: Lab høst 2009<br />

• Ta vare på de elektroniske versjoner av dokumentene. Skriv dem ut og lim dem inn i<br />

labprotokollen når dere har en skriver tilgjengelig (finnes ikke på labben). Sett av plass<br />

i protokollen til å gjøre dette.<br />

Å ta et skjermbilde gjøres på følgende måte:<br />

• Det ønskede vindu må være aktivt.<br />

• Trykk ALT + Print Screen (Print Screen er en egen tast, Print Scrn på noen tastatur).<br />

• Gå inn i Word (eller et annet program) og trykk Paste.<br />

På denne måten blir man uavhengig av Quartus II når man skal skrive rapport.<br />

Pass spesielt på at det som presenteres for stud.ass. på labben blir tatt vare på, og satt inn i<br />

labprotokollen.<br />

I dette labheftet er en rekke oppgaver markert med . Løsningene på disse oppgavene skal<br />

også angis i labprotokollen.<br />

Merk: Dersom dere får mange filer, kan det være en fordel av samle dem i en zip-fil. Dette vil<br />

i mange tilfeller også redusere størrelsen på filene en del.<br />

Verktøyet som brukes på labben er tilgjengelig<br />

Designverktøyet som brukes på labben (Quartus II) kan dere bruke så lenge dere har adgang til<br />

labben (og den ikke er i bruk eller er reservert av andre). Mye av jobben på labben går ut på å<br />

arbeide med dette designverktøyet, spesielt simulatoren. Om dere ikke blir ferdig, eller om dere<br />

synes labben er meget interessant, kan dere dersom labben er åpen, bruke dette verktøyet. Merk<br />

at veiledning og tilgang på utviklingskortet kun skjer på de oppsatte lab-tider.<br />

Designverktøyet som ligger på lab-PCene er en lisensbasert fullversjon av programvaren. Det<br />

er imidlertid også mulig å laste ned en gratis web-versjon av programvaren som man kan ha på<br />

sin private PC. For det som skal gjøres på denne labben er web-versjonen tilstrekkelig. En<br />

lenke til web-versjonen finner dere på fagets side på it’s learning.<br />

Ta vare på filene etter hver LAB<br />

For å ta vare på ønskede filer etter et prosjekt, kan man gjøre et av følgende:<br />

• Bruke minnepinne (eventuelt etter at filene er zip'et, se lab 2 for et eksempel).<br />

• Bruke ftp.<br />

• Koble opp mot brukerområdet på stud:<br />

o Velg “Map Network Drive” fra hurtigmenyen til ”My Computer”.<br />

o Sett Path til: \\sambastud.stud.ntnu.no\brukernavn<br />

o Sett Connect As til: brukernavn<br />

o Velg Ok<br />

o Det kommer opp spørsmål om brukernavn/passord.<br />

o La brukernavn være, og skriv inn passord for stud.<br />

Merk: Ikke ha filene liggende på minnepinne eller nettverk mens dere gjør labbarbeidet. Da<br />

blir aksesseringen av filene for langsom.<br />

Filer man har lagret på PCens hardisk skal slettes når man er ferdig med labben og har tatt vare<br />

på det en trenger. PCene vil dessuten jevnlig bli ryddet, så man kan ikke regne med å finne<br />

igjen filene sine der neste gang man kommer på labben.<br />

6


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

1 Absoluttverdikrets – portkretser<br />

Innledning<br />

Formål<br />

Dette er en innføringslab. Den vil bestå av digitalteknikk, men i motsetning til de senere<br />

labbene, vil denne labben gå litt mer fysisk til verks. Det lages en absoluttverdikrets ved hjelp<br />

av kombinatoriske portkretser, som skal testes i praksis. Teorien i denne og neste digitallab vil<br />

være ganske like, siden det i begge labbene skal designes en absoluttverdikrets.<br />

Hensikt<br />

• Lære hvordan en absoluttverdikrets kan bygges opp<br />

• Danne en forståelse for digitalteknikk med fysiske portkretser<br />

Bakgrunn<br />

• Kapittel 2.5, 2.6 og 5.1 i Daniel Gajski ”Priniciples of digital design” (første del av<br />

læreboka).<br />

• Notat om negative tall. Se under Lab på it’s learning.<br />

Hva som skal gjøres<br />

Det skal lages en matematisk krets ved hjelp av kombinatoriske port-kretser. Den matematiske<br />

funksjonen regner absoluttverdien av et binært toerkomplement tall, og viser tallet på et 7segment<br />

display.<br />

Kretsbeskrivelse<br />

Teori<br />

Matematisk er det enkelt å ta absoluttverdien av et tall. Med vanlig tallnotasjon setter man bare<br />

fortegnet til tallet til pluss, uavhengig av hva det var fra før. En slik metode kan også benyttes<br />

dersom tallet er på fortegn-tallverdi form. For tall på toerkomplement form blir operasjonen<br />

mer komplisert. Vi vet at å bytte fortegn til et tall skrevet med toerkomplement kan gjøres med<br />

først invertere alle bitene i tallet og deretter legge til en. Hvis vi tar en krets som gjør dette har<br />

vi nesten en absoluttverdikrets for tall representert på toerkomplement form. Den vil gi rett<br />

svar hvis verdien på inngangen er negativ, men er den positiv vil resultatet på utgangen være<br />

en negativ verdi. For å løse dette må positive tall detekteres og slippes uforandret igjennom. Å<br />

avgjøre om et tall er positivt er en enkel operasjon. Som i fortegn-tallverdi form angir det mest<br />

signifikante bitet om tallet er positivt eller negativt. Dette bitet kalles fortegnsbit:<br />

• 0 -> tallet er positivt<br />

• 1 -> tallet er negativt<br />

Altså, er fortegnsbitet null må kretsen deaktiveres og slippe tallet uforandret igjennom. Kretsen<br />

må derfor kunne deaktiveres og aktiveres ved behov. Ved å legge til en aktiv høy styreinngang<br />

for dette ser vi at fortegnsbitet kan benyttes direkte til å styre toerkomplement kretsen. Ved å<br />

hardkoble styreinngangen til fortegnsbitet på inngangen vil resultatet bli en absoluttverdikrets.<br />

For å lage en absoluttverdikrets må vi altså designe en krets som beregner toerkomplement. Å<br />

ta toerkomplement er som beskrevet tidligere en todelt operasjon og designet kan derfor lett<br />

deles inn i to kretser, se Figur 1-1. KRETS_1 inverterer bitene, mens KRETS_2 adderer 1.<br />

7


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

Merk at disse kretsene har en styreinngang, «ENABLE», som bestemmer om deres respektive<br />

operasjon skal gjennomføres eller om signalet bare skal slippes rett gjennom.<br />

Figur 1-1: ABS-krets<br />

Figur 1-2 viser sammenhengen mellom DI og DO, med DI som en sinus.<br />

DI [ 3 : 0 ]<br />

TID<br />

8<br />

DO[3:0]<br />

0111<br />

(Max absoluttverdi)<br />

Figur 1-2: Inn- (DI) og utgangssignal (DO) dersom inngangssignalet er en sinus<br />

Ripple Carry adderer<br />

La oss se litt på teorien bak addisjonen som skal utføres av KRETS_2. Som beskrevet i Gajski,<br />

kap. 5.1, blir en adderer realisert ved å koble sammen flere like blokker som hver har en<br />

enklere funksjonalitet. Disse blokkene kalles fulladderere. Det er en fulladderer for hvert av<br />

bitene i inngangstallene som skal adderes. Hver fulladderer behandler et bit fra hvert av<br />

inngangstallene A og B, med samme signifikansnivå, og mentebitet fra signifikansnivået<br />

under. Av disse inngangene beregnes sum og mente (carry).<br />

An Bn Cn+1 FA<br />

Sn Cn a) Fulladderer symbol<br />

S n = A n ⊕ B n ⊕ C n<br />

c) Sum-bit, funksjon<br />

Figur 1-3: En-bits fulladderer<br />

TID<br />

An Bn Cn Sn Cn+1<br />

0 0 0 0 0<br />

0 0 1 1 0<br />

0 1 0 1 0<br />

0 1 1 0 1<br />

1 0 0 1 0<br />

1 0 1 0 1<br />

1 1 0 0 1<br />

1 1 1 1 1<br />

b) Funksjonstabell<br />

Cn+1 = An<br />

⋅ Bn<br />

+ An<br />

⋅C<br />

n + Bn<br />

⋅C<br />

d) Mentebit, funksjon<br />

n


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

A3 B3 A2 B2 A1 B1 A0 B0 C4 FA C3 C3 FA C2 C2 FA C1 C1 FA C0 S 3<br />

S 2<br />

A[3210] B[3210]<br />

9<br />

S[43210]<br />

Figur 1-4: Fire-bits ripple carry adderer<br />

Modifisert Ripple Carry adderer<br />

Addereren som benyttes i labben er litt spesiell, og trenger ikke samme funksjonalitet som en<br />

generell adderer. Det som er spesielt med labben er at det ene tallet (B) alltid er 1 (0001BIN).<br />

Det medfører at noen endringer og forenklinger kan gjøres (se Figur 1-5).<br />

• De tre mest signifikante bit i B, som alltid er ”0”, kan fjernes fra funksjonen, uten at<br />

resultatet blir endret.<br />

• C-inngangen for den minst signifikante fulladdereren er alltid ”0”. Dette bidrar heller<br />

ikke, så den kan også fjernes.<br />

Det vi sitter igjen med etter disse forenklingene er fire fulladdererkretser med en av<br />

inngangene fjernet. Siden alle inngangene på en adderer er likeverdige (Se Figur 1-3 c) og d)),<br />

kan vi fjerne C-inngangen i stedet for B-inngangen. En fulladderer uten c-inngang kalles<br />

halvadderer.<br />

En annen spesiell ting med addereren i denne labben er at den må ha en inngang som styrer om<br />

kretsen skal slippe tallet, A, uforandret igjennom eller ikke. Vi kan gjøre følgende betraktning;<br />

å slippe tallet uforandret gjennom er det samme som å legge til null. Ved å kalle<br />

styreinngangen «ENABLE» og sette den til aktiv høy så vil følgende gi ønsket funksjonalitet:<br />

S = A + ENABLE<br />

Er «ENABLE» null så legger den til null, med andre ord slippes A uforandret igjennom. Er<br />

«ENABLE» en så legger den til en. Styresignalet kan dermed legges inn på det minst<br />

signifikante bitet til B, og resultatet er kretsen vist i Figur 1-5.<br />

Hardware<br />

På labben skal det brukes et eget labkort. Kortet innholder følgende komponenter:<br />

• 2 Sjusegment display med driverkretser<br />

• 2 Lysdioder med drivertransistor<br />

• 3 Logikk IC-kretser<br />

• 1 Spenningsregulatorkrets<br />

• 1 fire-bits giver (stiftlist med kortslutningsbøyler).<br />

S 1<br />

S 0<br />

'0'


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

Labkortet har 32 tilkoblinger, og dets funksjonalitet bestemmes av hvordan tilkoblingene blir<br />

koblet sammen.<br />

S3<br />

S2<br />

A[3210]<br />

A3 B3<br />

A2 B2<br />

A1 B1<br />

A0 B0<br />

C4 HA<br />

C3 HA<br />

C2 HA<br />

C1 HA<br />

10<br />

S[43210]<br />

Figur 1-5: Modifisert Ripple Carry adderer<br />

S1<br />

Figur 1-6: Lab-kort<br />

Grensesnitt<br />

Figur 1-7 viser grensesnittet på ABS-kretsen, som er målet for labben. Inkludert i figuren er<br />

også to sjusegment, et for inngangssignalet og et for utgangssignalet fra kretsen.<br />

Figur 1-7: ABS-krets<br />

ENABLE<br />

S0


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

Forarbeid<br />

Oppgave 1<br />

Les kapittel 2.5, 2.6 og 5.1 i Gajski<br />

Les introduksjonskapitlet foran i labheftet og hele teoridelen til denne labben.<br />

Les notat om negative tall. (se lab-info på it’s learning)<br />

Sørg for å føre en ryddig labprotokoll. Alle resultater fra forarbeide og labarbeide skal føres i<br />

denne. For tabeller og figurer som er oppgitt nedenfor, og som skal fylles ut, er det akseptabelt<br />

å referere til disse i labprotokollen. Da blir imidlertid labheftet å regne som et vedlegg til<br />

labprotokollen og må behandles deretter. Det beste er derfor å overføre tabeller og firgurer til<br />

labprotokollen.<br />

Oppgave 2<br />

KRETS_1 skal invertere alle bitene i DI, dersom ENABLE (styreinngangen) er ’1’.<br />

4<br />

1<br />

11<br />

KRETS_1 4<br />

DI 1<br />

EN 1<br />

DO 1<br />

Figur 1-8: KRETS_1<br />

Lag KRETS_1 som spesifisert nedenfor, og kontroller virkemåten ved hjelp av en<br />

funksjonstabell.<br />

Tabell 1-1: KRETS_1 Spesifikasjon<br />

Navn Antall bit Retning Verdi Betydning<br />

DI1 4 Inn Data<br />

DO1 4 Ut Data<br />

EN1 1 Inn Kontrollbit:<br />

0 DO1 = DI1<br />

1 DO1 = ~DI1<br />

~DI betyr at alle bit’ene i DI inverteres (~ er en ”tilde”)<br />

Dette er en krets som inverterer alle bitene dersom EN1 er satt.<br />

Tips: Studer sannhetstabellen til en XOR-port.<br />

Oppgave 3<br />

KRETS_2 skal addere et 4-bits binærtall (A), med tallet 0001BIN (B).<br />

Ta utgangspunkt i funksjonene for Sum og Carry ut (Sn og Cn+1) for en fulladderer (Se<br />

side 8). Gitt at Cn er 0: Forenkle uttrykkene.<br />

Fyll ut funksjonstabellen for halvaddereren, Tabell 1-2.<br />

Oppgave 4<br />

Hvor mange tallkombinasjoner får man med et fire-bits binærtall?<br />

Hvilke desimaltall kan man representere på toerkomplement form med fire bit (positive<br />

og negative)?


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

1<br />

1<br />

Halv-adderer<br />

A<br />

Carry<br />

B Sum<br />

Figur 1-9: Halv-adderer<br />

1<br />

1<br />

Tabell 1-2: Halv-adderer funksjonstabell<br />

12<br />

A B Sum Carry<br />

0 0<br />

0 1<br />

1 0<br />

1 1<br />

Oppgave 5<br />

Tabell 1-3 viser funksjonstabellen for absoluttkretsen. Første kolonne viser forskjellige<br />

kombinasjoner av et 4-bits binærtall. De neste to kolonnene viser henholdsvis:<br />

• Heksadesimal verdi av binærtallet<br />

• Desimalverdi av binærtallet, når binærtallet er tolket som toerkomplement<br />

De siste to kolonnene viser absoluttverdien av binærtallet, når binærtallet er tolket som et<br />

toerkomplement tall. Bare to av radene i tabellen er fylt ut. Fyll ut resten av tabellen for tallene<br />

funnet i Tabell 1-3.<br />

Tabell 1-3: Funksjonstabell absoluttkrets<br />

Binær Heksadesimal Desimal Binær (abs)<br />

Heksadesimal<br />

(abs)<br />

0111 0x7 7 0111 0x7<br />

1111 0xF -1 0001 0x1<br />

Oppgave 6<br />

Figur 1-10 viser noen av komponentene på labkortet. Til venstre er en 2x4 stiftlist. Denne<br />

brukes til å gi ’1’ eller ’0’ på terminalene 27 – 30. Når et stiftpar er koblet sammen, vil den<br />

respektive terminalen være ’1’. Ellers er den ’0’. Til høyre er vist en OG-port og en<br />

EKSKLUSIV ELLER-port (XOR). Disse skal kobles sammen slik at de gir funksjonaliteten til<br />

en halvaddererkrets. Helt til høyre er to lysdioder, som lyser hvis henholdsvis CARRY- eller<br />

SUM-utgangene er ’1’.


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

Figur 1-10: Komponenter i halvadderer<br />

Tegn inn de nødvendige koblingene i Figur 1-10, slik at:<br />

• OG- og XOR-portene utgjør en halvaddererkrets med to innganger, A og B.<br />

• Terminalene 27 og 28 kobles henholdsvis til halvaddererens A- og B-innganger.<br />

Oppgave 7<br />

Figur 1-11 viser alle modulene på labkortet. Det inneholder alle portkretsene som trengs for å<br />

lage en fire-bits absoluttverdikrets. I hver av HA0 - HA3 finner dere en OG- og en XOR-port<br />

som vist i Figur 1-10. I HA0 finnes dessuten de to lysdiodene. Dette er et eksempel på<br />

modulbasert design der detaljene i Figur 1-10 er skjult i Figur 1-11. Numrene på enden av<br />

linjene henviser til terminalene på rute-modulen, som skal brukes på labben.<br />

Tegn inn de nødvendige forbindelsene for å oppnå følgende moduler:<br />

• En 4-bits invertererkrets som har en styreinngang<br />

• En 4-bits ”addér med 1”-krets med styreinngang.<br />

Legg merke til at HA0 har fire innganger. Det skyldes at denne halvaddereren ikke<br />

er ”ferdigkoblet”. Koblingen fra Oppgave 6 utgjør en halvadderer. Bruk den.<br />

Tegn inn de nødvendige forbindelsene for å koble modulene sammen, slik at de utgjør<br />

en absoluttverdikrets.<br />

Hvor skal de to styreinngangene på den 4-bits inverterkretsen, og den 4-bits ”addér med<br />

1”-kretsen kobles slik at alle positive tall slipper uendret gjennom kretsen, mens alle<br />

negative tall blir gjort positive?<br />

XOR3, og følgelig også HA3 er egentlig overflødig. Hvorfor?<br />

Terminalene 27 – 30 gir et fire-bits toerkomplement tall som skal kobles til inngangen på<br />

absoluttverdikretsen.<br />

Forbind terminalene 27 – 30 til inngangen på absoluttverdikretsen.<br />

13


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

Figur 1-11: Absoluttkrets, moduler<br />

Oppgave 8<br />

Kritisk sti angir den lengste veien et signal teoretisk må forplante seg gjennom en krets. Merk<br />

at lengden måles i tid. Med en sti menes en serie med porter som et signal på en inngang må<br />

forplante seg gjennom før det vil påvirke en utgang. I rene kombinatoriske kretser vil hver<br />

utgang ha minst en sti som hver fører tilbake til minst en inngang. Figur 1-12 viser en svært<br />

enkel krets der vi kan plukke ut tre stier.<br />

a)<br />

Figur 1-12: Enkel kombinatorisk krets (a) med tilhørende stier (b).<br />

For enkelhets skyld så settes tidsforsinkelsen gjennom hver av disse portene til 1 både for<br />

transisjon fra høy til lav og fra lav til høy (disse kan også være forskjellige). Stien fra B til Q<br />

har da en lengde på 2 i likhet med stien fra C til Q. Stien fra A til Q har bare en port og<br />

tidsforsinkelsen på den er dermed 1. Kritisk sti er da fra B eller C til Q.<br />

For virkelige porter opererer vi med forsinkelse i et antall piko- eller nanosekund. Det er vanlig<br />

å oppgi en typisk verdi for forsinkelsen gjennom en port, samt en maksimalverdi (og noen<br />

ganger en minimalverdi). Hvilken verdi en gitt port har påvirkes av hvor ”heldig” man var da<br />

14<br />

b)


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

den ble produsert på fabrikken. Noen porter er langsomme, andre er raske. I et kretsdesign<br />

påvirkes dette dessuten av hvor stor kapasitiv last det er på utgangen av en port. Dess større<br />

kapasitans, dess langsommere endres utgangen av porten. Det tar dermed lengre tid før man<br />

registrerer en endring. Temperaturen til porten på et gitt tidspunkt spiller også inn.<br />

For å måle tidsforsinkelsen langs kritisk sti så må inngangene gå fra et bestemt påtrykk<br />

(inngangsverdi) til et annet bestemt påtrykk og dette må resultere i en endring av verdi på<br />

utgangen. Skal tidsforsinkelsen måles uten å vite noe annet om kretsen enn at den ikke<br />

inneholder minneelementer må tidsforsinkelsen måles på alle utgangene mens inngangene<br />

skifter fra alle mulige kombinasjoner til alle mulige kombinasjoner. Antall tester blir da:<br />

2 n (2 n – 1)<br />

hvor n er antall innganger. Selv for denne enkle kretsen blir dette 8*7 = 56 forskjellige tester.<br />

Derimot, ved å analysere kretsen er det mulig å gjøre følgende betraktninger:<br />

• A må være høy (ellers er Q høy uansett hva som påtrykkes B og C).<br />

• B og C er likeverdige.<br />

• Om Q går fra høy til lav eller fra lav til høy gir det samme forsinkelse.<br />

Vi ser da at tidsforsinkelsen langs kritisk sti kan måles ved for eksempel først å sette A, B og C<br />

høy. Q vil da bli høy. Deretter lar vi C gå lav og måler tiden det tar før Q går lav.<br />

Kritisk sti gjennom absoluttverdikretsen vil være den stien som vil gå gjennom flest<br />

porter. Finn kritisk sti. Husk at halvaddererene også inneholder porter.<br />

Det er kun én kombinasjon av påtrykk som vil resultere i at kritisk sti vil gjøre seg<br />

gjeldene. Finn disse to påtrykkene. Hint, kun en av de fire inngangssignalene vil endre<br />

verdi mellom de to påtrykkene.<br />

I Vedlegg: Portkretser på side 92, finnes forplantningsforsinkelse (tPHL og tPLH) og stige-/falltid<br />

(tTLH og tTHL) for XOR- og AND-portkretser (henholdsvis CD4030 og CD4081).<br />

Bruk typiske verdier for forplantningsforsinkelsen, tPHL og tPLH, og finn tidsforsinkelsen<br />

langs kritisk sti i absoluttverdikretsen. VDD = 5V.<br />

Finn også tidsforsinkelsen langs kritisk sti dersom max-verdier benyttes. Som vi ser kan<br />

det være store forskjeller fra krets til krets.<br />

• I Figur 1-11 angir numrene på linjene, terminalene linjene går til, og parentesene<br />

hvilken portkrets, og pinne de respektive linjene går inn/ut av.<br />

Hvilken terminal er inngangen til kritisk sti?<br />

Hvilken pinne på hvilken portkrets er utgangen fra kritisk sti?<br />

Hva er stige- og falltid for de to typene portkretser?<br />

Databladene for de to portkretsene inneholder også et sett grafer. Hva sier disse<br />

om forplantningsforsinkelsene og stige- og falltidene?<br />

15


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

Lab arbeid<br />

Det er veldig viktig at spenningskilden blir<br />

koblet riktig til kretskortet<br />

• Terminal 31: +7V<br />

• Terminal 32: Jord (0V)<br />

Pass på at kortet plasseres riktig vei<br />

Terminalnumrene fra kretstegningene svarer til numrene på veroboardsokkelen. Det kommer<br />

til å bli mange ledninger. Benytt derfor korte ledninger så langt som mulig for koblinger internt<br />

på sokkelen.<br />

Sjekk it’s learning for eventuelle nye beskjeder om labben.<br />

Fase 1: Halvadderer<br />

• Koble opp kretsen fra Oppgave 6.<br />

• Koble til spenningsforsyning, +7V til terminal 31, og jord til terminal 32.<br />

• Pass på at ampere-begrenseren (den nederste justeringen på spenningskilden) er satt til<br />

maks ampere.<br />

• Bruk de to nederste stiftlistparene på S1 til å gi påtrykk til koblingen.<br />

Kontroller at halvaddereren fungerer riktig i henhold til Tabell 1-2. Utgangene<br />

styrer, som oppgitt i forarbeidet, hver sin lysdiode merket CARRY0 og SUM0.<br />

Fase 2: Absoluttverdikrets<br />

• Koble opp kretsen fra Oppgave 7.<br />

Kontroller at absoluttverdikretsen fungerer riktig i henhold til Tabell 1-3. Bruk<br />

stiftlistparene 0 til 3 for å gi påtrykk til kretsen. Syvsegmentdisplayene viser den<br />

heksadesimale representasjonen av inn- og utgangsverdiene. Tabellen må benyttes for å<br />

finne hva disse tallene representerer i toerkomplement, for eksempel at F betyr -1. Merk<br />

også at det er lett å forveksle tallene 6 og B på syvsegmentet.<br />

Fjern alle kortslutningsbøylene fra stiftlistparene. Kortslutningsbøylene skal festet på<br />

kortet ved laboratorieøvingens slutt, sørg derfor for at de ikke rotes vekk<br />

Fase 3: Standard oppsett av oscilloskopet og justering av probe<br />

For å ha et utgangspunkt når en skal gjøre målinger med skopet, bør det innstilles til et<br />

standard utgangspunkt. I tillegg må probene (målepinnene) tilkoblet skopet justeres.<br />

Fra nå av vil knapper på skopet merkes med STORE bokstaver, og valg i menyene med kursiv.<br />

Menyene på skopet dukker opp på høyre kant på skjermen når de aktuelle menyene er valgt.<br />

• Koble oscilloskopet til strømnettet, og skru det på. Vent til det har startet opp.<br />

• Trykk DEFAULT SETUP. Oscilloscopet vil nå kun vise kanal 1 (CH1), med gult.<br />

Standardinnstillingene for spenningsoppløsning (V/DIV) for CH1 er 1V, og<br />

tidsoppløsning (SEC/DIV) er 500µs. Det vil si at en rute på skjermen i vannrett retning<br />

tilsvarer 500µs (se midt på skjermen under), og en rute i loddrett retning tilsvarer 1V<br />

(se til venstre på skjermen under). Dette vil med andre ord si; hvis en måler en sinus<br />

med frekvensen 1kHz, og amplitude 1V topp-til-bunn (p-p), vil bildet se ut som Figur<br />

1-13. Avstanden fra topp til bunn er 1 rute, som tilsvarer 1V. Avstanden fra en topp til<br />

16


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

neste topp er to ruter, som tilsvarer 500µs·2=1ms. Frekvensen er da 1/1ms=1kHz.<br />

MERK: Legg merke til informasjonen om tids- og spenningsoppløsning på skjermen<br />

under skopbildet. CH1 1.00V og M 500µs. De angir, som nevnt over, spenning pr rute<br />

og tid pr rute, og er avgjørende for å tolke målingen, når det gjelder amplitude og<br />

frekvens.<br />

Figur 1-13: DEFAULT SETUP<br />

• Koble en probe til kanal 2 på oscilloskopet.<br />

• Påse at proben er satt i X10 posisjon (knapp på proben).<br />

• Koble proben (og jordledningen på proben) til det øverste (og nederste)<br />

tilkoblingspunkt merket PROBE COMP på oscilloskopet.<br />

• Trykk PROBE CHECK<br />

• Hvis det etter en liten stund, står ”Probe check on CH2 PASSED” nederst i venstre<br />

hjørne, er proben riktig justert. I så fall skal den ikke justeres. Hvis ikke, bruk en liten<br />

skrutrekker, og skru forsiktig på skruen på proben, til firkantpulsen er helt flat på topp<br />

og bunn (Figur 1-14).<br />

• Koble fra CH2.<br />

Figur 1-14: Kalibrering av probe<br />

Senere i labben skal dere lagre enkelte av skopbildene på PCen. Se fremgangsmåte på it’s<br />

learning for dette.<br />

Fase 4: Innstilling og kontrollering av signalgenerator<br />

• Koble signalgenerator til oscilloskopets kanal 1 (CH1), med en BNC-BNC kabel, og<br />

still den inn med følgende parametere:<br />

o Firkantpuls<br />

o 5V peak-to-peak (topp-bunn)<br />

o 2,5V offset (signalet vil da veksle mellom 0V og 5V)<br />

o 100kHz<br />

17


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

• Etter at man setter oscilloskopet i standard innstilling (DEFAULT SETUP) vil det<br />

forvente at prober med 10X demping kobles til. Siden BNC-kabelen ikke har demping,<br />

må oscilloskopet stilles inn på 1X forsterking for kanal 1:<br />

o Trykk CH1 MENU<br />

o Trykk Probe i menyen, gjentatte ganger til det står 1X.<br />

• Kontroller med oscilloskopet at signalgeneratoren gir ut riktig signalspenning og<br />

-frekvens:<br />

o Trykk AUTO SET (CH2 skal være frakoblet PROBE COMP). Skopet vil<br />

automatisk endre tid og spenningsinnstillingene slik at signalet fra generatoren<br />

blir vist fornuftig på skjermen (Figur 1-15).<br />

Dobbeltsjekk at Pk-Pk ikke er større enn 5V, og at Mean er 2.5V, og juster<br />

generatoren om nødvendig.<br />

o Prøv også å kontrollere ”manuelt” at signalet er riktig.<br />

Hvor mange ruter høyt er signalet, og hvor mange volt tilsvarer det?<br />

Hvor mange ruter bredt er en periode i signalet, og hvilken frekvens tilsvarer<br />

det?<br />

Hvor høyt er signalet plassert i forhold til 0V? (Den gule pila, merket 1 til<br />

venstre i bildet angir 0V for CH1. Signalet skal altså ”ligge oppå” denne pila.)<br />

o Hvis generatoren må justeres kan det hende dere må trykke AUTO SET igjen,<br />

for å ”finne igjen” signalet.<br />

Figur 1-15: Kontroll av signal fra signalgenerator<br />

• Når signalgeneratoren er riktig justert, kan dere eksperimentere litt med knappene;<br />

SEC/DIV og VOLTS/DIV for CH1.<br />

Hva skjer med signalet på skjermen, når dere justerer de to?<br />

• Prøv også å justere LEVEL i TRIGGER-avdelingen.<br />

Hva skjer dersom den lille pila, til høyre i bildet, kommer over eller under<br />

signalet?<br />

Fase 5: Forplantningsforsinkelse<br />

• Generatorsignalet skal nå kobles både til oscilloskopet, og labkortet. Bruk et BNC Tledd<br />

til å splitte generatorutgangen i to utganger.<br />

• Sjekk igjen at CH1 på oscilloskopet er stilt inn på 1X forsterkning. Dersom den står på<br />

X10 vil oscilloskopet vise at dere har 5V p-p, men i virkeligheten er det 500mV p-p.<br />

• Pass på at ingen av kortslutningsbøylene er koblet på stiftlisten.<br />

• Koble en BNC-bananplugg-kabel fra generatoren, inn på kritisk sti, funnet i Oppgave 8.<br />

Den røde pluggen skal inn på inngangen til kritisk sti, og den svarte skal til jord<br />

(terminal 32). Signalgeneratoren skal altså ikke kobles til terminal 31.<br />

Spenningsforsyningen skal fortsatt være tilkoblet der.<br />

18


1 Absoluttverdikrets – portkretser TFE4105: Lab høst 2009<br />

• Det skal nå måles forplantningsforsinkelse gjennom kretsen langs kritisk sti.<br />

o Bruk proben koblet til CH2 på oscilloskopet til å måle utgangssignalet fra<br />

kritisk sti. Mål direkte på portkretsen funnet i Oppgave 8. Figur 1-16 viser<br />

pinneplasseringene på portkretsene. For å unngå støy i målingen må<br />

instrumenter og kretser ha felles jord. Koble jordingsledningen på proben til<br />

terminal 32. Forplantningsforsinkelse er tiden fra inngangen har steget/falt til 50<br />

prosent av maks spenning, til utgangen stiger/faller til 50 prosent av maks<br />

spenning, som vist i Figur 1-17.<br />

Figur 1-16: Pinneplassering på portkretsene<br />

Figur 1-17: Forplantningsforsinkelse<br />

o Trykk AUTO SET, slik at både CH1- og CH2-signalet vises på skjermen.<br />

o Bruk SEC/DIV-knappen til å forstørre (strekke ut) signalene, og<br />

◄POSITION► til å flytte signalene sideveis. Prøv å fokusere på området fra<br />

CH1 (gult) har positiv flanke, til påfølgende flanke på CH2 (cyan).<br />

Når dere har et OK skopbilde, trykk RUN/STOP, for å fryse bildet. Les av<br />

forplantningsforsinkelsen. Hint: t = antall ruter · tid pr rute (Se ”Standard<br />

oppsett av oscilloskopet og justering av probe” for detaljer rundt måling med<br />

oscilloskop.) Trykk RUN/STOP igjen.<br />

Sjekk resultatet mot forarbeidet og kommenter et eventuelt avvik ut fra<br />

informasjonen i databladene. Ligger den målte forsinkelsen nærmest beregnet<br />

typisk eller beregnet maks forsinkelse? Kanskje den ligger over maks?<br />

Kommenter.<br />

Fase 6: Stige-/falltid<br />

Figur 1-18 viser hvordan stige- og falltiden blir avlest. Stigetiden er tiden det tar for utgangen å<br />

stige fra 10 % til 90 % av hele stigningen. Falltiden er tilsvarende, tiden det tar for utgangen å<br />

falle fra 90 % til 10 % av hele fallet.<br />

• Fjern kabelen mellom skopet og signalgeneratoren.<br />

• Om dere ikke allerede er i AUTOSET menyen, trykk AUTO SET (mens dere måler<br />

utgangen av kritisk sti med proben).<br />

• Trykk den tredje menyknappen (bilde av stigende flanke)<br />

Les av Rise Time fra skjermen. Prøv også å kontrollere manuelt at dette stemmer ved å<br />

telle ruter.<br />

Følg samme prosedyre for falltid.<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!