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,

Automatization of test rig for microwave ovens

Automatization of test rig for microwave ovens LiU-ITN-TEK-A--13/026--SE Automatization of test rig for microwave ovens Jesper Cronborn 2013-06-10 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

Läs mer

Master Thesis. Study on a second-order bandpass Σ -modulator for flexible AD-conversion Hanna Svensson. LiTH - ISY - EX -- 08/4064 -- SE

Master Thesis. Study on a second-order bandpass Σ -modulator for flexible AD-conversion Hanna Svensson. LiTH - ISY - EX -- 08/4064 -- SE Master Thesis Study on a second-order bandpass Σ -modulator for flexible AD-conversion Hanna Svensson LiTH - ISY - EX -- 08/4064 -- SE Study on a second-order bandpass Σ -modulator for flexible AD-conversion

Läs mer

Utveckling av webbsida för lokala prisjämförelser med användbarhetsmetoder

Utveckling av webbsida för lokala prisjämförelser med användbarhetsmetoder C-uppsats LITH-ITN-EX--05/032--SE Utveckling av webbsida för lokala prisjämförelser med användbarhetsmetoder Jon Hällholm 2005-10-27 Department of Science and Technology Linköpings Universitet SE-601 74

Läs mer

Dokumentation av elritningar i en byggnad

Dokumentation av elritningar i en byggnad LiU-ITN-TEK-G--12/068--SE Dokumentation av elritningar i en byggnad Precious Kam'boma Ceasar Ramzi 2012-12-17 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

Läs mer

Ritning av industribyggnad med dokumentation av elcentraler

Ritning av industribyggnad med dokumentation av elcentraler LiU-ITN-TEK-G--12/038--SE Ritning av industribyggnad med dokumentation av elcentraler Sebastian Johansson Daniel Nyberg 2012-06-12 Department of Science and Technology Linköping University SE-601 74 Norrköping,

Läs mer

Laddningsomkopplare för två batterier

Laddningsomkopplare för två batterier LiU-ITN-TEK-G--10/054--SE Laddningsomkopplare för två batterier Findus Lagerbäck 2010-06-04 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik

Läs mer

Dokumentation av elinstallationer i en byggnad

Dokumentation av elinstallationer i en byggnad LiU-ITN-TEK-G--11/066--SE Dokumentation av elinstallationer i en byggnad Albert Binakaj Armin Smajic 2011-08-25 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

Läs mer

!"# " $"% & ' ( )* + 2' ( 3 -+ -.4

!#  $% & ' ( )* + 2' ( 3 -+ -.4 !"# " $"% !"# " $"% & ' ( )* +-+./0+12 + 2' ( 3 -+ -.4 Avdelning Institution Division Department Datum Date 2005-03-21 Institutionen för datavetenskap 581 83 LINKÖPING Språk Language Svenska/Swedish

Läs mer

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

Kodning av ansiktstextur med oberoende komponenter

Kodning av ansiktstextur med oberoende komponenter Kodning av ansiktstextur med oberoende komponenter Jörgen Ahlberg Report no. LiTH-ISY-R-2297 ISSN 1400-3902 Avdelning, Institution Division, department Datum Date Image Coding Group 2000-10-02 Department

Läs mer

Arbetsprov för nyanställda inom el- och automationsteknik

Arbetsprov för nyanställda inom el- och automationsteknik LiU-ITN-TEK-G--13/003-SE Arbetsprov för nyanställda inom el- och automationsteknik Danial Qamar Patrik Rosenkrantz 2013-03-11 Department of Science and Technology Linköping University SE-601 74 Norrköping,

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

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

3D visualisering av Silverdal

3D visualisering av Silverdal LiU-ITN-TEK-G--09/034--SE 3D visualisering av Silverdal Jenny Stål 2009-06-10 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik och naturvetenskap

Läs mer

Arbete med behörighetsadministration och åtkomstkontroll i större företag

Arbete med behörighetsadministration och åtkomstkontroll i större företag Arbete med behörighetsadministration och åtkomstkontroll i större företag Kandidatuppsats, 10 poäng, skriven av Mikael Hansson och Oscar Lindberg 2005-07-04 ISRN LIU-IDA-C--05/11--SE Arbete med behörighetsadministration

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

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

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

Programmerbar logik och VHDL. Föreläsning 1

