USB-kommunikation med programmerbar ultraljudssändare

Storlek: px
Starta visningen från sidan:

Download "USB-kommunikation med programmerbar ultraljudssändare"

Transkript

1 EXAMENSARBETE 2004:250 CIV USB-kommunikation med programmerbar ultraljudssändare Harald Stribén CIVILINGENJÖRSPROGRAMMET Luleå tekniska universitet Institutionen för systemteknik, Avdelningen för datorteknik 2004:250 CIV ISSN: ISRN: LTU - EX / SE

2 USB-Kommunikation med programmerbar ultraljudssändare Harald Stribén Luleå University of Technology Dept. of Computer Science and Electrical Engineering Luleå University of Technology September 10, 2004

3 ii

4 ABSTRACT In medical material science, injectable bone cements are being developed to fill and repair defective bones with minimal surgical procedure. The setting time determines the amount of time one have, working with the material and when it is possible to close the wound without complications. Therefore the accuracy of the measured setting time is important. A Method based on ultrasound is being developed for this purpose. A reliable method would be of direct help both to the surgeon and the people who develop these cements. This could lead to shorter operating time for the patients. One of the problems with the ultrasonic pulse-echo technique used today is that it requires expensive equipment, and that the equipment used is not flexible enough. In other words, there is a need for a more flexible instrument that costs less money. This report will show how you could implement one part of such a meter. The hardware used is a SDRAM memory module, a FPGA programmable logic device and a dedicated module for communication via USB. The work was mostly done in a hardware description language called VHDL. The task was analyzed and split into parts that could be solved and implemented separate and finally brought together to form the working meter. The digital part of the meter is implemented, but to be able to build a whole meter a new lab card or custom made PCB have to be used that could utilize more of the FPGA s IO pins. From this thesis one could draw the conclusion that the FPGA and Memory module used are well suited for the task, and that now there is a platform to build a meter on. iii

5 iv

6 SAMMANFATTNING Inom medicinsk materialteknik utvecklar man injicerbara ben-cement, att användas för att fylla och reparera defekter med minimala kirurgiska ingrepp. Härdningstiden bestämmer hur länge man kan arbeta med materialet, och när man kan sy ihop såret utan risk för medicinska komplikationer. Det är därför av stor vikt att man kan bestämma denna tid så exakt som möjligt. En metod baserad på ultraljud håller på att tas fram för detta ändamål. En tillförlitlig mätmetod skulle vara till omedelbar hjälp både för medicinsk personal och de som utvecklar materialen, vilket skulle kunna innebära kortare operationstider för patienterna. Ett av problemen med ultraljudseko-metoden idag är att den kräver dyr hårdvara, och att den hårdvara som finns idag inte heller är särskilt flexibel. Därför finns ett behov av att utveckla en billigare och mer flexibel mätutrustning. Detta arbete visar hur man kan bygga en del av denna mätutrustning. Den hårdvara som används är ett RAM-minne av typen SDRAM, en FPGA och en modul för kommunikation via USB. Arbetet bestod till huvuddelen av programmering av FPGA:n i det hårdvarubeskrivande språket VHDL. Problemet delades upp i delar efter de arbetsuppgifter som FPGA:n har, för att kunna lösa dem separat och sedan sammanfoga dem till en enhet. Den digitala delen av mätinstrumentet är implementerat, men för att kunna bygga en färdig mätare måste ett annat labbkort eller ett egenkostruerat kretskort användas som har möjlighet att använda fler av FPGA:ns datapinnar. Av detta arbete kan man dra slutsatsen att använd FPGA och Minnesmodul är väl valda för uppgiften och att det nu finns en plattform att bygga ett färdigt instrument på. v

7 vi

8 INNEHÅLL KAPITEL 1: INLEDNING 3 KAPITEL 2: TEORI OCH FÖRUTSÄTTNINGAR Härdningstid för bencement Ultraljudseko-metoden Problembestämning Analys KAPITEL 3: HÅRDVARA OCH DESIGN FPGA SDRAM USB till parallellt gränssnitt Prototypkort Designflöde Paketbaserad kommunikation Design KAPITEL 4: IMPLEMENTATION OCH RESULTAT Koppling Verifiering av hårdvara Kommunikation Minne Mätning KAPITEL 5: DISKUSSION OCH SLUTSATSER Mätinstrumentet Möjliga förbättringar Fortsatt arbete

9 viii

10 FÖRORD Denna rapport är skriven som examensarbete på civilingenjörsprogrammet datateknik med inriktning mot datorteknik på avdelningen för "Embedded Internet Systems" (EISLAB), Luleå Tekniska Universitet (LTU). Efter att ha pratat med Jonas Thor, doktorand på avdelningen EISLAB, om att göra ett examensarbete inom datorteknik, så lade han ut en förfrågan på avdelningen för systemteknik om det fanns något intressant projekt som sökte arbetskraft. Johan Carlson, universitetslektor på avdelningen för signalbehandling, kom med ett förslag om att göra en del av en mätutrustning. Jonas blev min handledare, Johan blev examinator och resten är historia. Harald Stribén Luleå, Augusti

11 2 INLEDNING

12 KAPITEL 1 Inledning Inom medicinsk materialteknik utvecklar man injicerbara ben-cement, att användas för att fylla och reparera defekter med minimala kirurgiska ingrepp. Ett cement karaktäriseras bland annat utifrån sina mekaniska egenskaper som hållfasthet, porösitet, densitet och härdningstid. Härdningstiden bestämmer hur länge man kan arbeta med materialet, och när man kan sy ihop såret utan risk för medicinska komplikationer. Det är därför av stor vikt att man kan bestämma denna tid så exakt som möjligt. Befintliga standardmetoder för att studera härdningstiden hos ett cement har visat sig ha dålig repeterbarhet och kräver stora säkerhetsmarginaler på grund av osäkerheter inbyggda i metoderna. En metod baserad på ultraljud håller på att tas fram och har visat lovande experimentella resultat. En tillförlitlig mätmetod skulle vara till omedelbar hjälp både för medicinsk personal och de som utvecklar materialen. Detta skulle också kunna innebära kortare operationstider för patienterna, eftersom en tillförlitlig mätmetod innebär att läkarna inte behöver lägga på samma säkerhetsmarginaler som idag. Ett av problemen med ultraljudseko-metoden idag är att den kräver dyr hårdvara, och att den hårdvara som finns inte heller är flexibel. Därför finns ett behov av att utveckla en billigare och mer flexibel mätutrustning. Denna mätutrustning skulle bestå i en svart låda som till exempel kan kopplas till en bärbar dator. Lådan innehåller allt som behövs för att excitera ultraljudselementet på ett kontrollerat sätt och har även kapacitet att lagra ekot som återspeglas till elementet. Från datorn som styr lådan ska man kunna programmera den med en skräddarsydd exciteringspuls, det ska gå att ställa ingångsförstärkningen och man ska kunna läsa av mottagna data. Allt detta via en standard USB (Universal Serial Bus) kabel. Den svarta lådan kan delas upp i två huvuddelar: En helt digital del som innehåller kommunikation via USB och hantering av Minne. Och en analog del som innehåller förstärkare, analog till digital och digital till analog omvandlare. Detta arbete syftar till att designa och implementera den digitala biten av mätutrustningen, så att den passar i en programmerbar logisk krets. Teori och förutsättningar innehåller information om använda teorier och vad arbetet har bestått i och hur det har delats upp. Hårdvara och design beskriver den hårdvara som används i projektet och designarbetet. Implementation och Resultat beskriver sedan arbetet och resultatet därav. Slutligen kommer Diskussion och slutsatser som diskuterar utkomsten av detta arbete, möjliga förbättringar och fortsättningar på arbetet. 3

13 4 TEORI OCH FÖRUTSÄTTNINGAR

14 KAPITEL 2 Teori och förutsättningar I detta kapitel förklaras teorier och metoder använda i detta arbetet. Först kommenteras existerande standardmetoder för att estimera härdningstiden hos bencement. Sedan beskrivs grunderna i den metod som detta arbete grundar sig på, nämligen ultraljudseko-metoden. Slutligen beskriver jag vad arbetet går ut på och hur det delades upp. 2.1 Härdningstid för bencement Cement som skall användas i medicinska sammanhang måste noggrant undersökas och karaktäriseras utifrån sina mekaniska egenskaper. En av de viktigaste egenskaperna är härdningstiden. Den avgör hur länge man kan arbeta med materialet, och när man kan sy ihop såret utan risk för medicinska komplikationer. Idag finns det två standardmetoder för att studera härdningsprocessen. Båda dessa metoder går ut på att utsätta cementytan för ett visst tryck och sedan studera ytan för att se hur den påverkats. Om man förenklar lite så anses cementen ha stelnat när man inte längre lämnar några märken på ytan. Dessa metoder[1] heter the Gillmore needles method och the Vicat needle. Med hjälp av ultraljudseko så kan man studera härdningsprocessen mer ingående samtidigt som man inte gör någon åverkan på själva cementet. 2.2 Ultraljudseko-metoden Denna princip finns beskriven i flera rapporter, till exempel "Monitoring the setting of injectable calcium-based bone cements using pulse-echo ultrasound" [2] och "Monitoring the setting of calcium-based bone cements using pulse-echo ultrasound" [3]. Principen bakom metoden är att mäta två storheter. Man mäter upp ljudhastigheten i cementprovet, och man mäter den akustiska impedansen vid gränsen mellan ett buffertmaterial med kända akustiska egenskaper, och cementprovet. Dessa två storheter används för att 5

