Implementering av FIR filter samt CORDIC algoritm på XSA-50

Storlek: px
Starta visningen från sidan:

Download "Implementering av FIR filter samt CORDIC algoritm på XSA-50"

Transkript

1 C-uppsats LITH-ITN-EX--06/001--SE Implementering av FIR filter samt CORDIC algoritm på XSA-50 Joachim Andersson Nima Khakpour Department of Science and Technology Linköpings Universitet SE Norrköping, Sweden Institutionen för teknik och naturvetenskap Linköpings Universitet Norrköping

2 LITH-ITN-EX--06/001--SE Implementering av FIR filter samt CORDIC algoritm på XSA-50 Examensarbete utfört i Datakommunikation vid Linköpings Tekniska Högskola, Campus Norrköping Joachim Andersson Nima Khakpour Handledare Qin-Zhong Ye Examinator Qin-Zhong Ye Norrköping

3 Avdelning, Institution Division, Department Institutionen för teknik och naturvetenskap Datum Date Department of Science and Technology Språk Language x Svenska/Swedish Engelska/English Rapporttyp Report category Examensarbete B-uppsats x C-uppsats D-uppsats ISBN ISRN LITH-ITN-EX--06/001--SE Serietitel och serienummer ISSN Title of series, numbering URL för elektronisk version Titel Title Författare Author Joachim Andersson, Nima Khakpour Sammanfattning Abstract Denna rapport visar hur ett FIR filter kan konstrueras i språket VHDL samt implementeras på XSA-50 kortet. Det andra som tas upp är hur CORDIC algoritmen används och hur den implementeras på samma kortsystem. Rapporten är uppställd på så sätt att den först ska ge en grundläggande inblick i de två ämnesområdena FIR respektive CORDIC. Vidare så redovisas hur projekten har utförts för de båda konstruktionerna. Det ges även en beskrivning av XSA-50 kortet. Nyckelord Keyword FIR, CORDIC, XSA-50, Digital kommunikation, Signalbehandling, Filter, VHDL, FPGA, SDRAM

4 Upphovsrätt Detta dokument hålls tillgängligt på Internet eller dess framtida ersättare under en längre tid från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: Joachim Andersson, Nima Khakpour

5 Linköpings Universitet RAPPORT ITN Implementering av FIR filter samt CORDIC algoritm på XSA-50 Sammanfattning Denna rapport visar hur ett FIR filter kan konstrueras i språket VHDL samt implementeras på XSA-50 kortet. Det andra som tas upp är hur CORDIC algoritmen används och hur den implementeras på samma kortsystem. Rapporten är uppställd på så sätt att den först ska ge en grundläggande inblick i de två ämnesområdena FIR respektive CORDIC. Vidare så redovisas hur projekten har utförts för de båda konstruktionerna. Det ges även en beskrivning av XSA-50 kortet.

6 Abstract This report shows how to construct a FIR-filter in VHDL and implement it on the XSA-50 card. The other thing that the report looks up on is how the CORDIC-algoritm is used and how to implement it on the same cardsystem. The report is presented in such way that it starts with a basic insight in the two subjects FIR and CORDIC. Further on the report shows how the project was carried out for the both constructions. There is also a section describing the XSA-50 card. ii

7 iii

8 Innehållsförteckning 1 INLEDNING BAKGRUND CORDIC BAKGRUND FIR SYFTE METOD STRUKTUR CORDIC CORDIC-MODER Framåtrotation Bakåtrotation BEGRÄNSNINGAR I CORDIC-ROTATION CORDIC-ALGORITMER FÖR FPGA DESIGN KONVENTIONELL KONTRA REDUNDANT ARITMETIK PÅ FPGA Konventionell Aritmetik på FPGA Adderare och Subtraherare Adder/Subtraktor RADIX-2 REDUNDANT ARITMETIK PÅ FPGA KONVENTIONELL CORDIC PÅ FPGA REDUNDANT CORDIC PÅ FPGA Uppskattning av tecken Differential CORDIC (DCORDIC) Pre-Computed CORDIC (P-CORDIC) DIGITALA FILTER ICKE-REKURSIVA FILTER DESIGN AV FIR-FILTER FÖNSTERMETODER FREKVENSDOMÄN DESIGN FALTNING XSA-50 KRETSKORT KOPPLA KORTET TILL PC VGA MONITOR TILL XSA PS/2 PORT MHZ OSCILLATOR SYNKRON DRAM FLASH RAM SJU-SEGMENT LED DIP SWITCHAR PUSHBUTTON PROJEKTBESKRIVNING PROJEKTBESKRIVNING FÖR CORDIC Skapa HEX fil Utföra CORDIC algoritm på kortet Verifierng av CORDIC algoritmen PROJEKTBESKRIVNING FIR FILTER BLOCKSTRUKTUREN I FIR FILTRET Ps2_kbd Keyb_scan Loadbuff One_pulse...39 iv

9 Filter_muls Adder Adder Store AVSLUTNING RESULTAT CORDIC RESULTAT FIR PROBLEM DISKUSSION TERMINOLOGI REFERENSER...49 BILAGOR: Bilaga A - Källkod för FIR filter Bilaga B Källkod för CORDIC Bilaga C Manual för FIR filter Bilaga D Schema över FIR filter Bilaga E Matlabkod för CORDIC Bilaga F Matlabkod för HEX-fil Bilaga G Matlabprogram för faltning Bilaga H Manual för CORDIC v

10

11 Inledning 1.1 Bakgrund CORDIC I mitten av 1950-talet kom det ett direktiv från den amerikanska militären om att digitalisera den analoga datordrivna navigationssystemet till B-58 bombflygplan. Det ansågs att det analoga systemet hade en alldeles för begränsad noggrannhet. Den största svårigheten vid en övergång till ett digitaltsystem var att kunna göra real-tids beräkningar av navigations ekvationer för att bestämma den nuvarande positionen på ett sfärisk planet. Vid den tiden hade det redan utvecklats digitala differentialanalysatorer som kunde utföra fortlöpande navigations beräkningar. Men dessa system klarade inte av att producera resultat vid flygningar nära Nordpolen, och de hade även endel andra tillkortakommanden. Därför krävdes det ett helt nytt sätt att lösa detta problem på. Volder presenterade en lösning på detta problem i sin artikel [1] om COordinate Rotation DIgital Computer det vill säga förkortningen CORDIC. Senare vidareutvecklades CORDIC-algoritmen av bland andra John Walther [2]. Walther generaliserade CORDIC-algoritmen så att den även löste hyperboliska och exponentialfunktioner. Tack vare algoritmens förträfflighet när det gäller lösningar för bland annat Very Large Scale Integrated Circuit (VLSI) teknik och Field Programmable Gate Array (FPGA) har intresset kring den vuxit starkt. Andra områden som algoritmen har använts i är miniräknare och andra Digital Signal Processing (DSP) objekt, så som adaptiva filter, Fast Fourier Transform (FFT), demodulatorer, och neurala nätverk. VLSI implementationer har diskuterats i bl.a. doktorsavhandlingar av Timmermann [5] och Hahn [6]. Den första FPGA implementationen undersöktes av Meyer-Bäse et al. [7,8]. 1.2 Bakgrund FIR Namnet FIR står för Finite Impulse Response och betyder ändligt pulssvar. Detta pulssvar kan användas för att beskriva hur ett digitalt system beter sig. Ett pulssvar som finns på ett filters utgång kan mätas då en enhetspuls finns på filtrets ingång. En enhetspuls är en puls med amplituden 1 som dyker upp då funktionens argument är noll. FIR filter är en typ av digitalt filter som används vid DSP applikationer. Det som kännetecknar ett FIR filter är att impulssvaret är noll utanför ett viss begränsat intervall [20]. Inledningsvis ska det sägas att nästan alla DSP algoritmer eller processer kan beskrivas som filter. Den vanligaste definitionen av ett filter är ett system som sänder eller blockerar ett väl definierat frekvensområde. Fyra typiska kategorier av digitala filter är Lågpass-, högpass-, bandpass- och bandstopfilter. 2

12 Syfte Examensarbetets syfte var att implementera ett FIR filter samt CORDIC algoritmen på kretskortet XSA-50. Arbetet ska vidare användas i utbildningssyfte. I rapporten presenteras en del grundläggande information om respektive ämnesområde, detta för att ge en övergripande insyn i ämnena. Arbetet ska resultera i manualer för de båda konstruktionerna. Dessa kan användas som utbildningsmaterial alternativt i självstudiematerial. Manualernas syfte är att ge steg för steg förklaring till hur man implementerar dessa konstruktioner på XSA-50 kortet. 1.4 Metod Först genom diskussion med kursansvarig vid institutionen togs det fram en kravspecifikation. Kraven omfattade simulering samt implementering av FIR filtret och CORDIC-algoritmen. Vidare skulle det framtagna resultatet sammanställas till att användas som kursmaterial. 1.5 Struktur Rapporten börjar med en presentation av CORDIC-algoritmen för att sedan fortsätta med olika metoder för tillämpning av algoritmen. Därefter visas simulationer och praktisk implementation på kortet XSA-50. Rapporten fortsätter med en övergripande bild av FIR filter samt en generell beskrivning av några olika filter designer. Efter detta presenteras simulering och praktisk implementering av filtret på kortet. Slutligen bifogas ett antal bilagor innehållande källkoder och kretsscheman. 3

13

14 CORDIC I detta kapitel beskrivs grundläggande information om CORDIC-algoritmen. Med hjälp av en vektorrotation kan man beräkna en trigonometriskfunktion. Det är på denna bakgrund som CORDIC-algoritmen har tagits fram. CORDICalgoritmen roterar en vektor ett antal gånger mot en antagen vinkel. Algoritmen närmar sig genom att de iterativa rotationerna sker med successivt mindre vinklar. Detta kallas även ibland för mikrorotationer. Algoritmen [1] är härledd från de generella ekvationerna för vektorrotation. En vektor v(x,y) roteras med vinkeln φ blir: x x *cos( Φ ) - y *sin( Φ) v = = (2.1) y y *cos( Φ) + x *sin( Φ) Figuren 2.1 visar en rotation av en vektor v med vinkeln φ. figur. 2.1 Rotation av en vektor v med vinkeln φ. Ekvationen (2.1) kan även skrivas så att: x = cos( Φ) [ x y tan( Φ)] (2.2) y = cos( Φ) [ x + y tan( Φ)] (2.3) i Om rotationsvinkeln begränsas så att tan( Φ) = ± 2 reduceras multiplikationen med tangenstermen till en skiftoperation. En godtycklig rotationsvinkel uppnås genom en serie av mindre rotationer. Om då beslutet vid varje iteration, i, blir vilken riktning som rotationen ska ha då ett beslutet om den ska rotera eller ej, kan cos(φ) termen förenklas till en konstant då cos(φ) = cos(-φ). Detta medför att den iterativa rotationen kan uttryckas så här: x i = K [ x y d 2 ] (2.4) i+ 1 i i i i 5