Programmerbar logik och VHDL. Föreläsning 1 Programmerbar logik och VHDL Föreläsning 1 Programmerbar logik och VHDL Programmerbar logik VHDL intro Upplägg, litteratur, examination Programmerbara kretsar Mikroprocessor Fix hårdvara som kan utföra

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

Laboration Kombinatoriska kretsar

Laboration Kombinatoriska kretsar Laboration Kombinatoriska kretsar Digital Design IE1204/5 Observera! För att få laborera måste Du ha: bokat en laborationstid i bokningssystemet (Daisy). löst ditt personliga web-häfte med förkunskapsuppgifter

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

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar

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

Grundläggande A/D- och D/A-omvandling. 1 Inledning. 2 Digital/analog(D/A)-omvandling

Grundläggande A/D- och D/A-omvandling. 1 Inledning. 2 Digital/analog(D/A)-omvandling Grundläggande A/D- och D/A-omvandling. 1 Inledning Datorer nns nu i varje sammanhang. Men eftersom vår värld är analog, behöver vi något sätt att omvandla t.ex. mätvärden till digital form, för att datorn

Läs mer

Laboration i tidsdiskreta system

Laboration i tidsdiskreta system Laboration i tidsdiskreta system A. Tips Användbara MATLAB-funktioner: conv Faltning square Skapa en fyrkantvåg wavread Läs in en ljudfil soundsc Spela upp ett ljud ones Skapa en vektor med godtyckligt

Läs mer

VHDL och laborationer i digitalteknik

VHDL och laborationer i digitalteknik V:1.1 VHDL och laborationer i digitalteknik Vid laborationskursen i digitalteknik används VHDL till alla laborationerna utom den första. VHDL är ett stort språk och enbart en liten del av språket behövs

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

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

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

Forma komprimerat trä

Forma komprimerat trä Forma komprimerat trä - maskinell bearbetning av fria former Peter Conradsson MÖBELSNICKERI Carl Malmsten Centrum för Träteknik & Design REG NR: LiU-IEI-TEK-G 07/0025 SE Oktober 2007 Omslagsbild: Stol

Läs mer

Bildbehandling i frekvensdomänen

Bildbehandling i frekvensdomänen Uppsala Tekniska Högskola Signaler och system Handledare: Mathias Johansson Uppsala 2002-11-27 Bildbehandling i frekvensdomänen Erika Lundberg 800417-1602 Johan Peterson 790807-1611 Terese Persson 800613-0267

Läs mer

Digital elektronik CL0090

Digital elektronik CL0090 Digital elektronik CL9 Föreläsning 5 27-2-2 8.5 2. Naxos Demonstration av uartus programvara. Genomgång av uartus flödesschema. Detta dokument finns på kurshemsidan. http://www.idt.mdh.se/kurser/cl9/ VHDL-kod

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

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod

Läs mer

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, Snake Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, 2015-05-18 Oskar Petersen, I-12 Handledare: Bertil Lindvall Abstract Denna rapport beskriver ett projekt där ett klassiskt

Läs mer

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade) Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika

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

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2010-06-01 Skrivtid 9.00-14.00 (5 timmar) Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Per Lindgren Tel 070 376

Läs mer

Styrteknik: MELSEC FX och numeriska värden

Styrteknik: MELSEC FX och numeriska värden PLC2C:1 MELSEC FX I kursen styrteknik används styrsystemet FX1S som är ett litet system i MELSEC FX-serien. Vår version av FX1S har endast digitala in- och utgångar men oftast finns det både digitala och

Läs mer

HF0010. Introduktionskurs i datateknik 1,5 hp

HF0010. Introduktionskurs i datateknik 1,5 hp HF0010 Introduktionskurs i datateknik 1,5 hp Välkommna - till KTH, Haninge, Datateknik, kursen och till första steget mot att bli programmerare! Er lärare och kursansvarig: Nicklas Brandefelt, bfelt@kth.se

Läs mer

Institutionen för data- och elektroteknik 2004-03-22 Tillämpad digital signalbehandling Veckoplanering för signalbehandlingsteorin

Institutionen för data- och elektroteknik 2004-03-22 Tillämpad digital signalbehandling Veckoplanering för signalbehandlingsteorin Institutionen för data- och elektroteknik 2004-03-22 Veckoplanering för signalbehandlingsteorin Allmänt Erfarenheten från tidigare år säger att kursen upplevs som svår. Detta tror jag beror, inte på att