15 6 TEORI OCH FÖRUTSÄTTNINGAR Figur 2.1: Labbutrustning för att mäta med ultraljudseko metoden Figur 2.2: Exempel på reflekterad puls

16 2.2. ULTRALJUDSEKO-METODEN 7 beräkna den momentana densiteten. När en ljudvåg kommer till en gräns mellan två material med olika akustiska egenskaper, så reflekteras en del av vågen tillbaka medan resten av vågen fortsätter in i det nya materialet. Hur mycket av vågens energi som reflekteras beror på skillnaden i specifik akustisk impedans. Den specifika akustiska impedansen, z, för ett material har enheten tryck/partikelhastighet (Pa s) och är användbar vid beräkningar av hur mycket av ljudvågens energi som fortsätter genom en gräns mellan två material in i det andra materialet, och hur mycket som reflekteras. För att genomföra mätningarna används labbuppställningen i figur 2.1. Ultraljudsgivaren används först för att skicka ut en kort ultraljudspuls. Sedan används samma givare som en mottagare för att lyssna på de återspeglade ekon som kommer tillbaka. Den elektriska pulsen som mottagits av givaren samplas sedan för att slutligen hamna i en dator. Figur 2.2 visar ett exempel av en mottagen signal från en mätning på ett cementprov. Första ekot x 1 (t) kommer från gränsen mellan Bufferten och provet och det andra ekot kommet från gränsen mellan provet och reflektorn. Förhållandet mellan amplituden hos det första ekot x 1 (t) och motsvarande eko från en kalibreringsmätning med vatten istället för cement i mätutrustningen ger den specifika akustiska impedansen för cementprovet. Tiden mellan de två ekona är tiden det tar för ljudet att gå igenom cementprovet två gånger, avståndet är känt vilket då ger ljudhastigheten i provet. Dessa två storheter kan användas för att ta fram densitet för cementprovet. Reflektionskoefficienten R p,c definieras som mängden reflekterad energi från gränsen mellan bufferten och cementprovet. R p,c = A c A W R p,w (2.1) A c är amplituden hos det första ekot x 1 (t) från gränsen mellan buffert och cementprov. R p,w är reflektionskoefficienten för gränsen mellan buffert och vatten, och A w är amplituden hos första ekot vid kalibreringsmätningen med vatten. Reflektionskoefficienten hos vatten ges av: R p,w = z w z p z w + z p (2.2) där z w och z p är kända specifika akustiska impedansen för vatten respektive bufferten. Amplituden hos ekona är beräknade genom att först transformera de samplade pulserna med diskret fouriertransform, sedan beräkna amplitudförhållandet A c /A w för alla frekvenser inom bandvidden för pulserna. Slutligen beräknas medelvärdet för att få ett medelvärde på dämpningen. När man känner reflektionskoefficienten kan den akustiska impedansen beräknas: z c = z p 1 + R p,c 1 R p,c (2.3) För att bestämma ljudhastigheten i cementprovet korskorreleras de två ekona x 1 (t) och x 2 (t). Maxvärdet hos korskorrelationen motsvarar tidsskillnaden t mellan pulserna. Eftersom sträckan som pulsen passerat är känd, d 2, är ljudhastigheten:

17 8 TEORI OCH FÖRUTSÄTTNINGAR Figur 2.3: Exempel på den specifika akustiska impedansen i ett prov, som funktion av tiden Figur 2.4: Exempel på ljudhastigheten i ett prov, som funktion av tiden

18 2.3. PROBLEMBESTÄMNING 9 Figur 2.5: Exempel på densitet i ett prov, som funktion av tiden c = 2 d 2 t (2.4) Från ljudhastigheten, c, och cementprovets specifika akustiska impedans, z c (Ekvation 2.3), kan densiteten, ρ beräknas: ρ = z c c (2.5) Denna metod ger inte bara härdningstid och densitet, den ger även en möjlighet att studera hela härdningsförloppet. Figur 2.3 visar ett exempel på den specifika akustiska impedansen i ett prov, som funktion av tiden. Figur 2.4 visar ett exempel på ljudhastigheten i ett prov, som funktion av tiden. Figur 2.5 visar ett exempel på densitet i ett prov, som funktion av tiden En stor fördel med metoden är att den är helt objektiv och därför gör det lätt för oberoende forskare att genomföra experimentet och sedan jämföra resultaten. 2.3 Problembestämning Detta arbete syftar till att ta fram en del av en mätutrustning. Hela mätutrustningen kan ses i figur 2.6. En mätning ska gå till på det viset att man från PC:n laddar ned en skräddarsydd exciteringskurva till RAM-minnet. RAM-minnet är uppdelat i en sändbank och en bank för

19 10 TEORI OCH FÖRUTSÄTTNINGAR I/O Sw DA Power Amp Filter Pre Amp AD Analog Digital RAM FPGA USB PC Figur 2.6: Systemskiss av mätutrustning mottagna mätdata. Sedan kan en mätning startas vilket innebär att den data som finns i sändbanken skickas genom digital till analog omvandlaren (DA), den analoga signalen passerar sedan genom en effektförstärkare (Power Amplifier), för att slutligen omvandlas till ultraljud i ultraljudsgivaren. När data är skickat slår utrustningen om till mottagning, och det ultraljud som kommer tillbaka till ultraljudsgivaren filtreras och förstärks innan det passerar genom en analog till digital omvandlare (AD), för att sedan lagras i mottagningsbanken i RAM-minnet. Nu kan man från PC:n läsa ut färdig mätdata. Kommunikationen med PC:n sker som nämnts tidigare genom USB. Den övre delen av figur 2.6 är den analoga delen, och den nedre delen är den digitala. Detta arbete visar hur man kan implementera den digitala delen i en FPGA. Funktionaliteten är beskriven i VHDL, ett hårdvarubeskrivande språk. I denna rapport så kommer jag dock bara att beskriva designen på en högre nivå i termer av block och gränssnitt. 2.4 Analys Hårdvarumässigt består den digitala delen av mätutrustningen av en FPGA, ett RAM-minne och en modul för kommunikation via USB. RAM-minnet och FPGA:n sitter redan på ett prototypkort. Sammankopplingen av de två korten, prototypkortet och USB-modulen togs fram innan fortsatt arbete med programmering av FPGA:n kunde göras. FPGA:n skall utföra flera uppgifter: Styra förstärkningsfaktorn för ingångsförstärkaren.

20 2.4. ANALYS 11 Ställa om mellan sändning och mottagning. Skriva och läsa RAM-minnet från PC. Styra överföring av data från RAM-minnet till DAC:en. Spara undan data från ADC:en i RAM-minnet. Block som uppenbart behövs är dels ett som pratar med USB-kontrollern och ett som sköter SDRAM-modulen. Sedan behövs Styrning av mätarens olika funktioner. Mer om vilka block och gränssnitt som skapats i kapitel 3.7.

21 12 HÅRDVARA OCH DESIGN

22 KAPITEL 3 Hårdvara och design Detta kapitel beskriver först den hårdvara och några av de principer som användes vid utförandet av detta arbete. Hårdvaran som använts i arbetet var en FPGA, en kommunikationskrets för USB och ett prototypkort med en FPGA och SDRAM på. Sedan beskrivs designflödet som används vid implementation av hårdvara med hjälp av VHDL. Den för projektet valda kommunikationsprincipen beskrivs. Sist i kapitlet redovisas den valda designen för projektet. 3.1 FPGA Det finns olika typer av programmerbar logik på marknaden (Programmable Logic Devices, PLD). En typ av PLD är en FPGA, vilket står för Field Programmable Gate Array. En FPGA består av ett mönster av konfigurerbara logikblock (Configurable Logic Blocks, CLB), omgivna av programmerbara I/O-block (IO Blocks, IOB), och sammankopplade med programmerbara kopplingar som kan ses i figur 3.1. Antalet CLB:er i en FPGA varierar mellan några få och flera tusen. Prestanda hos en FPGA beror i stor utsträckning på funktionen hos CLB:erna och möjligheten att med så lite delay som möjligt sammankoppla CLB:er och IOB:er. De flesta FPGA:er är SRAM baserade. En FPGA baserad på SRAM kan programmeras om obegränsat antal gånger, men den måste programmeras varje gång efter man slår på strömmen. FPGA:n som används i detta arbete heter SPARTAN-II XC2S50. Dess CLB-mönster är stort och har således 382 st CLB:er. Den har 176st användbara I/O-pinnar. Och kan, beroende på implementerad konstruktion, klockas upp till 200 MHz 3.2 SDRAM SDRAM står för Synchronous Dynamic Random Access Memory. SDRAM använder en klockpuls för synkronisering, medan standard DRAM är ett icke-synkront minne. SDRAM arbetar med höghastighets-åtkomst, så kallad burst mode, vilken använder sig av en intern adress-kolumngenerator. När den första adresskolumnen för åtkomst är bestämd, kan de 13