15 där: y i = K [ y + x d 2 ] (2.5) i+ 1 i i i i K i d i = cos(tan = ±1 1 2 i ) = i Om man avlägsnar konstanten från den iterativa ekvationen, så har man bara en skift/additions algoritm för vektrorotation. Produkten av konstanten K i kan beräknas separat och sedan appliceras i systemet. När antalet iterationer går mot oändligheten så närmar sig produkten Därför har rotations algoritmen en ökning, på ca Den exakta ökningen beror på antalet iterationer. A n A n = n 2i (2.6) Vinkeln för en sammansatt rotation bestäms unikt av en serie av riktningar för mikrorotationerna. Den totala vinkelrotationen blir: z tan 1 i = z d (2 ) (2.7) i+ 1 i i 2.1 CORDIC-MODER CORDIC-algoritmen arbetar oftast i en av två moder. Den ena moden kallas rotation eller framåtrotation, i detta mode så roterar en inputvektor med en specifik vinkel, given som argument. Den andra moden kallas för vektoriseringsmoden eller för bakåtrotation, i detta mode så roterar inputvektorn till x-axeln undertiden så sparas vinklarna för att genomföra rotationen Framåtrotation I framåtrotations moden initieras vinkelackumulatorn med den önskade rotationsvinkeln. Vid varje iterations tas ett beslut så att storleken på residualvinkeln minimeras i vinkelackumulatorn. Därav baseras varje beslut på tecknet för residualvinkeln vid varje steg. För framåtrotation är CORDIC ekvationen följande: x y z i+ 1 i+ 1 i+ 1 = x y d 2 = z i = y i i i i i d tan i + x d i 2 1 i i (2 i ) (2.8) Där: 6