Läs mer

Blandade problem från elektro- och datateknik

Blandade problem från elektro- och datateknik Blandade problem från elektro- och datateknik Sannolikhetsteori (Kapitel 1-10) E1. En viss typ av elektroniska komponenter anses ha exponentialfördelade livslängder. Efter 3000 timmar brukar 90 % av komponenterna

Läs mer

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar 1 Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan arkitektur), hårdvara osynlig Assembly- och maskinprogram:

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

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

D/A- och A/D-omvandlarmodul MOD687-31

D/A- och A/D-omvandlarmodul MOD687-31 D/A- och A/D-omvandlarmodul MOD687-31 Allmänt Modulen är helt självförsörjande, det enda du behöver för att komma igång är en 9VAC väggtransformator som du kopplar till jacket J2. När du så småningom vill

Läs mer

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: 1.0 2013 (OS)

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: 1.0 2013 (OS) LABORATION DATORKONSTRUKTION TSEA83 UART Version: 1.0 2013 (OS) Namn och personnummer Godkänd 1 blank sida 2 Innehåll 1 Inledning 5 1.1 Syfte................................. 5 1.2 Förberedelser............................

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

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

Informationssäkerhetsmedvetenhet

Informationssäkerhetsmedvetenhet Informationssäkerhetsmedvetenhet En kvalitativ studie på Skatteverket i Linköping Kandidatuppsats, 10 poäng, skriven av Per Jutehag Torbjörn Nilsson 2007-02-05 LIU-IEI-FIL-G--07/0022--SE Informationssäkerhetsmedvetenhet

Läs mer

Processidentifiering och Polplacerad Reglering

Processidentifiering och Polplacerad Reglering UmU/TFE Laboration Processidentifiering och Polplacerad Reglering Introduktion Referenser till teoriavsnitt följer här. Processidentifiering: Kursbok kap 17.3-17.4. Jämför med det sista exemplet i kap

Läs mer

Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/

Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/ CT3760 Mikrodatorteknik Föreläsning 1 Torsdag 2005-08-25 Upprop. Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/ Kurslitteratur är Per Foyer Mikroprocessorteknik. Finns på bokhandeln.

Läs mer

Översikt, kursinnehåll

Översikt, kursinnehåll Översikt, kursinnehåll Specifikation av digitala funktioner och system Digitala byggelement Kombinatoriska system Digital Aritmetik Synkrona system och tillståndsmaskiner Asynkrona system och tillståndsmaskiner

Läs mer

Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov)

Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov) 7HQWDPHQL.XQGDQSDVVDGHNUHWVDUI U(P Datum: 991012 Tid: 8.00-13.00 Lokal: E138 Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov) Vid eventuella frågor

Läs mer

Tillämpad digital signalbehandling Laboration 1 Signalbehandling i Matlab och LabVIEW

Tillämpad digital signalbehandling Laboration 1 Signalbehandling i Matlab och LabVIEW Institutionen för data- och elektroteknik 004-03-15 Signalbehandling i Matlab och LabVIEW 1 Introduktion Vi skall i denna laboration bekanta oss med hur vi kan använda programmen Matlab och LabVIEW för