23 14 HÅRDVARA OCH DESIGN Figur 3.1: Generaliserad FPGA-struktur följande adresserna automatiskt tas fram av den interna kolumngeneratorn. Mode-registret tar emot den begärda informationen och styr i turordning minnet i enlighet med informationen. Ett SRAM är ett minne som hela tiden håller sitt data så länge strömmen är påslagen, men det tar stor yta på kretsens kiselyta. DRAM är en typ av minne som tar betydligt mindre yta än SRAM, men håller inte kvar sin data hur länge som helst. Därför behöver DRAM uppdateras eller refreshas. SDRAM är som nämnt ovan ett utökat DRAM, så det behöver också refreshas. Det SDRAM som används i detta arbete heter K4S641632F-TC75 från Samsung[4]. Det kan klockas upp till 133 MHz och är uppbyggt av fyra banker med vardera 1Mbit x 16 minnesceller. Antal på varandra följande läsning eller skrivningscykler initierade av ett enda kommando Burst length är 1, 2, 4, 8 eller Full page (det vill säga hela raden 16bitar). Refresh perioden, det vill säga tiden från en refresh till dess att minnet måste refreshas igen. 3.3 USB till parallellt gränssnitt USB to FIFO Parallel Interface Module, DLP-USB245M[5] är en färdig modul för att underlätta kommunikation via USB. Den har färdiga drivrutiner att installera i datorn som maskerar

24 3.3. USB TILL PARALLELLT GRÄNSSNITT 15 FIFO Read Cycle >80 RXF# RD# >50 >50 <30 >10 D[7..0] Valid data RXF# Låg när åtminstone en byte finns i receivebuffer. Dra RD# låg för att läsa första värdet i infifo:n, sätt den hög igen när data är läst. FIFO Write Cycle >80 TXE# >50 >50 WR D[7..0] <20 >10 Valid data När TXE# är hög så är utfifo:n full. För att skriva till utfifo:n sätts först WR hög. Sedan läggs datat ut på datapinnarna, WR sätts låg för att läsa av datat. Datapinnarna släpps. Figur 3.2: DLP-USB245M Hårdvaruinterface hårdvaran som en vanlig RS232 seriell port, men med mycket högre hastighet (så kallad baud rate inställning ignoreras). På hårdvarusidan har den ett gränssnitt för att läsa och skriva parallell (8 bitar) data åt gången som kan ses i figur 3.2.

25 16 HÅRDVARA OCH DESIGN VHDL kodeditering Funktions simulering ModelSim Begränsningar (Constraints) syntes Synplify översättning Mappning Place and route "Back annotation" Timing simulering Statisk timing analys Figur 3.3: Designflöde 3.4 Prototypkort Prototypkort XSA-50 Från XESS Corp.[6]. Kortet är bestyckat med en Spartan-II (XC2S50) FPGA från Xilinx[7]. FPGA:n är kombinerad med ett 8 Mbyte stort Synkront DRAM. Bitströmmen man vill programmera FPGA:n med kan sparas i ett Flash minne, så att FPGA:n blir konfigurerad så fort strömmen slås på. Kortet har även en parallellport genom vilken man kan ladda FPGA:n med hjälp av verktyg framtagna av XESS Corp. Kortet har även en programmerbar oscillator på 100 MHz, frekvensen kan ställas i jämna delar av 100 MHz till exempel 50, 25, 12.5, 6.25 MHz. För detta projekt krävs möjlighet att komma åt många av FPGA:ns pinnar från resterande hårdvara. Kortet har 84 anslutningar för att kunna kommunicera med ytterligare elektronik, men med olika restriktioner.

26 3.5. DESIGNFLÖDE Vänta Data esc Vänta esc Data 4 Figur 3.4: Tillståndsmaskin för avkodning av paketerade meddelanden 3.5 Designflöde Det syntesverktyg jag använt heter Synplify[8], och är även det program jag använt för att skriva och editera koden. För att simulera koden har ett program som heter Modelsim[9] använts. Slutligen har Xilinx[7] mjukvara använts för att kompilera nätlistor till bitmönster att programmera FPGA:n med. Här följer en genomgång av stegen från VHDL kod till färdig kretsbeskrivning i bitströmsform. Stegen kan även följas i figur 3.3. Först kommer funktionssimulering, som används för att kolla att VHDL beskrivningen är korrekt och beter sig på det vis man tänkt. I detta läge kan man dock inte testa tidsberoendet, det vill säga inte hitta fel som uppkommer av för stora delayer eller dylikt. Syntes kan definieras som att konstruera en mål-specifik nätlista från en beskrivning skriven i ett hårdvarubeskrivande språk till exempel VHDL. Synplify är ett program speciellt gjort för syntes och optimering för FPGA och avancerade PLD:er. Det finns flera steg i syntesen. Första steget är språksyntes; det hårdvarubeskrivande språket kompileras till kända byggstenar. Andra steget är optimering, där algoritmer används för att göra kretsen så liten och snabb som möjligt. Första optimeringen är oberoende av målteknologin och därför enkel, medan resten av optimeringen är gjord under sista steget. Sista steget är mappning till målteknologin. Målspecifika tekniker används, och en nätlista genereras i ett format som till exempel Xilinx place and route verktyg kan läsa. Xilinx mjukvara gör också den saker i flera steg. Första steget är översättning, där program-

27 18 HÅRDVARA OCH DESIGN met läser nätlistan från syntesprogramvaran och översätter den till ett för verktyget specifikt binärt format. Andra steget är Mappning, det vill säga att tilldela kretsens logiska byggstenar till specifika fysiska element, så som CLB:er och IOB:er. Tredje steget består av två delar nämligen place and route eller placering och sammankoppling. Placeringen består i att placera ut de block som under mappningen tilldelades uppgifter. Sammankopplingen är sedan just kopplingen mellan dessa logiska block. Efter dessa steg är implementationen klar och statisk tidsanalys kan göras. Man kan även utföra en så kallad Back annotation då den implementerade kretsen konverteras till en VHDL-nätlista och tidsdata är uttagna till en standard delay format (SDF) fil. Detta görs för att kunna göra tidssimuleringar av den färdiga implementationen, viket görs för att kolla att funktionen är den rätta och att det inte finns några tidsproblem i den färdiga designen. 3.6 Paketbaserad kommunikation För att skapa en fungerande kommunikation bör den ske i paketform, det vill säga ett paketformat definieras, vilket sedan går att följa för att avkoda de olika meddelanden som kan skickas över USB-porten. Enligt den definition av paketformat jag använt behövs ett escapetecken, en början respektive slut sekvens och ett id, alla delar är av bytestorlek. Till exempel: Paket innehållande ett kommando identifierat genom Id. [Esc][Begin][Id][Esc][End] Paket innehållande data identifierat genom Id. [Esc][Begin][Id][Data0][Data1]...[Datan][Esc][End] Id-byten talar om vad det är för paket som har överförts. Eftersom escapetecknet även måste användas i datat då det representerar ett värde, måste man behandla dem på ett särskilt sätt. Varje gång man vill skicka värdet som escape-tecknet representerar måste man sända två escape-tecken efter varandra, för att det inte ska feltolkas som en början- eller slutsekvens. I figur 3.4 beskrivs uppackning av ett paket konstruerat enligt ovan angivna format. Det kan dock påpekas att vid denna uppackning tas ingen hänsyn till idtecken, vilket resulterar i att man efter uppackning får en rad med bytes av vilka den första är idtecknet och eventuell fortsättning är data. Här kommer en beskrivning av villkor och resultat av tillståndsbyten i maskinen: 1. Maskinen står kvar i Vänta-läge så länge det inte kommer ett escapetecken. 2. Om ett escapetecken mottagits går maskinen till läget Vänta-esc. 3. I det fall att man i Vänta-esc tillståndet får det tecken som tillsammans med escapetecknet formar börjasekvensen går man vidare för att vänta på innehållet i paketet. 4. Så länge ny data innehållande vilket tecken som helst, för utom escapetecknet så fortsätter maskinen i Data-tillståndet och sparar undan de tecken som mottages. 5. I det fall ett escapetecken mottages så går maskinen till läget Data-esc för att kunna avgöra om det är en databit eller en styrsignal, till exempel början eller slut sekvens.

28 3.7. DESIGN 19 main 50MHz mem_usb_bridge USB245M usb_cntr rx/tx fifo gränssnitt registers config värden SDRAM gränssnitt xsasdramcntl SDRAM measure_cntr DATA IO gränssnitt AD/DA frekvens Figur 3.5: Block och gränssnitt i FPGA:n 6. Om det i en dataföljd kommer två på varandra följande escapetecken så representerar det värdet hos escapetecknet, och maskinen återgår till att vänta på data. Om man av någon anledning skulle få en startsekvens under Data-esc tillståndet, vilket man inte bör få om allt fungerar som det ska, så måste databufferten tömmas innan maskinen går till Data-tillståndet för att ta emot det nya paketet. 7. När slutsekvensen kommer så har man ett helt paket och kan gå vidare till att processa den data man fått eller gå tillbaka till Väntatillståndet, för att invänta nästa paket. 8. Om man i Vänta-esc inte erhåller ett tecken som tillsammans med escapetecknet bildar börjasekvensen så återgår man till Väntaläge för att invänta början på ett paket. 9. I det fall att ett escapetecken mottages i Vänta-esc tillståndet så står maskinen kvar i Vänta-esc då det kan vara början på en börjasekvens. 3.7 Design För att förklara funktionaliteten ska jag här beskriva vilka block jag valt att dela upp konstruktionen i. Hur blocken pratar med varandra dvs deras gränssnitt. Detta utan att gå ner på allt för djup nivå, se figur 3.5.

