ABSOLUTTVERDIKRETS FPGA
ABSOLUTTVERDIKRETS FPGA
ABSOLUTTVERDIKRETS FPGA
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