16 = 1 i d om 0 < i z, annars +1 i+1 z = Residualvinkeln i z = Tecken på rotationsvinkel Vilket ger det här resultatet: + = = + = = n i n n n n n n A z z x z y A y z y z x A x ] sin cos [ ] sin cos [ (2.9) Figur 2.2 visar en iterativ framåtrotation initierad med vektor v0. Figur 2.2 iterativ framåtrotation initierad med vektor v Bakåtrotation I bakåtrotations moden roterar inputvektorn mot x-axeln. Resultatet från vektoreringsoperationen är en rotationsvinkel och en skalad storlek av original vektorn. Vektoreringsfunktionen fungerar på så sätt att den försöker minimera y komponenten i residualvektorn vid varje rotation. Tecknet från den återstående delen av y-komponenten används till att bestämma vilken riktning som rotationen skall ha. För bakåtrotationen är CORDIC ekvationen följande: ) (2 tan i i i i i i i i i i i i i i d z z d x y y d y x x = + = = (2.10) 7

17 Där: Vilket ger det här resultatet: d = +1 om y < 0, annars 1 i i x y z n n n A n = A = 0 = z = 0 n n x tan + y y ( x 2i 0 0 ) (2.11) Figur 2.3 visar en Bakåtrotation initierad med vektor v0. Figur 2.3 Bakåtrotation initierad med vektor v0 2.2 Begränsningar i CORDIC-rotation Båda CORDIC moderna är så som de är uppgivna begränsade i rotationsvinkeln till värden mellan -π/2 och π/2. Denna begränsning beror på att vinkeln vid den 1 0 första iterationen är Φ 0 = tan (2 ). För sammansatta rotationsvinklar större än π/2 krävs det en extra rotation. Volder [1] beskriver initial rotationen till ±π/2. Detta ger korrigerings iterationen: x = d y y = d x π z = z d 2 (2.12) Där: 8

18 d=+1 om y<0, annars 1. Det finns ingen ökning för denna initialrotation. Ett annat alternativ är att man kan göra en initial rotation för antingen π eller 0, och på så sätt undvika att tilldela x och y komponenterna till roterande elementet. Det finns ingen ökning då heller tackvare initialrotationen: x = d x y = d y (2.13) z =z om d=1 eller z =z-π om d=-1. d=-1 om x<0, annars +1. 9

19

20 CORDIC-algoritmer för FPGA Design I detta kapitel presenteras en större del av CORDIC-algoritmen i självstudie syfte. Den höga kapacitet och prestanda som FPGA, har uppnått de senaste åren, har resulterat i en acceleration av DSPs uppgiftslösning. FPGA utrustningen har dragit stor nytta av VLSI deep sub-micron technology, för att få bl.a. högre hastighet och kapacitet. Tidiga FPGAs kunde inte implementera parallell CORDIC-algoritmer på grund av begränsningar i chip storlek och möjligheten att routa hårdvaruskiftningen [4]. Därför har många FPGA baserade DSP applikationer använt sig av en iterativ struktur. En nackdel med konventionell CORDIC implementationer som är baserade på ripple-carry-adderare eller subtraherare, är den interna carry överföringsfördröjningen. För att öka prestanda har redundant aritmetik föreslagits. Denna aritmetik skulle då kunna rationalisera bort fördröjningen. Dock innebär detta flera svårigheter. Det är inte möjligt att upptäcka tecknet för en redundant siffra utan att inspektera alla siffror som måste propageras från MSB till LSB. Eftersom alla siffror inte undersöks så finns det en chans för att tecknet inte kan bestämmas. I ett sådant fall kan någon av siffrorna {-1, 0, 1} väljas, detta kan i sin tur leda till icke-konstant skalfaktor eller godtycklig rotation måste utföras. I det första fallet så måste skalfaktorn beräknas parallellt med CORDIC iterationen, medan en fel vald rotation måste kompenseras. Xiling FPGA har en matris struktur, där varje element av matrisen är en Configurable Logic Block (CLB). CLB:arna är kopplade internt och omgivna av programmerbara Input-Output Block (IOB). En CLB består av två 4-input Look-Up Tables (LUTs), en 3-ingångs och två stycken register se figur 3.1. I sin rapport [9] har Valls et al. undersökt FPGA implementationer av dessa operationer både genom att använda konventionell och redundant aritmetik. Där säger de att en jämförelse mellan olika design kan enkelt göras genom att utvärdera den kritiska fördröjningsvägen (t.ex. genom att räkna antalet full adderare mellan två register). Men i en FPGA design kan prestationen förändras beroende på hur väl man utnyttjar arean. Det är inte tillräckligt att bara räkna antal CLB som ingår därför att routingen är en viktigt komponent för beräkningen av den totala fördröjningen. Den långa routingfördröjningen beror på dessa faktorer enligt Valls et al. [9]: En hundraprocentig förening mellan de olika resurserna i FPGAn kan inte uppnås. 11

21 Det är inte möjligt att finna en optimal placering och routing för alla problem p.g.a. begränsade resurser och fasta strukturer av utrustningen. Placering och routing är automatiska eller halv-automatiska processer. Figur 3.1 tagen direkt ur Valls et al. [9]. I deras rapport så karakteriseras throughput av propagations fördröjningen i kritiska vägar. Tabell 3.1 visar värden och beskrivningar av symboler som används för att beteckna fördröjningen i den kritiska vägen. De korresponderar till Xilings XC4000XL chips med hastighetsgraden 1. 12

22 Tabell 3.1 taget direkt ur Valls et al. [9]. 3.1 Konventionell kontra Redundant Aritmetik på FPGA Operationer som ingår i CORDIC är addition och subtraktion. I denna del av rapporten tittar vi på en del utvalda delar av Valls et al. [9] resultat. För en djupare inblick och mer utförligt redovisning rekommenderas läsning av hela rapporten [9] Konventionell Aritmetik på FPGA Aktuella FPGAn tillhandahåller resurser för att effektivt kunna implementera aritmetiska operationer Adderare och Subtraherare Grunddelen av en konventionell adderare och subtraherare är Full Adder (FA). En FA består av två stycken 3-ingångsfunktioner, därför kan den realiseras med hjälp av en enda CLB. Om man använder sig av FPGA:ns resurs att generera Carry Signal (CS), resulterar detta i en reduktion av area och en ökning i hastighet uppnås. I detta fall kan två FAn användas i samma CLB, så en N- bitars adderare eller subtraherare kräver N/2 CLBn. Propagationsfördröjningen för denna krets är: 1 f,2n Tp = TCKO + tnet + TOPCY + ( N 4) / 2 ( T 1 f,2n [ 6 + t + ( N 4) / ]ns net BYP + T NET ) + T SUM = (3.1) 13

23 Den kritiskavägen bestäms av propagationstiden för ripple carry och routingfördröjningen en av de minst signifikanta input av kretsen Adder/Subtraktor En adder/subtraktor utför en addition eller subtraktion beroende på ingångsvalet på A/S. Denna ingång indikerar om en operand är 2-komplement. Add/Sub grundcellen består av två 4-ingångsfunktioner. Ena till att beräkna ut värdet och den andra till att sänd carry. Enligt detta kan en N-bitars Add/Sub få plats i (N+1)/2 CLBn. Den andra halvan av CLBn används till att beräkna LSB 1 vid subtraktion. Den kritiska vägen för denna krets uttrycks av: Nf,1 Tp = TCKO + tnet + TASCY + ( N 4) / 2 ( T Nf,1 [ t + ( N 4) / ]ns net BYP + T NET ) + T SUM = (3.2) 3.2 Radix-2 Redundant Aritmetik på FPGA Redundant aritmetik är användbart då hastigheten vill höjas i operationer som karakteriseras av lång propagationsfördröjning. Utöver denna funktion så kan data processas med Most Significant Digit First (MSDF). Detta förenklar implementering av operationer som i sig arbetar på MSDF-sätt, som t.ex. division eller roten ur eller förbättrade algoritmer så som Differential CORDIC [10]. Implementering av vissa operationer så som, multiplikation, skalning och dividerare på FPGA kan finnas i [11]. I radix-2 redundant aritmetik kan en siffra X representeras som: N 1 = = i 2 x0x1x2... x N 1 x i 2 i= 0 X (3.3) där varje siffra x i tillhör {-1, 0, 1} enligt: där x, i x {0,1}. + i x (3.4) + i = xi xi 14

24 Konventionell CORDIC på FPGA Den bit-parallella fullt pipelineade kretsen för att beräkna ekvation (2.8) för framåtrotation visas[9]. Den är baserad på ripple carry adderare/subtraherare (se 3.1.3). Tecken biten från Z i är A/S linjen, som indikerar om nästa operation är en addition eller subtraktion. Hela processen kräver (2 (M+1) (N +1)+ (M +1)^2)/2 CLB:n. Den kritiska vägen ordnas av M+1 A/S näten. Varenda en av dessa nät har en fan-out på 2N + M + 3. Ekvationen för propagationstiden i den kritiska vägen ges av: T p ( T = T BYP + T [6.5 + t CKO + t NET (2N + M + 1) f, M + 1 net ) + T SUM (2N + M + 1) f, M + 1 net = + T ASCY + ( N 4) / 2 + ( N 4) / ] ns (3.5) Processorns latens är M+1 klockcykler. I fall av CORDIC implementering som beräknar antingen framåt- eller bakåtrotation med en precision av M=16 bitar, så är den area som ockuperas på FPGA:n CLBn. Den sämsta routingfördröjningen ges av en av de 17 näten med en fan-out på 61. Den maximala operations frekvensen är ungefär 25MHz när den får plats på ett chip med hastighetsgraden 1 och med en ockupation av mindre än 25%. För en struktur som beräknar både framåt- och bakåtrotation så är resurserna 100% delade. I sådana fall räcker det med att inkludera en multiplexor för att välja A/S signal mellan tecken biten Z i framåtrotation eller Yi i bakåtrotation. Det krävs bara en extra (M+1)/2 CLB. Men trots allt så försämrar det prestanda något p.g.a. extra routingfördröjning. Den resulterande kritiska vägen ges av: T p ( T = T BYP + T [7.8 + t CKO 1,17 net + t NET + t 1,17 net ) + T + T SUM ILO = + t (2N + M + 1) f, M + 1 net (2N + M + 1) f, M + 1 net + T ASCY + ( N 4) / ] ns + ( N 4) / 2 (3.6) 3.4 Redundant CORDIC på FPGA För att kunna lösa problemet med redundant aritmetik baserad CORDIC, har flera metoder föreslagits. Alla dessa förslag behåller skalfaktorn konstant. De har blivit klassificerade i tre grupper: (i) sådana som baseras på uppskattning av tecknet, (ii) differential CORDIC-algoritm och (iii) de som baseras på föreberäkning av riktningen av mikrorotationerna. Här nedan följer en ytlig genomgång av de tre olika metoderna, för en detaljerad genomgång rekommenderas [9]. 15

25 Uppskattning av tecken Flera metorder utför uppskattning på tecknet genom att utforska några av värdena. Dessa är: Double Rotation CORDIC [12]. Correcting Rotation CORDIC ([12] för framåtrotation och [13] för bakåtrotation). Householder [14-16] Bland dessa är Correcting Rotation CORDIC den enklaste att implementera. Uppsättningen av ekvationer är inte samma för alla iterationer i denna metod. De andra metoderna för uppskattning av tecken, har mer avancerade ekvationer vilket leder till att en större area användes och den får en lägre throughput Differential CORDIC (DCORDIC) Differential CORDIC [17] är en redundant aritmetik baserad metod som behåller en konstant skalfaktor, utan att behöva extra rotationer. I DCORDIC väljs riktningen för mikrorotationen på så sätt att den återstående rotationsvinkeln i framåtrotation-moden och Y i variabeln i bakåtrotation-moden alltid minskas. Målet med denna metod är MSDF beräkningen av alla involverade operationer Pre-Computed CORDIC (P-CORDIC) En annan metod att utföra CORDIC-algoritmen på är att direkt beräkna riktningen för mikrorotationen utan iterationer. I [18,19] uppnås sambandet mellan riktningen, mikrorotationen och inputvinkeln för framåtrotationsmoden. Sambandet mellan X- och Y-ingången i bakåtrotationsmoden uppnås i [18]. Denna metod har uteslutits för FPGA design då dess implementering kräver två MSDF multiplikationer och en MSDF addition. 16

26

27 Digitala Filter Det finns olika sätt att specificera digitala filter[20]. Exempel på detta är en klass av processer som kallas all-pass. De är designade till att ha en flat magnitudkaraktäristik men har även en faskaraktäristik som varierar med frekvensen i vissa fall. Många designer är framtagna för att kunna lösa olika problem, som att till exempel kunna se ett specifikt impulssvar eller stegsvar. Impulssvaret är den term som bäst beskriver ett systems egenskaper medan stegsvaret inte är lika unikt i det syftet. De mest förekommande digitala filtren är Linear Time-Invariant (LTI) filter. Ett LTI påverkas av sin in-signal genom en process som kallas linjär faltning, som betecknas av f*x där f är filtrets impulssvar. Den generella formeln för ekvationen till en godtycklig LTI process är: N K = 0 k M a y[ n k] = b x[ n k] (4.1) k= 0 k 4.2 Icke-rekursiva filter I ett icke-rekursivt filter så beror utsignalen endast på nuvarande eller senaste in-signal. Differentialekvationen för ett sådant filter ser ut som nedan M y[ n] = b x[ n k] (4.2) k= 0 k Detta filter har ingen återkoppling av utsignalen så summan skickas ut direkt på utgången. Koefficienterna b k är helt enkelt lika med successiva termer i filtrets impulssvar. FIR filter är att föredra när antalet koefficienter måste vara ändligt. Konsten att designa ett icke-rekursivt filter är att uppnå ett acceptabelt utförande av filtret med så få koefficienter som möjligt. Detta gör filtren mycket långsammare än rekursiva designer. Det finns dock fördelar med ickerekursiva designer till exempel är filtren väldigt stabila, eftersom överföringsfunktionen är bara specificerad i z-planets nollor. Eftersom icke-rekursiva filter har ändligt impulssvar, gör det att filtren får en idealisk linjär faskaraktäristik som är ekvivalent med tidsfördröjningen av alla 18

28 frekvenskomponenter som passerar filtren. Ett exempel på ett pulssvar är till exempel funktionen δ[n] som blir 1 endast då n=0 alla andra n ger δ[n]=0. Det ter sig så att om pulssvaret är känt och en insignal är given så kan utsignalen beräknas med hjälp av faltning. 19

29

30 Design av FIR-filter FIR filter spelar en betydande roll för design av diskreta tidssystem[21]. Till skillnad från Infinite Impulse Response (IIR) filter så kan dessa filter designas till att vara slumpmässiga och ha exakt linjär fas. FIR filter kan implementeras med hjälp av Discrete Fourier Transform (DFT). Det finns flertalet olika metoder för att designa FIR filter som till exempel fönstermetoden. 5.1 Fönstermetoder Fönstermetoden är en av de äldsta och enklaste metoderna för att designa ett FIR filter, den är även en av de bästa. Fönster kan användas till att designa FIR filter av vilken storlek som helst. Vidare så kan det med fönster skapas filter med linjär eller icke-linjär faskaraktäristik och med reellt eller komplext impulssvar. Fönstermetoden är ett exempel på en tidsdomän teknik. Den väljer filtrets impulssvar h[n] och approximerar ett idealiskt impulssvar i[n]. 5.2 Frekvensdomän design Andra filtermetoder är frekvensdomän designalgoritmer. Dessa väljer filtrets impulssvar så att filtrets frekvenssvar approximerar ett idealiskt frekvenssvar jw I( e ). Det här menas att när specifikationen är given på det här viset måste den inversa DTFT användas först för att utvärdera i[n]. Impulssvaret h[n] bestäms genom att multiplicera det idealiska impulssvaret med en N-punkters fönstersekvens, w[n]: h [ n] = i[ n] w[ n] (5.1) Resultatet är ett filter med längden N. 21

31 Faltning En annan metod som kan tillämpas för att designa FIR filter är faltning. Kort sagt är faltning en matematisk operation som inom signalbehandling används till exempel när linjära filter appliceras. Ett system beskrivs ofta med differentialekvationer [23], dessa kan vara svåra att formulera. I stället för att använda metoden med differentialekvationer när utsignalen från ett system ska bestämmas, kan faltningsmetoden utnyttjas. Denna metod innebär följande: En enhetspuls kan används som insignal, betecknad δ(t) eller δ[n] till ett okänt system (ett system sägs vara okänt då det inte har några formulerade differentialekvationer). Detta system kommer då att svara med en utsignal som kallas för impulssvaret h(t) eller h[n] för den tidsdiskreta varianten. Impulssvaret ger en bra beskrivning av hela systemet. Fortsättningsvis kan utsignalen y(t) eller y[n] från ett system beräknas med hjälp falting mellan impulssvaret h(t) och insignalen x(t) eller h[n] och x[n]. Faltning kan göras i två varianter, tidskontinuerlig eller tidsdiskret. i= 0 y [ n] = x[ i]* h[ n i],n 0 tidsdiskret variant (5.2) 0 y ( t) = x( λ)* h( t λ) dλ,t 0 tidskontinuerlig variant (5.3) Den tidsdiskreta varianten är tillämpad i detta exjobb, vilken kan förklaras på följande sätt: I en tidsdiskret signal kan varje sampelvärde klippas ut från hela signalen. Detta genom att signalen multipliceras med en förskjuten impuls, figur 5.2. En impuls ger som svar ett impulssvar, oavsett om den är förskjuten eller inte. 22

32 Insignal till Systemet δ[n] δ[n-1] δ[n-2] δ[n-i] Utsignal från systemet h[n] h[n-1] h[n-2] h[n-i] Tabell 5.1 Om impulsen till exempel skulle vara förskjuten 3 steg åt höger, det vill säga δ[n-3] så kommer impulssvaret att fördröjas med 3 steg åt höger. En multiplicering av termerna i vänstra kolumnen av tabell 5.1 med till exempel en konstant, måste på grund av att systemet är linjärt, motsvaras av en multiplicering i högra kolumnen med samma konstant Hela insignalen x alltså signalens samtliga sampels fås genom att summera alla sampelvärden multiplicerade med förskjutna impulser där av formeln, i= 0 x[ n] = x[ i]* δ [ n i] (5.4) Vidare fås utsignalen y genom att summera alla impulssvar multiplicerade med konstanter det vill säga sampelvärdena. Det gör att den slutliga faltningsformlen blir, y[ n] = i= 0 x[ i]* h[ n i] på grund av linjärt system. (5.5) Faltningsformelns index i börjar vid i=0 och sträcker sig till ett ändligt värde i =N i kausala system. 23

33 För att visa på hur den tidsdiskreta faltningsformeln fungerar så illustreras ett exempel nedan. Signalen x(i) i figur 5.1 faltas med impulssvaret h(n) i figur 5.2 då erhålls resultatet enligt tabell Figur 5.1 Visar en signal x(i) med 3 stycken sampelvärden alla med värde Figur 5.2 Visar ett impulssvar h(n) med 4 stycken sampels med värdet 1. 24

34 Antal(i) Insignal x(i) Impulssvaret h(n) Utsignal y(n) Tabell 5.2 Resultatet av faltningen mellan x(i) och h(n). 25

35

36 XSA-50 kretskort XSA-50 kortet är ett avancerat kretskort med många utvecklings möjligheter. I detta kapitel beskrivs kortets olika funktioner. Se figur 6.1 för en översiktsbild. Figur 6.1 Översiktsbild av XSA-50 kortet ur [24]. För en detaljerad genomgång av XSA-50 kortet rekommenderas [24]. I manualen till kortet [24] så finns det även ett schema över XSA-50 och en presentation av alla pinnar, samt vad de är kopplade till på kortet. Där finns även en beskrivning av hur man laddar ner program till kortet. 6.1 Koppla kortet till PC Kortet kan kopplas till en PC genom parallell in-/utgångs porten. Detta är användbart då kortet ska programmeras med det egna programmet, eller då SDRAM:en ska fyllas med värden. 6.2 VGA monitor till XSA-50 Kortet har även möjligheten att koppla in en VGA monitor. Detta kan göras då resultatet ska presenteras direkt på en monitor, utan koppling till en PC. 27

37 PS/2 port På kortet finns det en PS/2 ingångs port som kan användas till att koppla in en mus eller ett tangentbord. Programmering av ett mus- eller tangentbordsinterface måste göras för att kunna behandla informationen som tas emot från tangentbordet eller musen MHz oscillator Kortet innehåller även en intern 100MHz oscillator. Denna kan ställas om från 100 MHz ner till 48.7 KHz. Det går även att koppla in en extern oscillator på kortet på pin 64. Den externa oscillatorn får dock inte ha en högre frekvens än 50 MHz. När det har kopplats in en extern oscillator så tar den över funktionen av den interna. 6.5 Synkron DRAM XSA-50 kortet innehåller även en SDRAM som kan användas till att spara eller hämta in information till programmet som man har skapat. Se bilaga H för en steg för steg genomgång av detta. SDRAM:en är organiserad på detta sätt: Figur 6.2 ur [24]. För att se hur SDRAM:en är kopplad till FPGA:n se figur 6.3 på nästa sida. 28

38 Figur 6.3 ur [24]. För tillfället så används inte pin 133 på SDRAM:en men den kan komma att användas i framtiden. 6.6 Flash RAM Kortet innehåller även en Flash RAM. För en större förståelse av Flash RAM:en rekommenderas läsning av [24] och [25]. 6.7 Sju-Segment LED På kortet finns det en sju-segments LED display se figuren nedan. Displayen är aktivt-hög det vill säga att den visar ett tecken då den är logiskt hög. Figur 6.4 ur [24]. 29

39 DIP Switchar Kortet innehåller även fyra stycken switchar, se figur 6.1. för mer information om switcharna rekommenderas läsning av [24]. 6.9 Pushbutton Pushbutton som finns på kortet delar samma pin som PS/2 data. Se figuren nedan Figur 6.5 ur [24]. Detta gör att man inte kan använda PS/2 ingången samtidigt som man använder pushbutton. 30

40

41 Projektbeskrivning I detta kapitel presenteras projekten som har utförts. 7.1 Projektbeskrivning för CORDIC Målet med CORIC delen av projektet var att implementera en av CORDICmoderna på FPGA kortet XSA-50. Detta skulle sedan resultera i ett häfte (bilaga H) som studenter senare ska kunna använda för självstudier. För att göra projektet mer användbart än bara vid studier av CORDIC-algoritmen så användes även SDRAM funktionen på kortet. Detta för att studenter ska kunna följa vårat arbete för att implementera SDRAM i egna framtida projekt. Valet av CORDIC-mode föll på framåtrotation eller rotationmode som det även kallas. Detta för att förenkla förståelse av annan studiematerial som kommer att tillgängliggöras för studenterna under kursens gång. För att implementera algoritmen med hjälp av den interna SDRAM:en så utgicks det ifrån ett exempel från XESS Corporations hemsida [26]. Deras exempel fungerade på sådant sätt att den skapar en slumpgenererad sifferkombination. Denna kombination sparas sedan på SDRAM:en, därefter så läses värdena tillbaka från SDRAM:en och jämförs med de framslumpade värdena. Om sifferkombinationen inte stämmer med varandra så har något fel skett vid antingen skrivningen eller läsningen till/från SDRAM:en. Detta indikeras då på LED displayen. Deras stomme [26] användes till detta projekt. Men istället för att skapa en slumpgenerator som spara siffror i minnen, så skapades CORDICframåtrotation. Y- och Z-värdena är satta i förväg i programmet. Det vill säga att dessa värden är konstanter. Men x-värdet skapas externt igenom ett Matlab program som har konstruerats specifikt för detta projekt. Z-värdet måste ligga i intervallet +45 till -45. Om man ska använda ett negativt värde på z så måste man dock räkna ut tvåkomplementet Skapa HEX fil Det första som måste göras är en HEX fil med det x-värdet som ska matas in i SDRAM:en. HEX filen skapades med hjälp av ett Matlabprogram där man får skriva in det x-värde som man vill jobba med. Programmet beräknar då ut checksumman och sparar det i en HEX fil. Denna fil kan sedan laddas ner i SDRAM:en på XSA-50 kortet. Se bilaga F för Matlabkoden och bilaga H för att se steg för steg utförande av detta. 32

42 Utföra CORDIC algoritm på kortet Det första som händer när programmet utförs är att den läser in x-värdet som tidigare har sparats i SDRAM:en. Värdet sparas på den först minnesplatsen på SDRAM:en. Med hjälp av detta värde utförs CORDIC algoritmen. Sedan sparas det uträknade värdet tillbaka på SDRAM:en. Det sparas på den andra adress raden i SDRAM:en. När uträkningen är färdig så visar LED displayen på kortet 0. Då kan laddning av det nya uträknade värdet ske till en PC för att verifieras Verifierng av CORDIC algoritmen För att verifiera de värden som har beräknats fram på kortet utfördes simulering med hjälp av ett program skapat i Matlab. Se bilaga E för Matlabkoden. Nedan i tabell 7.1 visas resultatet av simuleringar utförda i Matlab och de beräknade värden utförda av programmet på XSA-50 kortet. x-värde y-värde z-värde Resultat med XSA-50 Resultat med Matlab FFFB FFFC FFFD Tabell 7.1 Resultat av värden på XSA-50 kortet med programmet som har tagits fram för detta projekt och simulering med hjälp av Matlab. 1)Negativa tal skrivet på HEX form. När ett tal blir negativt så representeras det av tvåkomplementet av talet. Till exempel när det blir 4 så skrivs det istället FFFB det vill säga FFFF 4. Ur tabellen kan man se att när man utför CORDIC algoritmen på XSA-50 kortet så får man en del felaktigheter på grund av avrundningsfel. Men detta är inte 33