29 20 HÅRDVARA OCH DESIGN Block Inneslutande alla andra block har jag toppblocket, som jag kallat "main". För att prata med USB kontrollern har jag sedan "usb_cntr". Som SDRAM modul använder jag en något modifierad och buggfixad variant av en färdig SDRAM kontroller hämtad från XESS hemsida, de kallar den för "xsasdramcntl". Sedan har vi själva funktionaliteten hos mätaren, för att det inte ska bli för otymplig kod har jag valt att dela upp hanteringen av olika kommandon i tre block. Dessa block är mem_usb_bridge, register och measure_cntr vilkas funktion beskrivs nedan main Huvudblocket main representerar hur de övriga blocken ska kopplas samman och hur de ska kopplas till omvärlden. Detta block kan ses i figur 3.5, allt inom den grövre streckade linjen är main blocket. Denna figur beskriver mycket av den funktion main blocket har usb_cntr Denna enhet tar emot kommando och data paket skickade från PC:n och sänder även tillbaka svar till PC:n från de tre styrblocken. Innehåller mottagande och sändande först in först ut buffertar, så kallade FIFO buffertar. Har hand om kommunikationen med USB enheten, DLP-USB245M. DLP-kretsen innehåller även den två köer (FIFO) en för sändning och en för mottagning. Dessa fungerar som en buffert mot USB-porten så att man inte behöver synkronisera med datorn. DLP enheten kräver en specifik styrning och synkronisering som kunde ses i figur 3.2. Det är dock en klar fördel att inte behöva hantera USB-portens protokoll utan istället kunna läsa och skriva en byte åt gången. Detta block innehåller uppackning av paket på det sätt som fins beskrivet i kapitel mem_usb_bridge Styrblock nummer ett är dedikerat åt att låta PC:n skriva och läsa i SDRAM minnet. När detta block blir aktiverat för att läsa eller skriva så börjar det med att avkoda kommandot som skickats. Vid läsning så kommer först startadressen, på vilken position i minnet det första värdet ska läsas ifrån. Sedan kommer stopadressen, på vilken läsningen från minnet ska avslutas. Vid skrivning kommer först en startadress på vilken det första värdet ska skrivas, sedan kommer datat. Vid en läsning så läses alla värden från minnet som ligger mellan start och slutadressen och placeras i sändfifon hos usb_cntr, vid en skrivning så placeras alla data som finns i usb_cntr:s mottagningsbuffert från startadressen och framåt i minnet registers Styrblock nummer två innehåller register som kan hålla konfigurationsdata som skickas från PC:n, vilka används vid mätning. SDRAM minnet är, som tidigare nämnt, uppdelat i Mottagande, Rx, och sändande, Tx, del. Den sändande delen är där instrumentet tar den stimuli som skickas till ultraljudsgivaren vid excitering. De ekon som sen mottages samplas till den mottagande delen av minnet. Här följer en lista med de register som finns och vad deras konfigurationsvärde representerar.

30 3.7. DESIGN 21 RxBufferBegin Adressen för början på det mottagande minnet. RxBufferEnd Adressen för slutet på det mottagande minnet. TxBufferBegin Adressen för början på det sändande minnet. TxBufferEnd Adressen för slutet på det sändande minnet. RxGain Förstärkningsgraden hos den ingående förstärkaren. TriggerDelay Den tid instrumentet ska vänta från det att den sänt allt i sändbufferten tills dess att den ska börja sampla nya invärden measure_cntr Styrblock nummer tre är det som styr själva mätningen. När en mätning aktiveras så är det detta block som tar kommandot i FPGA:n och ser till att mätningen utförs enligt plan. Ultraljudsgivaren exciteras med signalen som finns i SDRAM, sedan ställs mätaren om till mottagning och ekot sparas i en annan del av SDRAM minnet. Även förstärkningen hos ingångsförstärkaren ställs in i enlighet med konfigurationen xsasdramcntl En SDRAM kontroller från labbkortstillverkaren har använts. Application Note av D. Vanden Bout, XSA Board SDRAM Controller [10] innehåller en fungerande kontroller och ett testprogram. Kontrollern finns för att underlätta läsning och skrivning mot SDRAM modulen, och för att underhålla den med refresch signaler inom rätt intervall. Mer om SDRAM modulen hittas i kapitel Gränssnitt Vi kan dela in gränssnitten i externa och interna gränssnitt. De externa gränssnitten är det som usbmodulen, DLP-USB245M, använder, det som SDRAM minnet använder och slutligen gränssnittet mot DA och AD omvandlare, Data IO. Dessa externa gränssnitt är det vi har att arbeta mot. De interna gränssnitten däremot är skapade för att separera funktionaliteten hos instrumentet på ett så logiskt och lättarbetat sätt som möjligt. De interna gränssnitten har jag döpt till rx/tx fifo och r/w SDRAM. Nedan följer en beskrivning av dessa gränssnitt.

31 22 HÅRDVARA OCH DESIGN 1 6 Vänta 2 3 Klar Kolla 5 4 Styrning av modulens funktion Figur 3.6: rx/tx fifo-gränssnitt, för styrblocken DLP-USB245M Ett externt gränssnitt som implementerats i usb_cntr blocket och som beskrivs närmare i kapitel rx/tx fifo När ett helt paket är mottaget så flaggar usb_cntr för att ett nytt kommando ligger och väntar. Då kollar alla styrblocken om det är ett kommando de ska ta hand om, annars går de och vilar igen. Från usb_cntr:ens sida väntar den bara på en klar signal från någon av styrenheterna, för att sedan åter vara beredd att motta fler paket. Usb_cntr kontrollerar vid klarsignal om sin sändfifo är tom annars sänds det som ligger i fifon innan den åter väntar på nästa anländande paket. För att svara mot detta gränssnitt har alla styrblock samma grund i sina tillståndsmaskiner. Denna grund kan ses i figur 3.6. Denna tillståndsmaskin fungerar på följande sätt (siffror i figuren): 1. Väntar på att få reda på att ett paket är mottaget 2. När ett nytt paket är mottaget så är första biten i rxfifon idbiten och alla styrblock kan se den. Alla går till kontrolltillståndet för att se om det är det som ska vakna. 3. Om Id:t inte känns vid av det aktuella blocket så går det åter och väntar på nästa paket.

32 3.7. DESIGN 23 clk rd haddr A1 A2 A3 earlyopbegun done hdout D(A1) D(A2) D(A3) Figur 3.7: SDRAM-kontroller läsoperation clk wr haddr A1 A2 A3 hdin D1 D2 D3 earlyopbegun Figur 3.8: SDRAM-kontroller skrivoperation 4. När ett paket har ett id som blocket känner igen så vaknar det upp och utför sin uppgift. 5. Efter att blocket utfört sin uppgift så går den till ett tillstånd för att signalera att uppgiften är slutförd, så att instrumentet kan fortsätta med nästa uppgift. 6. Efter att ha signalerat "uppgift slutförd" så återgår blocket till att vänta på nästa paket r/w SDRAM SDRAM kontrollern xsasdramcntl[10] har ett gränssnitt som lättast beskrivs med några kurvor. Figur 3.7 visar hur läsning av i det här fallet tre värden från minnet går till. Man börjar med att sätta haddr till den första adressen man vill läsa, och sätter rd till 1. earlyopbegun talar om ifall adressen har mottagits och man kan byta adress till nästa klockcykel. om inte early- OpBegun är hög så får man vänta tills den är aktiveras innan man går vidare och byter adress. Data finns sedan att hämta från hdout när done-signalen är hög. Figur 3.8 visar en skrivning av tre data till minnet går till. Adressen man vill skriva till läggs på haddr och datat man vill

33 24 HÅRDVARA OCH DESIGN Tecken Värde(Dec) Värde(Hex) [Esc] [Begin] 2 02 [End] 3 03 Tabell 1: ASCII-värden valda för paketkommunikation skriva läggs på hdin, sedan sätter man wr hög och byter till nya data med respektive adress om earlyopbegun är hög. Detta gränssnitt gör det möjligt att skriva eller läsa data nästan på varenda klockcykel, så länge minnet inte behöver göra refreschcykler SDRAM Det externa gränssnitt mellan minnesmodulen och FPGA:n som i detta arbete implementeras av ett färdigt block från tillverkaren av prototypkortet. Blocket kallas xsasdramcntl. Minnesmodulen beskrivs i kapitel DATA IO Detta interface är inte riktigt färdigdefinierat då den analoga sidan av instrumentet inte är färdigt. I specifikationen så anges en 12 bitars analog till digital omvandlare, som använder en klockfrekvens på 65 MHz. På grund av att minnet ska hinna med kommer instrumentet att använda en annan klockfrekvens än omvandlaren. Instrumentet måste klockas snabbare än omvandlaren för att hinna spara undan de data som kommer från den. En asynkron fifo används för att synkronisera mellan de två klockdomänerna. Om man i framtiden vill använda en 16 bitars omvandlare är det också möjligt då jag bara bortser från de extra bitar som finns tillgängliga. Gränssnittet har två 16 bitars asynkrona fifos, en för in och en för ut data så att både analog till digital och digital till analog omvandlaren existerar i 65 MHz-domänen. De två klockdomänerna kan ses i fig Kommunikation Kommunikationen mellan datorn och mätutrustningen görs i paketform, som beskrivet tidigare (kapitel 3.6). Detta paketsystem är uppbyggt på escapesekvenser. Med Värden enligt Tabell 1. Escapesekvenserna är: [Esc][Begin] - Börjasekvensen, som alla paket inleds med. [Esc][End] - Slutsekvensen, som avslutar alla paket. [Esc][Esc] - Om man i ett paket vill få med värdet av escapetecknet så måste man skicka det som två på varandra följande escapetecken. Olika kommandon har olika id, så här följer en lista på de kommandon som instrumentet svarar på, vilket id de har och vad de representerar. Id:t är skrivet både som decimaltal och hexadecimalt på formen Dec(xHex). Vad de olika registren representerar kan ses i kapitel