Läs mer

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p) UMEÅ UNIVERSITY Department of Mathematics and Mathematical Statistics Pre-exam in mathematics Linear algebra 2012-02-07 1. Compute the following matrix: (2 p 3 1 2 3 2 2 7 ( 4 3 5 2 2. Compute the determinant

Läs mer

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt MATEMATIK GU H4 LLMA6 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 24 I block 5 ingår följande avsnitt i Stewart: Kapitel 2, utom avsnitt 2.4 och 2.6; kapitel 4. Block 5, översikt Första delen av block 5

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

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

Beijer Electronics AB 2000, MA00336A, 2000-12

Beijer Electronics AB 2000, MA00336A, 2000-12 Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this

Läs mer

Digital signalbehandling Digitalt Ljud

Digital signalbehandling Digitalt Ljud Signalbehandling Digital signalbehandling Digitalt Ljud Bengt Mandersson Hur låter signalbehandling Institutionen för elektro- och informationsteknik 2008-10-06 Elektronik - digital signalbehandling 1

Läs mer

EDUCATE - ett europeiskt hypertextbaserat utbildningspaket

EDUCATE - ett europeiskt hypertextbaserat utbildningspaket Linköping Electronic Articles in Computer and Information Science Vol. 2(1997): Nr 10 EDUCATE - ett europeiskt hypertextbaserat utbildningspaket Nancy Fjällbrant Gunilla Thomasson Chalmers tekniska högskolans

Läs mer

Laboration i datateknik

Laboration i datateknik KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Felsökning och programmering av LEGO NXT robot Daniel Willén 2012 09 06 dwill@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Syftet med

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

Laboration Kombinatoriska kretsar

Laboration Kombinatoriska kretsar Laboration Kombinatoriska kretsar Digital Design IE1204/5 Observera! För att få laborera måste Du ha: en bokad laborationstid i bokningssystemet (Daisy). löst ditt personliga web-häfte med förkunskapsuppgifter

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

Styrteknik: Grundläggande logiska funktioner D2:1

Styrteknik: Grundläggande logiska funktioner D2:1 Styrteknik: Grundläggande logiska funktioner D2:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik: Grundläggande logiska funktioner

Läs mer

FOURIERANALYS En kort introduktion

FOURIERANALYS En kort introduktion FOURIERAALYS En kort introduktion Kurt Hansson 2009 Innehåll 1 Signalanalys 2 2 Periodiska signaler 2 3 En komplex) skalärprodukt 4 4 Fourierkoefficienter 4 5 Sampling 5 5.1 Shannon s teorem.................................

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

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

Signalanalys med snabb Fouriertransform

Signalanalys med snabb Fouriertransform Laboration i Fourieranalys, MVE030 Signalanalys med snabb Fouriertransform Den här laborationen har två syften: dels att visa lite på hur den snabba Fouriertransformen fungerar, och lite om vad man bör

Läs mer

Pulsmätare med varningsindikatorer

Pulsmätare med varningsindikatorer Pulsmätare med varningsindikatorer Elektro- och informationsteknik Projektrapport, EITF11 Digitala Projekt Charlie Hedhav Sofia Johansson Louise Olsson 2016-05-17 Abstract During the course Digitala Projekt

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

Ansiktsigenkänning med MATLAB

Ansiktsigenkänning med MATLAB Ansiktsigenkänning med MATLAB Avancerad bildbehandling Christoffer Dahl, Johannes Dahlgren, Semone Kallin Clarke, Michaela Ulvhammar 12/2/2012 Sammanfattning Uppgiften som gavs var att skapa ett system

Läs mer

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN Automatisk styra processer. Generell metodik Bengt Carlsson Huvudantagande: Processen kan påverkas med en styrsignal (insignal). Normalt behöver man kunna mäta

Läs mer

Tentamen i Signaler och kommunikation, ETT080

Tentamen i Signaler och kommunikation, ETT080 Inst. för informationsteknologi Tentamen i Signaler och kommunikation, ETT080 2 juni 2006, 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

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

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

LABORATIONSINSTRUKTION

LABORATIONSINSTRUKTION Högskolan Dalarna Institutionen för Elektroteknik LABORATION LABORATIONSINSTRUKTION LOG/iC, PLD, kombinatorik, sekvensnät KURS Digitalteknik LAB NR 6 INNEHÅLL. Inledning 2. Prioritetskodare 3. Elektronisk

Läs mer

Massage i skolan - positiva och negativa effekter

Massage i skolan - positiva och negativa effekter Linköpings universitet Grundskollärarprogrammet, 1-7 Martina Lindberg Massage i skolan - positiva och negativa effekter Examensarbete 10 poäng LIU-IUVG-EX--01/129 --SE Handledare: Gunilla Söderberg, Estetiska

Läs mer

LUNDS TEKNISKA HÖGSKOLA Inst. för Elektro- och Informationsteknik

LUNDS TEKNISKA HÖGSKOLA Inst. för Elektro- och Informationsteknik LUNDS TEKNISKA HÖGSKOLA Inst. för Elektro- och Informationsteknik Tentamen 015-06-05 SIGNALBEHANDLING I MULTIMEDIA, ETI65 Tid: 14.00 19.00 Sal: MA:10, C-J Hjälpmedel: Miniräknare, formelsamling i signalbehandling

Läs mer

A/D D/A omvandling. Lars Wallman. Lunds Universitet / LTH / Institutionen för Mätteknik och Industriell Elektroteknik

A/D D/A omvandling. Lars Wallman. Lunds Universitet / LTH / Institutionen för Mätteknik och Industriell Elektroteknik A/D D/A omvandling Lars Wallman Innehåll Repetition binära tal Operationsförstärkare Principer för A/D omvandling Parallellomvandlare (Flash) Integrerande (Integrating Dual Slope) Deltapulsmodulation (Delta

Läs mer

A/D- och D/A- omvandlare

A/D- och D/A- omvandlare A/D- och D/A- omvandlare Jan Carlsson 1 Inledning Om vi tänker oss att vi skall reglera en process så ställer vi in ett börvärde, det är det värde som man vill processen skall åstadkomma. Sedan har vi

Läs mer

Cacheminne Intel Core i7

Cacheminne Intel Core i7 EDT621 Datorarkitekturer med operativsystem 7,5 hp 2015-12-07 Cacheminne i Intel Core i7 Författare: Adnan Karahmetovic Handledare: Erik Larsson Innehåll 1. Inledning... 1 1.1 Syfte... 1 1.2 Frågeställning...

Läs mer

DIGITALA TAL OCH BOOLESK ALGEBRA

DIGITALA TAL OCH BOOLESK ALGEBRA DIGITALA TAL OCH BOOLESK ALGEBRA Innehåll Talsystem och koder Aritmetik för inära tal Grundläggande logiska operationer Logiska grindar Definitioner i Boolesk algera Räknelagar BINÄRA TALSYSTEMET Binärt

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

Bildregistrering Geometrisk anpassning av bilder

Bildregistrering Geometrisk anpassning av bilder Bildregistrering Geometrisk anpassning av bilder Björn Svensson, Johanna Pettersson, Hans Knutsson Inst. för Medicinsk Teknik, Linköpings Univeristet Maj, 2007 1 Problembeskrivning Sök förflyttningsfält

Läs mer

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning Den digitala automaten Vägen från digitaltekniken till det kompletta styrsystemet Lund University, Sweden Insignaler Sekvensnät Utsignaler Kan vi betrakta insignalmönstret som en instruktion och det som

Läs mer

2F1120 Spektrala transformer för Media Tentamen

2F1120 Spektrala transformer för Media Tentamen F Spektrala transformer för Media Tentamen 68 Tentamen består av fem uppgifter där varje uppgift maximalt ger p. Normalt gäller följande betygsgränser: :9 p, : p, 5: 7 p Tillåtna hjälpmedel: räknare, formelblad

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT Enchipsdatorer med tillämpningar LABORATION 7, ROBOT Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-05-14 Laboranter: 1 Syfte Denna laboration syftar till att introducera interrupt och watchdog

Läs mer

Signal- och bildbehandling TSBB03, TSBB14

Signal- och bildbehandling TSBB03, TSBB14 Tentamen i Signal- och bildbehandling TSBB03, TSBB4 Tid: 00-0- Lokaler: G33 Ansvarig lärare: Maria Magnusson besöker lokalen kl. 4.50 och 6.50 tel 073-804 38 67 Hjälpmedel: Räknedosa, medskickad formelsamling,

Läs mer

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform Den laborationen har syften: dels att visa lite hur den snabba Fouriertransformen fungerar, och lite om vad man den an dels att

Läs mer

Digitala projekt Konstruktion av nummerpresentatör

Digitala projekt Konstruktion av nummerpresentatör Digitala projekt Konstruktion av nummerpresentatör Aneta Deric, d00ad Birtukan Hunegnaw, d00bhu Måns Norelius d00mno Maj 2004 Sammanfattning Vi har valt att konstruera en nummerpresentatör. För att kunna

Läs mer

Analog till Digitalomvandling

Analog till Digitalomvandling CT3760 Mikrodatorteknik Föreläsning 8 Tisdag 2006-09-21 Analog till Digitalomvandling Vi börjar med det omvända. Digital insignal och analog utsignal. Digital in MSB D/A Analog ut LSB Om man har n bitar

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

Elektro och Informationsteknik LTH. Laboration 3 RC- och RL-nät i tidsplanet. Elektronik för D ETIA01

Elektro och Informationsteknik LTH. Laboration 3 RC- och RL-nät i tidsplanet. Elektronik för D ETIA01 Elektro och Informationsteknik LTH Laboration 3 R- och RL-nät i tidsplanet Elektronik för D ETIA01??? Telmo Santos Anders J Johansson Lund Februari 2008 Laboration 3 Mål Efter laborationen vill vi att

Läs mer