43 den enda felkällan. När man utför simulering i Matlab så har man möjlighet att utföra många fler iterationer och därmed uppnå en mycket högre precision i beräkningarna. Men detta är inte möjligt då man utför algoritmen i en hårdvarumiljö. I Matlabsimulationen utförs det 15 iterationer medan det bara är 5 iterationer i hårdvaran. För VHDL kod se bilaga B. För en mer detaljera genomgång av hur experimenten har utförts rekommenderas läsning av bilaga H. 34

44 Projektbeskrivning FIR Filter Detta avsnitt har för avsikt att ge en bra inblick i hur skapandet av FIR filtret gick till, från ide till färdig konstruktion. Projektet inleddes med att bestämma vilken metod som skulle tillämpas vid beräkning av filtret, metoden som valdes var Falting. Därefter gjordes en studie i hur filtrets överföringsfunktion skulle se ut. Inspiration hämtades från [22] som lade grunden till funktionen. Detta gjordes för att knyta an till exjobbets mål, att underlätta självstudier för studenter i detta ämne. Filtrets överföringsfunktion kom att bli enligt figur 7.1 nedan: Figur 7.1 FIR filter. I figuren 7.1 syns det att filtret har 3 stycken koefficienter h[2], h[1] och h[0]. Antalet är orelevant eftersom tillvägagångssättet vid konstruktion av större filter med flera koefficienter är detsamma. Filtret fungerar på så sätt att insignalen x[n] sätts till godtyckliga värden som matas in i systemet. Sedan multipliceras x[n] med den 1:a filterkoefficienten 1 h[0] och resultatet adderas med z och läggs ut som utsignalen y[n]. Efter det multipliceras x[n] med den 2:a koefficienten h[1] och resultatet summeras ihop 1 med det tidigare värdet i z. Till sist så multipliceras x[n] med den 3:e 1 koefficienten h[2] och det värdet sparas i z. Ett exempel visas i tabellen 7.2. Insignal x[n] Koefficienter h[n] Utsignal y[n] 1,0,0,0 h[2]=1, h[1]=2, h[0]=3 3,2,1,0 Tabell 7.2 Visar ett beräkningsexempel av FIR konstruktionen i figur