34 3.7. DESIGN 25 setrxbufferbegin Id: 20(x14). Kommandot skriver ett 32 bitars konfigurationsvärde till RxBuffertBegin registret. getrxbufferbegin Id: 21(x15). Kommandot läser ut ett 32 bitars konfigurationsvärde från RxBuffertBegin registret. setrxbufferend Id: 22(x16). Kommandot skriver ett 32 bitars konfigurationsvärde till RxBuffertEnd registret. getrxbufferend Id: 23(x17). Kommandot läser ut ett 32 bitars konfigurationsvärde från RxBuffertEnd registret. settxbufferbegin Id: 24(x18). Kommandot skriver ett 32 bitars konfigurationsvärde till TxBuffertBegin registret. gettxbufferbegin Id: 25(x19). Kommandot läser ut ett 32 bitars konfigurationsvärde från TxBuffertBegin registret. settxbufferend Id: 26(x1A). Kommandot skriver ett 32 bitars konfigurationsvärde till TxBuffertEnd registret. gettxbufferend Id: 27(x1B). Kommandot läser ut ett 32 bitars konfigurationsvärde från TxBuffertEnd registret. setrxgain Id: 30(x1E). Kommandot skriver ett 16 bitars konfigurationsvärde till RxGain registret. getrxgain Id: 31(x1F). Kommandot läser ut ett 16 bitars konfigurationsvärde från RxGain registret. settriggerdelay Id: 32(x20). Kommandot skriver ett 16 bitars konfigurationsvärde till TriggerDelay registret. gettriggerdelay Id: 33(x21). Kommandot läser ut ett 16 bitars konfigurationsvärde från TriggerDelay registret. start Id: 44(x2C). Kommandot startar en mätning, förutsatt att konfigurationsvärden är satta rätt så genomförs en mätning.

35 26 IMPLEMENTATION OCH RESULTAT writememory Id: 50(x32). Skriver data till minnet. Tar först ett 32 bitars värde som anger startadressen. sedan följer 16 bitars data, så många man vill skriva. readmemory Id: 51(x33). Läser data från minnet. Tar två 32 bitars värden, där det första är startadressen och det andra är stopadressen. Kommandot returnerar alla 16 bitars värden mellan de två adresserna.

36 KAPITEL 4 Implementation och resultat Kapitlet redogör för hur implementationen gått och de resultat som uppnåtts. Först det fysiska byggandet av labbsystemet, sedan verifiering av detsamma. Slutligen implementationen av de olika delarna av designen. 4.1 Koppling Sammankopplingen av de två korten, XSA-50-kortet och DLP-USB245M-kortet gjordes på ett prototypkort. Ett problem för kopplingen mellan de två är att hitta oanvända pinnar från FPGA:n, som även är uttagna till XSA-kortets prototypanslutningar. Vid en snabb titt, närmare bestämt när det beslutades att detta kort skulle användas för framtagning av utrustningen, så såg det ut att inte vara något problem, sådär en pinnar såg ut att vara nåbara. Det har dock visat sig att många av FPGA:ns pinnar används för kopplingar till de kretsar som redan finns på XSA-kortet, helt obundna är endast nio av pinnarna. Detta i kombination med att pinnarna från FPGA:n är utdragna till prototypanslutningarna på ett sådant sätt att de inte är i ordning, gör planeringen av kopplingarna komplicerad. För att kunna använda de resterande pinnarna måste man ta särskild hänsyn och även skriva in rutiner för att kunna använda vissa. 4.2 Verifiering av hårdvara För detta arbete så finns det två distinkta delar som måste fungera för att arbetet ska gå att genomföra, nämligen minnet och kommunikationen genom usb. Att testa om minnet fungerar eller inte gick att genomföra med exempelkod tillhandahållen av labbkortstillverkaren. Dock var denna kod dåligt dokumenterad så det krävdes laborerande innan det gick att avgöra att minnet var ok. Det var lite svårare att avgöra om kommunikationen via usb fungerar då det inte finns någon färdig kod för detta, och då man måste ha något sätt att avgöra om man lyckas överföra något. Ett annat problem var att de fanns olika drivrutiner till USB-modulen. En drivrutin som simulerar att den är en comport fick jag slutligen att fungera tillsammans med programmet som körs på PC:n för att kommunicera med modulen. 27

37 28 IMPLEMENTATION OCH RESULTAT En enkel kommunikationskod för att ta emot data från datorn skrevs och även en modul för att kunna visa tal på den på labbkortet inbyggda lysdiodsdisplayen. Fel uppstod till synes slumpmässigt och djupare undersökning krävdes. Kod för att kunna sända data till datorn skrevs och det var nu lättare att felsöka kommunikationen. Efter många försök visade det sig att två ledningar som valts inte var lämpliga eftersom de var beroende respektive användes till lysdiodsdisplayen. Manualen till labbkortet luslästes och två nya ledningar valdes. Vid dessa test hade en annan än den önskade klockfrekvensen använts och koden fungerade bara vid denna frekvens, men den kunde i alla fall påvisa att hårdvaran för USB-kommunikationen fungerade som den ska. 4.3 Kommunikation Komplexiteten i att designa ett kommunikationssystem är ganska stor när man ska göra det i hårdvara, så denna del krävde noga planering och många test testbänk För att kunna testa om kommunikationen fungerar genom simulering kräver det att man skriver en testbänk. I detta fall behövs en testbänk som simulerar USB-modulens funktionalitet utveckling och simulering Efter ovärderlig hjälp från min handledare, fungerar nu kommunikationen felfritt. Förbättringar är möjliga, mer om det nämns senare i raporten i kapitlet diskussion och slutsatser test på hårdvara Från början användes ett testprogram som tillverkaren av DLP-USB245M modulen tillhandahåller. Denna var dock något instabil och var inte så lämpad för uppgiften. För att kunna testa kommunikationen på ett mer systematiskt sätt så skrevs ett litet Java-program som kommunicerar med instrumentet via drivrutinen som maskerar usb:n som en comport. Javaprogrammet utökades ytterligare för att kunna användas som modul för Matlab. Denna modul har genomgått test, i form av slumptal som skrivits till minnet och sedan lästs tillbaka för att slutligen jämföras med den data som skrevs till minnet. Hela minnet skrevs och lästes upprepade gånger i överföringar av skiftande storlek, inga fel uppstod. 4.4 Minne Minnesmodulen SDRAM minnet krävde en del arbete trotts att jag här använde en färdig kontroller.

38 4.5. MÄTNING testbänk Från Samsung så fick jag tag i en verilog-modell av minnet som gick att simulera emot. Efter att ha justerat min testbänk att lägga in en viss fördröjning mellan minnet och FPGA:n så fungerade den utveckling och simulering Application Note av D. Vanden Bout, XSA Board SDRAM Controller [10] innehåller en fungerande kontroller och ett testprogram. Dock hade jag problem att simulera kontrollern, men efter att ha rättat några småfel i deras kod så fungerar den i simulatorn test på hårdvara Kontrollern fungerade redan utan korrigeringar i hårdvaran, men jag antar att det inte spelar någon roll om den får göra åtskilliga instruktioner i början för att en räknare "slår över". En räknare som ska vara 0 blir satt till räknarens maxvärde av misstag under initieringen, och så många instruktioner utförs. 4.5 Mätning Då det inte finns tillräckligt med pinnar på labbkortet för att fysiskt kunna koppla in riktiga AD- och DA-omvandlare så får det bli någon annans uppgift att ta ett annat labbkort som är mer lämpat för uppgiften och bygga ihop den färdiga mätaren. Dock tänker jag genom simulering visa att koden har stöd för de funktioner som då kommer att behövas testbänk Utökas med möjlighet att läsa indata från en fil. Enkla modeller för AD- och DA-omvandlarna har även skapats utveckling och simulering Styrning av mätförloppet. measure_cntr-blocket som styr hela mätningen börjar med att läsa från minnet de data som ligger på adresserna mellan txbufferbegin och txbufferend. Datat matas in i en asynkron fifo som används för att länka mellan de två klockdomänerna. När fifon är full eller när det är slut på data att skicka, vilket som händer först, så börjar instrumentet skicka data till ultraljudsgivaren. När fifon är tom så väntar instrumentet ett förutbestämt antal klockcykel, triggerdelay. Sedan aktiveras analog till digital omvandlaren och en mottagande asynkron fifo börjar fyllas, samtidigt som instrumentet skriver data till minnet så fort det finns data i fifon. Datat skrivs från adressen rxbufferbegin och framåt. En räknare håller reda på hur många mätvärden som läses in, det vill säga hur många klockcykler som passerar i omvandlarnas tidsdomän från det att AD-omvandlaren aktiveras. När önskat antal mätningar

39 30 DISKUSSION OCH SLUTSATSER gjorts, det vill säga rxbufferend-rxbufferbegin så avslutas mätningen och instrumentet återgår till viloläge.

40 KAPITEL 5 Diskussion och slutsatser Detta kapitel behandlar det slutliga resultatet och vad som skulle gå att göra bättre. Slutligen nämns även möjligheter till fortsatt arbete. 5.1 Mätinstrumentet Omfattningen av detta exjobb var att implementera den digitala delen av ett mätinstrument för mätning enligt ultraljudseko-metoden. Instrumentet ska kunna utföra följande. Styra en 12 bitars ADC, klockad i 65 MHz. Styra förstärkningsfaktor hos ingångsförstärkaren. Styra mätningsförloppet, med sändning fördröjning och mottagning. Konfigureras och ange aktuell konfiguration. Bli initierad med exciteringsdata, och läsa tillbaka exciteringsdata redan i minnet. läsa ut mottagen data, och skriva över den mottagna datan. Då endast den digitala delen av instrumentet är färdig finns ingen AD eller DA att testa mot, men dessa delar är testade med simulering. Övriga delar fungerar enligt ovan. För att kunna bygga en färdig mätare måste ett annat labbkort eller ett egenkostruerat kretskort användas som har möjlighet att använda fler av FPGA:ns datapinnar. Av detta arbete kan man dra slutsatsen att använd FPGA och Minnesmodul är väl valda för uppgiften och att det nu finns en plattform att bygga ett färdigt instrument på. 5.2 Möjliga förbättringar SDRAM minnet borde gå att använda som buffert för usbkommunikationen förutsatt att inte hela minnet används just vid det tillfället, som till exempel vid laddning av exciteringspuls till 31

41 32 DISKUSSION OCH SLUTSATSER instrumentet. Detta skulle göra att hela pulsen kunde skickas i ett stort paket utan att tumma på paketprotokollet. Som designen är nu finns det möjlighet att låsa instrumentet så att man måste starta om det. Detta skulle gå att komma runt men kräver omstruktureringar. 5.3 Fortsatt arbete Detta arbete blir lite haltande fram till dess att någon tar sig an att göra den analoga sidan av mätinstrumentet. Jag hoppas därför att någon tar sig an denna uppgift så snart som möjligt.

42 Referenser [1] J. Carlson, M. Nilsson, E. Fernández, and J. Planell, Monitoring the setting of injectable calcium-based bone cements using pulse-echo ultrasound, in IEEE Int. Ultrason. Symp., (Munich, Germany), pp , [2] M. Nilsson, J. Carlson, E. Fernández, and J. Planell, Monitoring the setting of calciumbased bone cements using pulse-echo ultrasound, Journal of Materials Sience, vol. 37, no. 13, pp , [3] J. Carlson, M. Nilsson, E. Fernández, and J. Planell, An ultrasonic pulse-echo technique for monitoring the setting of CaSO 4 -based bone cement, Biomaterals, vol. 24, no. 1, pp , [4] S. electronics, [5] D. D. Inc, [6] X. E. S. S. Corp., [7] X. Inc, [8] S. Inc, [9] M. T. Inc, [10] D. V. Bout, Xsa board sdram controller, application note, XESS Corp.,

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

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

VHDL 1. Programmerbara kretsar

VHDL 1. Programmerbara kretsar VHDL 1 Programmerbara kretsar CPLD FPGA VHDL Kombinatorik with-select-when when-else Sekvensnät process case if-then-else Programmerbara kretsar PLD = programmable logic device CPLD = complex PLD, i princip

Läs mer

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning...

DIGITAL ELEKTRONIK. Laboration DE3 VHDL 1. Namn... Personnummer... Epost-adress... Datum för inlämning... UMEÅ UNIVERSITET Tillämpad fysik och elektronik 2014 John Berge et al. DIGITAL ELEKTRONIK Laboration DE3 VHDL 1 Namn... Personnummer... Epost-adress... Datum för inlämning... Introduktion Syftet med denna

Läs mer

Konstruktionsmetodik för sekvenskretsar. Föreläsning 7 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik

Konstruktionsmetodik för sekvenskretsar. Föreläsning 7 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik Konstruktionsmetodik för sekvenskretsar Föreläsning 7 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik 2 Dagens föreläsning Initiering av starttillstånd Programmerbar logik Syntesflödet

Läs mer

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll: F: Minneselement Innehåll: - Latchar - Flip-Flops - egister - Läs- och skrivminne (andom-access Memory AM) - Läsminne (ead Only Memory OM) Ett minneselements egenskaper Generellt sett så kan följande operationer

Läs mer

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk

LiTH Lab1: Asynkron seriell dataöverföring via optisk länk Laboration 1. Asynkron seriell dataöverföring via optisk länk Lab: 2007-09-06 Laboration Asynkron seriell dataöverföring via optisk länk Kravspecifikation Lennart Bengtsson Version.4 Granskad Godkänd Status Lennart Bengtsson Sida PROJEKTIDENTITET Laborationsgrupp,

Läs mer

Läsminne Read Only Memory ROM

Läsminne Read Only Memory ROM Läsminne Read Only Memory ROM Ett läsminne har addressingångar och datautgångar Med m addresslinjer kan man accessa 2 m olika minnesadresser På varje address finns det ett dataord på n bitar Oftast har

Läs mer

Konstruktionsmetodik för sekvenskretsar

Konstruktionsmetodik för sekvenskretsar Konstruktionsmetodik för sekvenskretsar Digitalteknik Föreläsning 7 Mattias Krysander Institutionen för systemteknik Dagens föreläsning Inför laboration 2 Synkronisering av insignaler Asynkrona ingångar

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

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

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

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik Programmerbara kretsar och VHDL 2 Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik 2 Dagens föreläsning Programmerbara kretsar igen Mer om processer Egna typer Använda

Läs mer

Digitala projekt rapport

Digitala projekt rapport Digitala projekt rapport Alexander Westrup, d04aw@student.lth.se Martin Sandgren, d04ms@student.lth.se 4 december 2007 Innehåll 1 Abstract 1 2 Inledning 1 3 Arbetsgång 1 4 Hårdvara 1 4.1 Processor...............................

Läs mer

Innehåll. 1 Inledning 3

Innehåll. 1 Inledning 3 Digitala projekt Tomas Bjerre D04 d04tb@student.lth.se Gustav Reiz D04 d04gr@student.lth.se Roger Schildmeijer D04 d04rp@student.lth.se 26 februari 2008 1 Innehåll 1 Inledning 3 2 Utrustning 3 2.1 ATMega16...............................

Läs mer

KALKYLATOR LABORATION4. Laborationens syfte

KALKYLATOR LABORATION4. Laborationens syfte LABORATION4 KALKYLATOR Laborationens syfte I denna laboration ska en enkel kalkylator konstrueras med hjälp av VHDL och utvecklingsverktyget Vivado från Xilinx. Hårdvaran realiseras på det redan bekanta

Läs mer

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012 Med kommentarer för kursen ht 2012 2012 CR:1 CoolRunner-II CPLD Starter Kit är ett litet utvecklingssystem för Xilinx-kretsen XC2C256. Utvecklingskortet kommer från företaget Digilent. Vid laborationerna

Läs mer

Digitalteknik: CoolRunner-II CPLD Starter Kit

Digitalteknik: CoolRunner-II CPLD Starter Kit CR:1 CoolRunner-II CPLD Starter Kit är ett litet utvecklingssystem för Xilinx-kretsen XC2C256. Utvecklingskortet kommer från företaget Digilent. Vid laborationerna i digitalteknik kommer kortet att användas

Läs mer

L15 Introduktion modern digital design

L15 Introduktion modern digital design L15 Introduktion modern digital design Upplägg LP2 F15 Introduktion till modern digital design F16 Kombinatoriska nät i VHDL F17 Sekvensnät i VHDL F18 Gästföreläsning (Advenica, fortsättningskurser) F19

Läs mer

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya Random Access Memory Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya Introduktion Historia Vad är RAM? Hur fungerar RAM? Dataöverföring, tidsklocka och termer Vilka är de olika typerna av RAM? Vad

Läs mer

PROGRAMMERING AV MCU LABORATION6. Laborationens syfte

PROGRAMMERING AV MCU LABORATION6. Laborationens syfte PROGRAMMERING AV MCU LABORATION6 Laborationens syfte I denna laboration ska MCUn som konstruerades i laboration 5 programmeras. Instruktionerna som vi har tillgång till är de som implementerades i instruktionsavkodaren

Läs mer

Bruksanvisning. Swema AB Tel: 08-940090 www.swema.se. För support och nedladdning av aktuell programvara kontakta: 2006-05 - 01

Bruksanvisning. Swema AB Tel: 08-940090 www.swema.se. För support och nedladdning av aktuell programvara kontakta: 2006-05 - 01 Bruksanvisning För support och nedladdning av aktuell programvara kontakta: Swema AB Tel: 08-940090 www.swema.se 2006-05 - 01 Beskrivning R1 gör exakt vad som krävs av en radonmätare. Vid en radonhalt

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Översikt När flera minnesmoduler placeras i processorns

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

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

INTRODUKTION TILL VIVADO

INTRODUKTION TILL VIVADO INTRODUKTION TILL VIVADO LABORATION1 Under laborationerna kommer vi att konstruera/beskriva ett antal kretsar med hjälp av VHDL (Very high speed integrated circuit Hardware Description Language). För att

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

www.radonelektronik.se Bruksanvisning www.radonelektronik.se 2006-03 - 01