45 Det framtagna filtret simulerades i Matlab och implementerades på hårdvaran för att se att det överrensstämmer med teorin. Vid simulering så testades värden mellan 0-9 på insignalen x[n]. Denna begränsning av insignalen beror på tangentbordsavkodningen. Filterkoefficienterna är fasta i detta fall men kan anta vilka heltal som helst. Resultatet av simuleringen visas i tabell 7.3 och implementeringen på hårdvara i tabell 7.4. Insignal x[n] Koefficienter h[n] Utsignal y[n] 1,0,0 h[2]=1, h[1]=2, h[0]=1 1,2,1 2,0,0 h[2]=1, h[1]=2, h[0]=1 2,4,2 3,0,0 h[2]=1, h[1]=2, h[0]=1 3,6,3 4,0,0 h[2]=1, h[1]=2, h[0]=1 4,8,4 5,0,0 h[2]=1, h[1]=2, h[0]=1 5,10,5 6,0,0 h[2]=1, h[1]=2, h[0]=1 6,12,6 7,0,0 h[2]=1, h[1]=2, h[0]=1 7,14,7 8,0,0 h[2]=1, h[1]=2, h[0]=1 8,16,8 9,0,0 h[2]=1, h[1]=2, h[0]=1 9,18,9 Tabell 7.3 Simulering i Matlab. Resultatet av testerna på hårdvaran och simuleringarna i Matlab ser ut på olika sätt. Till exempel när insignal till filtret är 1 så blir utsignalen i Matlab 1,2,1 medan den på hårdvaran blir 4. Detta är för att utsignalen från hårdvarna visar summan av multiplikationerna mellan insignal x[n] och filterkoefficienterna h[n]. Medan den i Matlab visar varje multiplikation var för sig. För att se hur hårdvaruutförandet är uppkopplat och fungerar se bilaga C. 36

46 Insignal x[n] Koefficienter h[n] Utsignal y[n] 1 h[2]=1, h[1]=2, h[0]=1 4 2 h[2]=1, h[1]=2, h[0]=1 8 3 h[2]=1, h[1]=2, h[0]= h[2]=1, h[1]=2, h[0]= h[2]=1, h[1]=2, h[0]= h[2]=1, h[1]=2, h[0]= h[2]=1, h[1]=2, h[0]= h[2]=1, h[1]=2, h[0]= h[2]=1, h[1]=2, h[0]=1 36 Tabell 7.4 Utförande på XSA-50 kortet. Efter utförda simuleringar så startade projektet med att koda konstruktionen i programmet Xillinx ISE 7.1i. Programmet byggdes upp i blockform för att underlätta vid exekveringen/simulering samt vid felsökning. Se avsnitt 7.3 för beskrivning av blocken. När programkoden var färdigställd så generades en.bit fil som laddades ner till XSA-50 kortet. Därefter provkördes filtret genom att mata in värden med det inkopplade tangentbordet via PS/2 porten på kortet [27]. För att se koden till tangentbordsavkodningen se bilaga A. Ett oscilloskop kopplades in för att kunna avläsa utsignalen från filtret. För en mer detaljerad genomgång av utförandet av experimentet rekommenderas läsning av bilaga C. Som stomme till tangentbordsavkodningen har [27] används. 7.3 Blockstrukturen i FIR Filtret I detta avsnitt beskrivs de olika blocken i FIR filtret. Systemet fungerar på så sätt att inmatning av data sker med hjälp av ett tangentbord. Denna data behandlas sedan i filtret för att sedan läggas som en utsignal. Utsignalen kan sedan användas på olika sätt, till exempel genom att sparas och presentera värdena på en dator eller som i detta fall mätas upp på ett oscilloskop. Hela koden är uppdelad i 8 stycken block. Nedan beskrivs de var för sig. Alla block är kopplade till samma klockpuls och har samma reset-signal. Koden presenteras i bilaga A. 37

47 Ps2_kbd Här sker inladdningen av värden från tangentbordet som sedan skickas vidare till blocket Keyb_scan för avkodningen. Figur Keyb_scan I denna modul sker avkodningen av tangentbordet. När användaren matar in ett värde mellan 0-9 med tangentbordet så läggs det på ingången scancode. Är signalen rdy hög så avkodas detta värde och läggs på utgången x_ut. X_ut blir det nya x-invärdet i loadbuff. Figur

48 Loadbuff Detta block har till uppgift att ladda X-värden och sätta värden på filterkoefficienterna. X-värdet som har laddats in från keyb_scan modulen skickas sedan vidare när loadsignalen är låg. Detta värde skickas vidare till multiplier blocken med utsignalen x_ut. Ready signalen är kopplad till load signalen på samtliga multipliers. Figur One_pulse Detta block genererar en puls i taget. Detta för att undvika kontaktstudsar då man använder switchboarden. Figur

49 Filter_muls Det finns tre sådana block och i dessa sker multiplikationerna av filterkoefficienterna och insignal. När signalen load är låg så laddas x_in och c_in i x- respektive c-registret. Sedan sker multiplikationen mellan dessa värden och produkten läggs på utsignalen y1. När en multiplikation är klar så skickas en ready signal. Figur Adder Ready signalen i detta block är sammankopplad med ready signalen från multiplier modulen. När denna signal blir låg så sparas det tidigare inkommande värdet z_in i register s. Efter att detta har inträffats så adderas värdet i register s och in_add. Efter denna addition läggs summan ut på utsignalen ut. Figur

50 Adder2 Adder2 fungerar på liknade sätt som adder men den har ingen ready signal. Det gör att ett inkommande värde(z_in) sparas i register s utan att någon ready signal sätts. Sedan läggs produkten från multiplier på in_add och adderas till sist med värdet i s och läggs på utsignalen ut. Figur Store I detta block skall produkten av x_in. När signalen ready är låg så sparas det inkommande värdet från in_data i register z. Därefter så läggs värdet ut på utsignalen ut_data. Figur

51

52 Avslutning I detta avsnitt diskuteras arbetet och resultaten redovisas. 8.1 Resultat CORDIC Simuleringarna utförda i Matlab skilde sig jämfört med resultaten från utförandet på XSA-50 kortet. Andledningen till detta är att hårdvaruutförandet av CORDIC-framåtrotationen bara kan utföra ett fåtal iterationer, så kan det uppstå vissa felaktigheter. De uppmätta värdena från hårdvaruutförandet av programmet kan även skilja sig från de simulerade värdena på grund av avrundningsfel. Detta beror på att man i hårdvaran endast kan jobba med heltal. Matlabprogram som har skrivits skapar den nödvändiga HEX filen, som behövs för att ladda ner det valda x-värdet på SDRAM:en. Detta underlättar då man slipper räkna ut checksumovärdena som är nödvändiga. Vidare har det skapts en manual som kan användas vid självstudier av bland annat implementering av CORDIC-algoritmen och SDRAM funktionen på XSA-50 kortet. 8.2 Resultat FIR Efter att simuleringsresultatet i Matlab har jämförts med det på hårdvaran så kunde det konstateras att implementeringen var lyckad. Filtret fungerade enligt förutsättningarna. Utsignalen y[n] visades på olika sätt vid simulering respektive hårdvaruimplementering. I Matlab visades multiplikationerna av insignalen och filterkoefficienterna var för sig. Medan det på hårdvaran är summan av samtliga multiplikationer som visas. Vidare har det skapts en manual som kan användas vid självstudier av bland annat implementering av FIR-filter och tangentbordsfunktionen på XSA-50 kortet. 8.3 Problem Ett problem som stöttes på under projektet var att vissa av XSA-korten hade felaktiga SDRAM minnen. Det var tidskrävande att upptäcka detta fel. Ytterligare problem uppkom vid användningen av switchbrädan. När det skulle genereras en signal uppträdde det kontaktstudsar. Problemet fick en mjukvarulösning, se

53 Diskussion CORDIC-algoritmen är väl anpassad till att användas på DSP tillämpningar. Då den till största delen handlar om addition och skiftoperationer. I detta arbete så har algoritmen anpassats till att fungerar med XSA-50 kortet. Detta har fungerat väl då laborationskortet har många funktioner som kan utnyttjas. I CORDIC tillämpningen så används den inbyggda SDRAM:en. Genom att utgå från detta projekt kan man lätt använda SDRAM till egna projekt och tillämpningar. Vid konstruktionen av FIR filtret så utfördes simulation i Matlab, detta underlättade vidare arbete med konstruktionen på XSA-50 kortet. Blockkonstruktion tillämpades med stor fördel. Detta gjorde det mycket enklare att skapa en bra översikt över de olika delarna i filtret. Felsökning av FIR filtret underlättades avsevärt, då varje block kunde simuleras var för sig. För denna del av projektet har PS/2 ingången använts för inläsning ifrån tangentbordet. Detta projekt kan vara en utgångspunkt för att anpassa tangentbordsinläsning till egna tillämpningar. 44

54

55 Terminologi Akrynom CLB CORDIC CS DCORDIC DFT DSP DTFT FA FFT FIR FPGA IIR IOB LSB LTI LUT MSB MSDF P-CORDIC SDRAM VHDL VHSIC Förklaring Configurable Logic Block COordinate Rotation DIgital Computer Carry Signal Differential CORDIC Discrete Fourier Transform Digital Signal Processor Discrete Time Fourier Transform Full Adder Fast Fourier Transform Finite Impulse Response Field Programmable Gate Array Infinite Impulse Response Input Output Block Least Significant Bit Linear Time Invariant Look-Up Tables Most Significant Bit Most Significant Digit First Pre-Computed CORDIC Synchronous Dynamic Random Access Memory VHSIC Hardware Description Language Very High Speed Integrated Circuits 46

56 VLSI Very Large Scale Integrated Circuit 47

57