www.radonelektronik.se Bruksanvisning www.radonelektronik.se 2006-03 - 01 www.radonelektronik.se Bruksanvisning www.radonelektronik.se 2006-03 - 01 Beskrivning R1 gör exakt vad som krävs av en radonmätare. Vid en radonhalt på 200 Bq/m 3 tar det endast 4 timmar att uppnå en statistisk

Läs mer

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Styrteknik 7.5 hp distans: E-1000 och E-Designer PLC8A:1 E1000 operatörsterminaler En operatörsterminal ger ett gränssnitt mellan männinska-maskin, (MMI människa-maskininteraktion, HMI Human Machine Interface) Alla terminalerna i E1000-serien är utvecklade

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

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager ANVÄNDAR MANUAL SESAM 800 RX MC Manager Åkerströms Björbo AB Box 7, SE-780 45 Gagnef, Sweden street Björbovägen 143 SE-785 45 Björbo, Sweden Phone +46 241 250 00 Fax +46 241 232 99 E-mail sales@akerstroms.com

Läs mer

Instruktioner för uppdatering av enheter med ISP

Instruktioner för uppdatering av enheter med ISP För AP produkter som använder ISP måste flashuppdateringen göras med hjälp av den medföljande MPC Manager. För att utföra en firmware uppdatering, följ dessa instruktioner: 1. Ladda ner och installera

Läs mer

Systemkonstruktion SERIEKOMMUNIKATION

Systemkonstruktion SERIEKOMMUNIKATION Systemkonstruktion SERIEKOMMUNIKATION Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-04-26 Syfte Laborationen syftar till att ge studenten tillfälle att närmare bekanta sig med RS-232-protokollet,

Läs mer

JavaScript Block Editor:

JavaScript Block Editor: Micro:bit Tärningen Att räkna med slumpen genom t.ex. tärningsslag och föra statistik över antal slag kan vara tidskrävande. Speciellt om man ska gör 100 st eller 1000 st kast. Genom att använda programmering

Läs mer

Avståndsmätare. Digitala System EITA Grupp 7. Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors

Avståndsmätare. Digitala System EITA Grupp 7. Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors Avståndsmätare Digitala System EITA15 2019-05-21 Grupp 7 Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors Handledare: Bertil Lindvall, Lars-Göran Larsson Abstract There are some situations

Läs mer

Digitalteknik och Datorarkitektur 5hp

Digitalteknik och Datorarkitektur 5hp Digitalteknik och Datorarkitektur 5hp Minnes-hierarkier och Cache 12 maj 2008 karl.marklund@it.uu.se issa saker använder vi ofta Dessa saker vill vi ha nära till hands Storleken har betydelse Litet är

Läs mer

Projektlaboration 4, synkronisering av klockan

Projektlaboration 4, synkronisering av klockan Namn: Laborationen godkänd: Digitala system 15 p L T H I n g e n j ö r s h ö g s k o l a n v i d C a m p u s H e l s i n g b o r g Datorprojekt, del 4 Projektlaboration 4, synkronisering av klockan Asynkron

Läs mer

Paketförstörare Implementerad på XESS XSV800 labbkort

Paketförstörare Implementerad på XESS XSV800 labbkort aketförstörare Implementerad på XESS XSV800 labbkort rojektrapport i kursen SMD106 av Markus Finér (780726-2014) Urban Classon (760516-8918) 2003-03-04 Abstrakt När man tar fram och utvecklar nya kommunikationsprotokoll

Läs mer

Digitala projekt Elektro- och informationsteknik

Digitala projekt Elektro- och informationsteknik Digitala projekt Elektro- och informationsteknik Digitala projekt (I) VT1 huvudsakligen teori och VT2 konstruktionsarbete i projektlabb 10 hp motsvarar ca 7 veckor heltid! Godkännande; U, G Gruppstorlek;

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Översikt När flera smoduler placeras i processorns adressrum ansluts modulernas adressingångar till motsvarande ledningar i en. Övriga adressledningar i bussen

Läs mer

Föreläsning 4 IS1300 Inbyggda system

Föreläsning 4 IS1300 Inbyggda system Föreläsning 4 IS1300 Inbyggda system Programutveckling Exempel PingPong Idé Tillståndsdiagram State machine Skapa projekt Testning av programvara Peripheral Library till STM32 Programmeringsuppgiften RS232

Läs mer

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK. Tomas Nordström Högskolan i Halmstad Dokumentversion 0.1, 2012-04- 01 Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK. Informationen till detta kompendium är

Läs mer

MESI i Intel Core 2 Duo

MESI i Intel Core 2 Duo MESI i Intel Core 2 Duo Sammanfattning Denna rapport beskriver en processor (Intel Core 2 Duo) vars cache coherence protokoll är MESI. Rapporten beskriver hur processorn är uppbyggd, hur många kärnor den

Läs mer

Blue Key Digitala projekt VT

Blue Key Digitala projekt VT Blue Key Digitala projekt VT 2 2004 Maj 2004 Martin Erikson, E00 Mikael Andersson, E00 Department of Information Technology 0 Lund Institute of Technology Sammanfattning Denna rapport behandlar vårt projekt

Läs mer

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen 68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder

Läs mer

Pipelining i Intel 80486

Pipelining i Intel 80486 Lunds Universitet Pipelining i Intel 80486 EITF60 Datorarkitekturer med operativsystem Martin Wiezell 2017-12-04 Abstract This paper gives a brief description of the instruction pipeline of the Intel 80486

Läs mer

Mätteknik 2016 Mätsystem

Mätteknik 2016 Mätsystem Mätteknik 2016 Mätsystem Per Augustsson [per.augustsson@bme.lth.se] Inst. för Biomedicinsk Teknik 1 Upplägg Mätsystem Om laborationen Lab View Laborationsövningar Inst. för Biomedicinsk Teknik 2 http://www.fitbit.com/jobs

Läs mer

Rubriker: Product & Services Technology Solutions Market Solutions Silicon Devices Design Tools Intellectual Property Boards & Kits

Rubriker: Product & Services Technology Solutions Market Solutions Silicon Devices Design Tools Intellectual Property Boards & Kits 2010-11-03/pls Rubriker: Product & Services Technology Solutions Market Solutions Silicon Devices Design Tools Intellectual Property Boards & Kits Programmable Logic DSP Embedded processing. Aerospace/Defence

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

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

Läs mer

GPIO - General Purpose Input Output

GPIO - General Purpose Input Output GPIO - General Purpose Input Output Ur innehållet: Ideala och verkliga signaler Bitvis in- och utmatning Anslutning - fysiskt gränssnitt F407 - GPIO-modul tillämpningar Läsanvisningar: Arbetsbok avsnitt

Läs mer

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04 Formula Blue Digitala Projekt 8p Jesper Ferm E02 Carl Hakenäs E04 Abstract The purpose with this project was to get some understanding how Bluetooth works and how to use it in practical applications. A

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

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Håkan Joëlson 2003-09-15 v 2.1 DIGITALTEKNIK Laboration D163 Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner

Läs mer

LabVIEW - Experimental Fysik B

LabVIEW - Experimental Fysik B LabVIEW - Robin Andersson Anton Lord robiand@student.chalmers.se antonlo@student.chalmers.se Januari 2014 Sammandrag Denna laboration går ut på att konstruera ett program i LabVIEW som kan på kommando

Läs mer

What Is Hyper-Threading and How Does It Improve Performance

What Is Hyper-Threading and How Does It Improve Performance What Is Hyper-Threading and How Does It Improve Performance Ali Muthanna, Lunds Universitet, IDA2, EDT621 Abstract Hyper-Threading (HT) is Intel s version of simultaneous multi-threading (SMT). Hyper-Threading

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-

Läs mer

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11 A basic -bit Select between various operations: OR, AND, XOR, and addition Full Adder Multiplexer Digitalteknik och Datorarkitektur hp Föreläsning : introduktion till MIPS-assembler - april 8 karlmarklund@ituuse

Läs mer

Manual Sportident Onlinekontroll via GPRS

Manual Sportident Onlinekontroll via GPRS Manual Sportident Onlinekontroll via GPRS 2010-08-22 Komponenter För att använda onlinekontroll över GPRS behövs tre delar: GPRS modul (GPRS-modem med samlingsbox och batterier). PC-mjukvara BBRClient

Läs mer

Programmering av. PADDY mini

Programmering av. PADDY mini multimedia Programmering av PADDY mini art. nr: CCS037 PRODUKTER SOM ANVÄNDS I DETTA EXEMPEL: PADDY mini CCS037 PADDY mini CCS012 PADDY mini CCS500 VSCOM USB TILL SERIELL DB9 LAPTOP MED WINDOWS 7 QUICKPAD

Läs mer

Digitala projekt - Radiostyrd bil

Digitala projekt - Radiostyrd bil Digitala projekt - Radiostyrd bil Handledare: Bertil Lindvall Johan Lennartsson e02jle David Thomasson e02dt Magnus Lisborg e02mls Innehållsförteckning 1. Inledning.3 2. Målsättning med projektet.......3

Läs mer

Grundläggande datavetenskap, 4p

Grundläggande datavetenskap, 4p Grundläggande datavetenskap, 4p Kapitel 2 Datamanipulation, Processorns arbete Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-09 IT och Medier 1 Innehåll CPU ALU Kontrollenhet Register

Läs mer

Cache coherence hos multicoreprocessorer