58 Referenser 1. J.E. Volder, "The CORDIC Trigonometric Computing Technique," IRE Trans Electronic Computers, vol8, pp , Sept J. S. Walther, "A Unified Algorithm for Elementary Functions," Proc. Spring. Joint Computer Conf., pp , R. Andraka, A Survey of CORDIC Algorithms for FPGAs, in Proceedings of the 1998 ACM/SIGDA Sixth International Symposium on Field Programmable Gate Arrays (FPGA 98),Monterey, CA, Feb , 1998, pp J.E. Volder, The Birth of CORDIC, D. Timmermann (1990): CORDIC-Algorithmen, Architekturen und monolithische Realisierungen mit Anwendungen in der Bildverarbeitung, Ph.D. thesis, VDI/Springer, Düsseldorf, Vol. 10, No H. Hahn (1991): Untersuchung und Integration von Berechnungsverfahren elementarer Funktionen auf CORDIC-Basis mit Anwendungen in der adaptiven Signalverarbeitung, Ph.D. thesis, VDI/Springer, Düsseldorf, Vol. 9, No U. Meyer-Bäse: The Use of Complex Algorithm in the Realization of Universal Sampling Receiver Using FPGAs (in German) (VDI/Springer, Düsseldorf, 1995), Vol. 10, No.404, 215 pages 8. U. Meyer-Bäse, A. Meyer-Bäse, W. Hilberg: COordinate Rotation DIgital Computer (CORDIC) Synthesis for FPGA, Lecture Notes in Computer Science 849, (Springer, Heidelberg, 1994) 9. J. Valls, M. Kuhlmann, K.K. Parhi, Evaluation of CORDIC Algorithms for FPGA Design, Journal of VLSI Signal Processing 32, pp , H. Dawid and H. Meyr, The Differential CORDIC Algorithm: Constant Scale Factor Redundant Implementation without Correcting Iterations, IEEE Transactions on Computers, vol. 45, no. 3, J. Moran, I. Rios, and J. Meneses, Signed Digit Arithmetic on FPGAs, in More FPGAs, pp , W.R. Moore and W. Luk (Eds.), Abindon EE&CS books,

Approximation av funktioner

Approximation av funktioner Vetenskapliga beräkningar III 8 Kapitel Approximation av funktioner Vi skall nu övergå till att beskriva, hur man i praktiken numeriskt beräknar funktioner I allmänhet kan inte ens elementära funktioner

Läs mer

Analys av anslutningsresor till Arlanda

Analys av anslutningsresor till Arlanda LiU-ITN-TEK-A--11/058--SE Analys av anslutningsresor till Arlanda Sara Johansson 2011-09-16 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik

Läs mer

FÖRELÄSNING 13: Analoga o p. 1 Digitala filter. Kausalitet. Stabilitet. Ex) på användning av analoga p. 2 filter = tidskontinuerliga filter

FÖRELÄSNING 13: Analoga o p. 1 Digitala filter. Kausalitet. Stabilitet. Ex) på användning av analoga p. 2 filter = tidskontinuerliga filter FÖRELÄSNING 3: Analoga o p. Digitala filter. Kausalitet. Stabilitet. Analoga filter Ideala filter Butterworthfilter (kursivt här, kommer inte på tentan, men ganska bra för förståelsen) Kausalitet t oh

Läs mer

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM Innehåll Designflöde Översikt av integrerade kretsar Motivation Hardware Description Language CAD-verktyg 1 DESIGNFLÖDE FÖR DIGITALA

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2010-08-27 Skrivtid 9.00-14.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Per Lindgren Tel 070 376 8150 Tillåtna

Läs mer

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. ville.jalkanen@tfe.umu.se 1

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. ville.jalkanen@tfe.umu.se 1 AD-DA-omvandlare Mätteknik Ville Jalkanen ville.jalkanen@tfe.umu.se Inledning Analog-digital (AD)-omvandling Digital-analog (DA)-omvandling Varför AD-omvandling? analog, tidskontinuerlig signal Givare/

Läs mer

Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl 8.30 12.30

Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl 8.30 12.30 Tentamen i ESS 00 Signaler och System E3 V-sektionen, 6 augusti 2005, kl 8.30 2.30 Examinator: Mats Viberg Tentamen består av 5 uppgifter som vardera ger maximalt 0 p. För godkänd tentamen fordras ca 20

Läs mer

(2B1560, 6B2911) HT08

(2B1560, 6B2911) HT08 Royal Institute of Technology, KTH, Kista School of Information and Communication Technology, ICT Department of Electronics, Computer and Software, ECS Digital Design, IE1204 (2B1560, 6B2911) HT08 OBS!