Cache coherence hos multicoreprocessorer Cache coherence hos multicoreprocessorer Benjamin Holmqvist, EDT621 December 5, 2016 1 Contents 1 Inledning 3 2 Syfte 3 3 Cache Coherence 3 3.1 Implementering.......................... 4 3.2 Snoop baserade..........................

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

DIGITALTEKNIK. Laboration D172

DIGITALTEKNIK. Laboration D172 UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Håkan Joëlson 2006-02-24 v 1.2 DIGITALTEKNIK Laboration D172 Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner

Läs mer

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit Vad är en UART? Beteckningen UART är en förkortning för det engelska uttrycket Universal Asynchronous Receiver Transmitter, vilket översatt till svenska blir ungefär Universell Asynkron Mottagare/Sändare.

Läs mer

Ett urval D/A- och A/D-omvandlare

Ett urval D/A- och A/D-omvandlare Ett urval D/A- och A/D-omvandlare Om man vill ansluta en mikrodator (eller annan digital krets) till sensorer och givare så är det inga problem så länge givarna själva är digitala. Strömbrytare, reläer

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

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning

Vad är kommunikation? Vad är datorkommunikation? Dataöverföring; Inledning Vad är kommunikation? Kommunikation är ett vitt begrepp. Vi använder det för att benämna till exempel ett samtal eller att vi själv förflyttar oss med till exempel tåg eller buss. Kommunikation kommer

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt

Läs mer

Introduktion till E-block och Flowcode

Introduktion till E-block och Flowcode Introduktion till E-block och Flowcode Vad är E-blocks? E-blocks är små kretskort som innehåller block av elektronik som man vanligtvis kan hitta elektroniska eller inbyggda system Det finns över 50 olika

Läs mer

WAGO IO System Service Seminar. Diagnostik

WAGO IO System Service Seminar. Diagnostik WAGO IO System Service Seminar Diagnostik 1 Dioder på Controller Link 1/2 Ethernet Länk status Av - ingen ethernet anslutning grön - Ethernet anslutning blinkande grön - Ethernet anslutning skickar / tar

Läs mer

Tentamen PC-teknik 5 p

Tentamen PC-teknik 5 p Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C

Läs mer

Adressrum, programmerarens bild

Adressrum, programmerarens bild EDA 480 2009/2010 MC68HC12, Uppbyggnad.pdf Ur innehållet: Datorns byggblock Busskommunikation Synkron buss Asynkron buss Multiplex-buss avkodning för minne och I/O Minnesavbildad I/O Direktadresserad I/O

Läs mer

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk RemoteBud Inlämnas: 2005-02-01 Patrik Johnsson, e01pjo Viktor Karlsson, e01vk Abstract Skulle du också vilja styra dina lampor och rulla ner dina persienner med hjälp av din TV-fjärrkontroll? Remotebud

Läs mer

USB till COM-port. Inlämningsuppgift 10b USB till COM-port. Här ska du: Installera en konverterare mellan gränssnitten USB och RS232 (COM-port).

USB till COM-port. Inlämningsuppgift 10b USB till COM-port. Här ska du: Installera en konverterare mellan gränssnitten USB och RS232 (COM-port). DATORTEKNIK 1A USB till COM-port Inlämningsuppgift 10b USB till COM-port Namn: Datum: Här ska du: Installera en konverterare mellan gränssnitten USB och RS232 (COM-port). Du behöver ha tillgång till följande:

Läs mer

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ? Styrteknik grundkurs Digitala kursmoment Binära tal, talsystem och koder Boolesk Algebra Grundläggande logiska grindar Minneselement, register, enkla räknare Analog/digital omvandling SR-latch med logiska

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

Datorsystem. Tentamen

Datorsystem. Tentamen Datorsystem Tentamen 2012-03-17 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller, illustrationer och beräkningar som används för att nå svaret ska också finnas med i lösningen.

Läs mer

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2018-01-09 8.00-13.00 (förlängd 14.00) Uppgifterna i tentamen

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1. Hur många unsigned integers kan man göra med n bitar? Vilket talområde får dessa

Läs mer

INTRODUKTIONSKURS Sport-Ident Degerfors OK

INTRODUKTIONSKURS Sport-Ident Degerfors OK INTRODUKTIONSKURS Sport-Ident Degerfors OK 2008-02-04 Sid 1/19 Kursinnehåll Syfte Genomgång av funktionalitet hos - Hårdvara - Mjukvara Genomgång av handhavandeinstruktioner Tips och råd vid programmering

Läs mer

Programmera Avant 5 med PC mjukvara

Programmera Avant 5 med PC mjukvara Programmera Avant 5 med PC mjukvara Installera mjukvaran på din PC Sätt i CD-skivan i PC:n. Kör filen setup.exe på CDskivan så startar installationen. Följ instruktionerna tills installationen är klar.

Läs mer

Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1

Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1 Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1 Digitala kursmoment D1 Binära tal, talsystem och koder D2 Boolesk Algebra D3 Grundläggande logiska grindar D4 Minneselement, register,

Läs mer

Instruktion för I/O-Kort, med USB-anslutning.

Instruktion för I/O-Kort, med USB-anslutning. Instruktion för I/O-Kort, med USB-anslutning. I/O-kortet har: 8 digitala ingångar. Avsedda för slutande kontakter. Gemensam plus-matning 15Volt. Öppen ingång = 0. 8 digitala utgångar. Utgångskrets typ

Läs mer

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost. Routingprocessen Vid kommunikation mellan datorer måste de känna till var och hur de skall skicka paketen, om de datorer som ska kommunicera ligger på samma IP-nät är det ju inget problem. Men är det så

Läs mer

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser Namn: Laborationen godkänd: Digitala system 15 hp AVR 3 - datorteknik LTH Ingenjörshögskolan vid Campus Helsingborg Avbrott. Syften med den här laborationen är att introducera avbrott. Avbrott som uppkommer

Läs mer

Exempeltentamen Datorteknik, EIT070,

Exempeltentamen Datorteknik, EIT070, Lunds Universitet LTH Exempeltentamen Datorteknik, EIT070, Skrivtid: xx.00-xx.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng För betyg

Läs mer

LEJON LABORATION3. Laborationens syfte

LEJON LABORATION3. Laborationens syfte LABORATION3 LEJON Laborationens syfte Syftet med laborationen är dels att lära känna laborationsutrustningen och dels att få en uppfattning om hur en digital konstruktion är uppbyggd, i detta fallet med

Läs mer

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem? Operativsystem DVG A06 Operativsystem, mm - Vad är ett operativsystem? - Hur fungerar det..? - Vad använder vi operativsystemet till? - Vilka olika operativsystem finns? 2 Definition Den del av systemet

Läs mer

EV3 Roboten. Sida 1 av 13

EV3 Roboten. Sida 1 av 13 EV3 Roboten Fyra output portar A,B,C och D(motorer) Fyra input portar 1,2,3 och 4 (sensorer) USB, Bluetooth, eller Wi-Fi koppling 16 MB flash minne 64 MB RAM SD Card Port: 32 GB Flera inbyggda verktyg

Läs mer

Diskprestanda Tester

Diskprestanda Tester Linnéuniversitetet Projektrapport Grundläggande Operativsystem 1DV415 Diskprestanda Tester Matteus Gilis, Linus Fogelström 9 januari 2014 Sammanfattning Vi ville utföra läs och skrivhastighets tester mellan

Läs mer

Digital- och datorteknik, , Per Larsson-Edefors Sida 1

Digital- och datorteknik, , Per Larsson-Edefors Sida 1 Digitala it elektroniksystem t Professor Per Larsson-Edefors perla@chalmers.se Digital- och datorteknik, 101122, Per Larsson-Edefors Sida 1 Introduktion Konstruktionsalternativ Kretskort med diskreta standardkomponenter.

Läs mer

Bussar och I/O. samt. vad kan man göra med NEXYS3

Bussar och I/O. samt. vad kan man göra med NEXYS3 Bussar och I/O samt vad kan man göra med NEXYS3 Den närmaste framtiden Grupp bildad Klar fredag 1600 Kravspec klar Vad ska ni bygga? Designskiss börjar Hur ska ni bygga den?... 5 6 7 8 9 PIPE-LAB UART-LAB

Läs mer

Sekvensnät i VHDL del 2

Sekvensnät i VHDL del 2 Laboration 6 i digitala system ht-16 Sekvensnät i VHDL del 2 Realisering av Mealy och Moore i VHDL............................. Namn............................. Godkänd (datum/sign.) 2 Laborationens syfte

Läs mer

Digital elektronik CL0090

Digital elektronik CL0090 Digital elektronik CL9 Föreläsning 3 27--29 8.5 2. My Talsystem Binära tal har basen 2 Exempel Det decimala talet 9 motsvarar 2 Den första ettan är MSB, Most Significant Bit, den andra ettan är LSB Least

Läs mer

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

F9: Minne. Sammansättning av minnesgrupper Ansluta minne till 68000 Interface till olika typer av minnen Användningsområden.

F9: Minne. Sammansättning av minnesgrupper Ansluta minne till 68000 Interface till olika typer av minnen Användningsområden. 1 F9: Minne Minneskonfiguration Sammansättning av minnesgrupper Ansluta minne till 68000 Interface till olika typer av minnen Användningsområden 1 Minnen Minneskapslar kommer i olika storlekar, antal adresspinnar

Läs mer