Läs mer

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV Introduktionen beskriver grunderna för att använda programvaran Xilinx ISE WebPack 6.2.03 tillsammans med en CPLD (Complex Programmable Logic

Läs mer

Elsäkerhetsanalys samt dokumentation av elinstallationer

Elsäkerhetsanalys samt dokumentation av elinstallationer LiU-ITN-TEK-G--13/059--SE Elsäkerhetsanalys samt dokumentation av elinstallationer Emanuel Kopkin 2013-06-20 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

Läs mer

Mätningar med avancerade metoder

Mätningar med avancerade metoder Svante Granqvist 2008-11-12 13:41 Laboration i DT2420/DT242V Högtalarkonstruktion Mätningar på högtalare med avancerade metoder Med datorerna och signalprocessningens intåg har det utvecklats nya effektivare

Läs mer

Innehåll. Innehåll. sida i

Innehåll. Innehåll. sida i 1 Introduktion... 1.1 1.1 Kompendiestruktur... 1.1 1.2 Inledning... 1.1 1.3 Analogt/digitalt eller tidskontinuerligt/tidsdiskret... 1.2 1.4 Konventioner... 1.3 1.5 Varför digital signalbehandling?... 1.4

Läs mer

Analoga och Digitala Signaler. Analogt och Digitalt. Analogt. Digitalt. Analogt få komponenter låg effektförbrukning

Analoga och Digitala Signaler. Analogt och Digitalt. Analogt. Digitalt. Analogt få komponenter låg effektförbrukning Analoga och Digitala Signaler Analogt och Digitalt Analogt 00000000000000000000000000000000000 t Digitalt Analogt kontra Digitalt Analogt å komponenter låg eektörbrukning verkliga signaler Digitalt Hög

Läs mer

Yrkeshögskolan Novia Utbildningsprogrammet i elektroteknik

Yrkeshögskolan Novia Utbildningsprogrammet i elektroteknik Grunderna i programmeringsteknik 1. Vad är Känna till nämnda programmering, begrepp. Kunna kompilera högnivå språk, och köra program i det i kompilering, kursen använda tolkning, virtuella programmeringsspråket.

Läs mer

AD-/DA-omvandlare. Digitala signaler, Sampling och Sample-Hold

AD-/DA-omvandlare. Digitala signaler, Sampling och Sample-Hold AD-/DA-omvandlare Digitala signaler, Sampling och Sample-Hold Analoga och Digitala Signaler Analogt Digitalt 001100101010100000111110000100101010001011100010001000100 t Analogt - Digitalt Analogt få komponenter

Läs mer

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet Datorarkitektur - en inledning Organisation av datorsystem: olika abstraktionsnivåer System S den mest abstrakta synen på systemet A B C Ett högnivåperspektiv på systemet a1 b1 c1 a2 b3 b2 c2 c3 En mera

Läs mer

Frekvensplanet och Bode-diagram. Frekvensanalys

Frekvensplanet och Bode-diagram. Frekvensanalys Frekvensplanet och Bode-diagram Frekvensanalys Signaler Allt inom elektronik går ut på att manipulera signaler genom signalbehandling (Signal Processing). Analog signalbehandling Kretsteori: Nod-analys,

Läs mer

Tentamen i Digitalteknik, EIT020

Tentamen i Digitalteknik, EIT020 Elektro- och informationsteknik Tentamen i Digitalteknik, EIT020 4 april 2013, kl 14-19 Skriv namn och årskurs på alla papper. Börja en ny lösning på ett nytt papper. Använd bara en sida av pappret. Lösningarna

Läs mer

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation Projekt 2 Möjligheter/Problem med 2-dimensionella mätdata Uppstart: Se planen (kursens hemsida) Etapp 1 Mätdata i 2 dimensioner behöver utredas/signalbehandlas

Läs mer

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Halmstad University School of Information Science, Computer and Electrical Engineering Tomas Nordström, CC-lab TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Datum: 2012-05- 23 Tid och plats: 9:00 13:00 i

Läs mer

Styrteknik : Programmering med IEC 61131-3. Styrteknik

Styrteknik : Programmering med IEC 61131-3. Styrteknik PLC1B:1 Styrteknik Allmänt om styrsystem (PLC) Grundinstruktioner Introduktion av GX IEC Developer Benämningar Minne SET- och RST-instruktioner PLC1B:2 PLC står för Programmable Logical Controller Kom

Läs mer

Linjär algebra med tillämpningar, lab 1

Linjär algebra med tillämpningar, lab 1 Linjär algebra med tillämpningar, lab 1 Innehåll Per Jönsson Fakulteten för Teknik och Samhälle, 2013 Uppgifterna i denna laboration täcker kapitel 1-3 i läroboken. Läs igenom motsvarande kapitel. Sitt

Läs mer

TSBB16 Datorövning A Samplade signaler Faltning

TSBB16 Datorövning A Samplade signaler Faltning Name: ID number: Passed: LiU-ID: Date: TSBB16 Datorövning A Samplade signaler Faltning Utvecklad av Klas Nordberg Computer Vision Laboratory, Linköping University, Sweden 24 augusti 2015 Introduktion Denna

Läs mer

IE1204/IE1205 Digital Design

IE1204/IE1205 Digital Design TENTAMEN IE1204/IE1205 Digital Design 2012-12-13, 09.00-13.00 Inga hjälpmedel är tillåtna! Hjälpmedel Tentamen består av tre delar med sammanlagd tolv uppgifter, och totalt 30 poäng. Del A1 (Analys) innehåller

Läs mer

Kognitionsvetenskap C, HT-04 Mental Rotation

Kognitionsvetenskap C, HT-04 Mental Rotation Umeå Universitet 041025 Kognitionsvetenskap C, HT-04 Mental Rotation Grupp 3: Christina Grahn, dit01cgn@cs.umu.se Dan Kindeborg, di01dkg@cs.umu.se David Linder, c01dlr@cs.umu.se Frida Bergman, dit01fbn@cs.umu.se

Läs mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

Läs mer

7. Sampling och rekonstruktion av signaler

7. Sampling och rekonstruktion av signaler Arbetsmaterial 5, Signaler&System I, VT04/E.P. 7. Sampling och rekonstruktion av signaler (Se också Hj 8.1 3, OW 7.1 2) 7.1 Sampling och fouriertransformering Man säger att man samplar en signal x(t) vid

Läs mer

Signalbehandling Röstigenkänning

Signalbehandling Röstigenkänning L A B O R A T I O N S R A P P O R T Kurs: Klass: Datum: I ämnet Signalbehandling ISI019 Enk3 011211 Signalbehandling Röstigenkänning Jonas Lindström Martin Bergström INSTITUTIONEN I SKELLEFTEÅ Sida: 1

Läs mer

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2 Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2 Kursen avses ge dig kunskap om numeriska metoder, hur man kan använda dessa genom elementär programmering i MATLAB samt

Läs mer

Teori... SME118 - Mätteknik & Signalbehandling SME118. Johan Carlson 2. Teori... Dagens meny

Teori... SME118 - Mätteknik & Signalbehandling SME118. Johan Carlson 2. Teori... Dagens meny Tidigare har vi gått igenom Fourierserierepresentation av periodiska signaler och Fouriertransform av icke-periodiska signaler. Fourierserierepresentationen av x(t) ges av: där a k = 1 T + T a k e jkω

Läs mer

Lab 4: Digital transmission Redigerad av Niclas Wadströmer. Mål. Uppstart. Genomförande. TSEI67 Telekommunikation

Lab 4: Digital transmission Redigerad av Niclas Wadströmer. Mål. Uppstart. Genomförande. TSEI67 Telekommunikation TSEI67 Telekommunikation Lab 4: Digital transmission Redigerad av Niclas Wadströmer Mål Målet med laborationen är att bekanta sig med transmission av binära signaler. Det innebär att du efter laborationen

Läs mer

DIGITAL KOMMUNIKATION

DIGITAL KOMMUNIKATION EN KOR SAMMANFANING AV EORIN INOM DIGIAL KOMMUNIKAION Linjär kod En binär linjär kod kännetecknas av att summan av två kodord också är ett kodord. Ett specialfall är summan av ett kodord med sig själv

Läs mer

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Förbättra SNR i en digital TV-box genom översampling av A/D-omvandlare Examensarbete utfört i Elektroniksystem Vid Tekniska

Läs mer

Genetisk programmering i Othello

Genetisk programmering i Othello LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1

Läs mer

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia Konstruktion av en radiostyrd legobil Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia 1 1.Innehållsförtäckning Rapport Radiostyrd LEGO bil...1 1. Innehållsförtäckning...2 2.0 Inledning...3

Läs mer

TILLÄMPNINGAR INOM DATORTEKNIK

TILLÄMPNINGAR INOM DATORTEKNIK TILLÄMPNINGAR INOM DATORTEKNIK I detta kapitel skall vi titta lite närmare på några specifika tillämpningar inom datorteknik som har anknytning till El och Energiprogrammet. Om du som läser denna kurs

Läs mer

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1 Användarhandbok Trio Visit Web Trio Enterprise 4.1 COPYRIGHT NOTICE: No part of this document may be reproduced, distributed, stored in a retrieval system or translated into any language, including but

Läs mer

Liten MATLAB introduktion

Liten MATLAB introduktion Liten MATLAB introduktion Denna manual ger en kort sammanfattning av de viktigaste Matlab kommandon som behövs för att definiera överföringsfunktioner, bygga komplexa system och analysera dessa. Det förutsätts

Läs mer

Elektriska Kretsar. En fördjupning gjord av Philip Åhagen. Philip Åhagen 2009-12-03. Mälardalens Högskola Produktutveckling 3 2009/2010 KPP 039

Elektriska Kretsar. En fördjupning gjord av Philip Åhagen. Philip Åhagen 2009-12-03. Mälardalens Högskola Produktutveckling 3 2009/2010 KPP 039 Mälardalens Högskola Elektriska Kretsar En fördjupning gjord av Philip Åhagen Philip Åhagen 2009-12-03 Table of Contents Inledning... 3 Grundläggande ellära... 4 Spänning... 4 Ström... 4 Resistans... 4

Läs mer

Bildförbättring i spatial domänen (kap. 3) Bildförbättring (enhancement) Spatial domän. Operatorer. Tröskling (threshold) Gråskale-transformationer

Bildförbättring i spatial domänen (kap. 3) Bildförbättring (enhancement) Spatial domän. Operatorer. Tröskling (threshold) Gråskale-transformationer Bildförbättring i spatial domänen (kap. 3) Punktoperationer Gråskaletransformationer Logiska & aritmetiska operationer Filtrering Faltning Lågpassfilter Högpassfilter Bildförbättring (enhancement) Förbättra

Läs mer

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach Föreläsning 1: Intro till kursen och Kursens hemsida http://www.it.uu.se/edu/course/homepage/prog1/esvt10 Studentportalen http://www.studentportalen.uu.se Kursmaterial Kursbok Kursprogramvara Tips: Installera

Läs mer

Lokal studieplan Matematik 3 8 = 24. Centrum för tvåspråkighet Förberedelseklass

Lokal studieplan Matematik 3 8 = 24. Centrum för tvåspråkighet Förberedelseklass Lokal studieplan Matematik 3 8 = 24 Centrum för tvåspråkighet Förberedelseklass 1 Mål att sträva mot Skolan skall i sin undervisning i matematik sträva efter att eleven S11 utvecklar intresse för matematik

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Anpassningsbar applikationsstruktur för flerpunktsskärmar

Anpassningsbar applikationsstruktur för flerpunktsskärmar Datavetenskap Opponent(er): Rikard Boström Lars-Olof Moilanen Respondent(er): Mathias Andersson Henrik Bäck Anpassningsbar applikationsstruktur för flerpunktsskärmar Oppositionsrapport, C/D-nivå 2005:xx

Läs mer

SF1635, Signaler och system I

SF1635, Signaler och system I SF635, Signaler och system I Tentamen tisdagen 0--, kl 4 00 9 00 Hjälpmedel: BETA Mathematics Handbook Räknedosa utan program Formelsamling i Signalbehandling (rosa), Formelsamling för Kursen SF635 (ljusgrön)

Läs mer

Exempelsamling Assemblerprogrammering

Exempelsamling Assemblerprogrammering Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start

Läs mer

Kursplan för Matematik

Kursplan för Matematik Sida 1 av 5 Kursplan för Matematik Inrättad 2000-07 SKOLFS: 2000:135 Ämnets syfte och roll i utbildningen Grundskolan har till uppgift att hos eleven utveckla sådana kunskaper i matematik som behövs för

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i

Läs mer

Datorlaboration :: 1 Problembeskrivning ::

Datorlaboration :: 1 Problembeskrivning :: Datorlaboration :: Ett hyrbilsföretags problem Laborationen går ut på att lösa Labbuppgift 1 till 5. Laborationen redovisas individuellt genom att skicka laborationens Mathematicafil till Mikael Forsberg

Läs mer

Mathematical Cryptology (6hp)

Mathematical Cryptology (6hp) Time to sign up for the continuation course Mathematical Cryptology (6hp) 12 lectures (2 hours) + 2 small projects Exercises are done on your own and discussed in class (6*2 hours). Contents: Elliptic

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism En civilingenjör ska kunna idealisera ett givet verkligt problem, göra en adekvat fysikalisk modell och behandla modellen med matematiska

Läs mer

Analys av BI-system och utveckling av BIapplikationer

Analys av BI-system och utveckling av BIapplikationer Computer Science Fredrik Nilsson, Jonas Wånggren Daniel Strömberg Analys av BI-system och utveckling av BIapplikationer Opposition Report, C/D-level 2005:xx 1 Sammanfattat omdöme av examensarbetet Vi tycker

Läs mer

Sammanfattningar Matematikboken Y

Sammanfattningar Matematikboken Y Sammanfattningar Matematikboken Y KAPitel 1 TAL OCH RÄKNING Numeriska uttryck När man beräknar ett numeriskt uttryck utförs multiplikation och division före addition och subtraktion. Om uttrycket innehåller

Läs mer

IT för personligt arbete F5

IT för personligt arbete F5 IT för personligt arbete F5 Datalogi del 1 DSV Peter Mozelius 1 En dators beståndsdelar 1) Minne 2) Processor 3) Inmatningsenheter 1) tangentbord 2) scanner 3) mus 4) Utmatningsenheter 1) bildskärm 2)

Läs mer

Linjär Algebra, Föreläsning 2

Linjär Algebra, Föreläsning 2 Linjär Algebra, Föreläsning 2 Tomas Sjödin Linköpings Universitet Riktade sträckor och Geometriska vektorer En (geometrisk) vektor är ett objekt som har storlek och riktning, men inte någon naturlig startpunkt.

Läs mer

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen

Läs mer

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen) MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga

Läs mer

Tentamen i Krets- och mätteknik, fk, ETEF15. den 14 jan 2012 8:00-13:00

Tentamen i Krets- och mätteknik, fk, ETEF15. den 14 jan 2012 8:00-13:00 Lunds Tekniska Högskola, Institutionen för Elektro- och informationsteknik Ingenjörshögskolan, Campus Helsingborg Tentamen i Krets- och mätteknik, fk, ETEF15 den 14 jan 2012 8:00-13:00 Uppgifterna i tentamen

Läs mer

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall LARMANLÄGGNING Digitala Projekt, EITF11 Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall 1. Sammanfattning Vi har byggt ett larm vars syfte är att användas i hemmet. Larmet använder

Läs mer

KALKYL OCH DIAGRAM. Kalkylbladet. 170 Datorkunskap Kalkyl och diagram

KALKYL OCH DIAGRAM. Kalkylbladet. 170 Datorkunskap Kalkyl och diagram 170 Datorkunskap Kalkyl och diagram KALKYL OCH DIAGRAM När du behöver göra beräkningar, diagram eller sammanställa större mängder data använder du Excel. Kalkylbladet Ett Excel-dokument kallas även för

Läs mer

Elektronik grundkurs Laboration 6: Logikkretsar

Elektronik grundkurs Laboration 6: Logikkretsar Elektronik grundkurs Laboration 6: Logikkretsar Förberedelseuppgifter: 1. Förklara vad som menas med logiskt sving. 2. Förklara vad som menas med störmarginal. 3. Förklara vad som menas med stegfördröjning.

Läs mer

Lathund Autogiro NovaSecur

Lathund Autogiro NovaSecur Lathund Autogiro NovaSecur Rev. 2011-05-06 Version 2.85-2011 Neither the whole nor any part of the information contained in, or the product described in this manual, may be adapted or reproduced in any

Läs mer

Laboration 1: Aktiva Filter ( tid: ca 4 tim)

Laboration 1: Aktiva Filter ( tid: ca 4 tim) 091129/Thomas Munther IDE-sektionen/Högskolan Halmstad Uppgift 1) Laboration 1: Aktiva Filter ( tid: ca 4 tim) Vi skall använda en krets UAF42AP. Det är är ett universellt aktivt filter som kan konfigureras

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

Föreläsningsanteckningar till Konstruktionsmetoder 981027

Föreläsningsanteckningar till Konstruktionsmetoder 981027 Föreläsningsanteckningar till Konstruktionsmetoder 981027 Jämförelse mellan 68705P3 och 16F84 externt MC68705P3 PIC16F84 I/O 20 13 Kapsling 28-pin DIL 18-pin DIL Drivförmåga på pinnar PortB 10mA Sink,

Läs mer

Beräkningsmetoder för superellipsens omkrets

Beräkningsmetoder för superellipsens omkrets Beräkningsmetoder för superellipsens omkrets Frågeställning Svar 1. Vi förväntades ta reda på olika metoder för att beräkna en superellips eller en ellips omkrets. o Givet var ellipsens ekvation:. (Källa

Läs mer

Laboration: Grunderna i MATLAB

Laboration: Grunderna i MATLAB Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar

Läs mer

Räkna med C# Inledande programmering med C# (1DV402)

Räkna med C# Inledande programmering med C# (1DV402) Räkna med C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i verket

Läs mer

IE1206 Inbyggd Elektronik

IE1206 Inbyggd Elektronik IE06 Inbyggd Elektronik F F3 F4 F Ö Ö PIC-block Dokumentation, Seriecom Pulsgivare I,, R, P, serie och parallell KK LAB Pulsgivare, Menyprogram Start för programmeringsgruppuppgift Kirchoffs lagar Nodanalys

Läs mer

Get Instant Access to ebook Ta Betalt PDF at Our Huge Library TA BETALT PDF. ==> Download: TA BETALT PDF

Get Instant Access to ebook Ta Betalt PDF at Our Huge Library TA BETALT PDF. ==> Download: TA BETALT PDF TA BETALT PDF ==> Download: TA BETALT PDF TA BETALT PDF - Are you searching for Ta Betalt Books? Now, you will be happy that at this time Ta Betalt PDF is available at our online library. With our complete

Läs mer

IKUSI STG Produktöversikt

IKUSI STG Produktöversikt Produktöversikt Följande moduler finns att tillgå i STG serien: Typ Benämning Art. nr. BAS-120 Basplatta 715201 COF-120 Skåp 715202 SPI-300 Programmeringsenhet 709009 STG-200 Nätdel/kontrollenhet 715200

Läs mer

Inledande programmering med C# (1DV402) Introduktion till programmering

Inledande programmering med C# (1DV402) Introduktion till programmering Introduktion till programmering Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt

Läs mer

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ 'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ / VQLQJDURFKNRPPHQWDUHU Program: Elektroteknik, mikrodatorsystem Datum: 99-11-02 Tid: 8:00-9:30 Lokal E448 Hjälpmedel: Bilagor: Examinator: Miniräknare, linjal Datablad för

Läs mer

CanCom C721 RadioTransceiver V1.19

CanCom C721 RadioTransceiver V1.19 CanCom C721 RadioTransceiver V1.19 art. 80-721xx CanCom kretskort C721 är avsedd att användas i portabla fjärrstyrningsutrustningar. Radion har dubbelriktad kommunikation så att man kan visa status och

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Laboration i Fourieroptik

Laboration i Fourieroptik Laboration i Fourieroptik David Winge Uppdaterad 30 januari 2015 1 Introduktion I detta experiment ska vi titta på en verklig avbildning av Fouriertransformen. Detta ska ske med hjälp av en bild som projiceras

Läs mer

Laboration 4: Digitala bilder

Laboration 4: Digitala bilder Objektorienterad programmering, Z : Digitala bilder Syfte I denna laboration skall vi återigen behandla transformering av data, denna gång avseende digitala bilder. Syftet med laborationen är att få förståelse

Läs mer

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll 2012-01-20. Lay, kapitel 1.1-1.9, Linjära ekvationer i linjär algebra

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll 2012-01-20. Lay, kapitel 1.1-1.9, Linjära ekvationer i linjär algebra TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1 Omfattning Lay, kapitel 1.1-1.9, Linjära ekvationer i linjär algebra Innehåll Olika aspekter av linjära ekvationssystem 1. skärning mellan geometriska

Läs mer

MMA132: Laboration 1 & 2 Introduktion till MATLAB

MMA132: Laboration 1 & 2 Introduktion till MATLAB MMA132: Laboration 1 & 2 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med

Läs mer

William J. Clinton Foundation Insamlingsstiftelse REDOGÖRELSE FÖR EFTERLEVNAD STATEMENT OF COMPLIANCE

William J. Clinton Foundation Insamlingsstiftelse REDOGÖRELSE FÖR EFTERLEVNAD STATEMENT OF COMPLIANCE N.B. The English text is an in-house translation. William J. Clinton Foundation Insamlingsstiftelse (organisationsnummer 802426-5756) (Registration Number 802426-5756) lämnar härmed följande hereby submits

Läs mer

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner Linköping Universitet, Campus Norrköping Inst/ Kurs Termin/år Titel: Undertitel: Författarens namn och e-postadress Framsidans utseende kan variera mellan olika institutioner Handledares namn Sammanfattning

Läs mer

www.velleman.be http://forum.velleman.be/

www.velleman.be http://forum.velleman.be/ www.velleman.be http://forum.velleman.be/ Välkommen... 4 Inställning av hårdvaran... 5 Installeras PC-LAB000SE... 6 Start av programvaran... 7 Oscilloskop... 8 Spectrum Analys Modulen... 9 Transient Memorerings

Läs mer

Matematik. Mål som eleverna skall ha uppnått i slutet av det fjärde skolåret. Mål som eleverna skall ha uppnått i slutet av det femte skolåret

Matematik. Mål som eleverna skall ha uppnått i slutet av det fjärde skolåret. Mål som eleverna skall ha uppnått i slutet av det femte skolåret Balderskolan, Uppsala musikklasser 2009 Matematik Mål som eleverna skall ha uppnått i slutet av det fjärde skolåret läsa och skriva tal inom talområdet 0 10 000 räkna de fyra räknesätten med olika metoder

Läs mer

Application for exemption - Ansökan om dispens

Application for exemption - Ansökan om dispens Ankomststämpel BYNs kansli Application for exemption - Ansökan om dispens Important information For the application to be handled are required: 1. The operator of a machine or crane is predestinated to

Läs mer

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

Läs mer

Användargränssnitt för proaktiv störningshantering för utilities

Användargränssnitt för proaktiv störningshantering för utilities ISSN 0280-5316 ISRN LUTFD2/TFRT--7623--SE Användargränssnitt för proaktiv störningshantering för utilities Martin Carlson Lund University Department of Automatic Control August 2012 Lund University Department

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n

Läs mer

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2 Högskolan i Halmstad Sektionen för Informationsvetenskap, Dator- och Elektroteknik 08/ Thomas Munther Datorövning 2 Matlab/Simulink i Styr- och Reglerteknik för U3/EI2 Laborationen förutsätter en del förberedelser

Läs mer

PowerCell Sweden AB. Ren och effektiv energi överallt där den behövs

PowerCell Sweden AB. Ren och effektiv energi överallt där den behövs PowerCell Sweden AB Ren och effektiv energi överallt där den behövs Requirements of power electronics for fuel cells in electric vehicles Andreas Bodén (Rickard Nilsson) Förstudie: Kravställning på kraftelektronik

Läs mer

Optimala vinkeln av bortklippt cirkelsektor fo r maximal volym pa glasstrut

Optimala vinkeln av bortklippt cirkelsektor fo r maximal volym pa glasstrut Optimala vinkeln av bortklippt cirkelsektor fo r maximal volym pa glasstrut Frågeställning Av en cirkulär pappersskiva kan en cirkelsektor med en viss vinkel klippas bort. Med den resterande sektorn går

Läs mer

Protokoll Föreningsutskottet 2013-10-22

Protokoll Föreningsutskottet 2013-10-22 Protokoll Föreningsutskottet 2013-10-22 Närvarande: Oliver Stenbom, Andreas Estmark, Henrik Almén, Ellinor Ugland, Oliver Jonstoij Berg. 1. Mötets öppnande. Ordförande Oliver Stenbom öppnade mötet. 2.

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod

Datoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod inär addition papper och penna metod Dagens föreläsning: Lärobok, kapitel rbetsbok, kapitel Ur innehållet: hur man adderar och subtraherar tal i det binära talsystemet hur man kan koda om negativa binära

Läs mer

Multiplicera 7med A λ 1 I från vänster: c 1 (Av 1 λ 1 v 1 )+c 2 (Av 2 λ 1 v 2 )+c 3 (Av 3 λ 1 v 3 ) = 0

Multiplicera 7med A λ 1 I från vänster: c 1 (Av 1 λ 1 v 1 )+c 2 (Av 2 λ 1 v 2 )+c 3 (Av 3 λ 1 v 3 ) = 0 Diagonalisering Anm. Begreppet diagonaliserbarhet är relevant endast för linjära avbildningar mellan rum av samma dimension, d.v.s. sådana som representeras av kvadratiska matriser. När vi i fortsättningen

Läs mer

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs Testplan Mitun Dey Version 1.0 Status Granskad Godkänd 1 PROJEKTIDENTITET Reglerteknisk projektkurs, WalkCAM, 2007/VT Linköpings tekniska högskola, ISY Namn Ansvar Telefon E-post Henrik Johansson Projektledare

Läs mer

Introduktion. Byggstenar TDBA63 2005-11-22

Introduktion. Byggstenar TDBA63 2005-11-22 Introduktion UML står för Unified Modeling Language. Det är tänkt att fungera som hjälpmedel vid modellering av alla tänkbara typer av utvecklingsarbeten, inte bara inom dataomdrådet. Det största värdet

Läs mer