SMD106 Projektrapport Implementation av Texas Instruments TMS320C10 DSP-kärna i Virtex XCV100 FPGA

Storlek: px
Starta visningen från sidan:

Download "SMD106 Projektrapport Implementation av Texas Instruments TMS320C10 DSP-kärna i Virtex XCV100 FPGA"

Transkript

1 SMD106 Projektrapport Implementation av Texas Instruments TMS320C10 DSP-kärna i Virtex XCV100 FPGA Lars Persson larper-8@sm.luth.se Lars Olsson larolo-7@sm.luth.se Luleå Tekniska Universitet 23 maj 2002

2

3 Sammanfattning Vi har i projektkursen SMD106 implementerat en Texas Instruments TMS320C10 kompatibel DSP-kärna. Arkitekturen har modierats till en pipeline med tre steg. Två moduler för avbrottshantering och synkron seriell kommunikation har lagts till. Implementationen har syntetiserats med Synplify Pro 7.0 och utnyttjar ca två tredjedelar av en Xilinx XCV100 FPGA. En klockfrekvens på strax över 20 MHz kan uppnås med 15 ns extern SRAM. Vi har testkört på XESS prototypkort och konstaterat att kärnan och modulerna fungerar i hårdvara.

4

5 Innehåll 1 Inledning 1 2 Arkitektur Översikt Vår tolkning av arkitekturen Avvikelser från ISA Implementation Klockgenerering Resetenheten Stacken Programminnet Övrig logik i Fetchsteget Programräknare Pipelineregistret Hoppenhet Dekoderenhet ALU operandskiftare och sign-extension Multiplikator ALU Ackumulatorskiftaren Dataminne Övrig logik i Executesteget Ackumulatorn Statusregistret Hjälpregistren Moduler Avbrottshanterare Serieport Veriering 12 6 Resultat 12 7 Diskussion 13 8 Referenser 14

6

7 1 Inledning Vi valde som projektuppgift i kursen SMD106 att implementera en DSP-kärna i en FPGA. Efter utvärdering av bentliga arkitekturer och tillgängliga resurser valde vi att utgå från Texas Instruments TMS320C10. Den har instruktionsord på 16 bitar, vilket passar utvecklingskortet, samt lagom instruktionsuppsättning. Vårt mål var att implementera en processorkärna med i stort sett kompatibel instruktionsuppsättning och uppnå en klockfrekvens på 20 MHz. För att kunna testa kärnan i praktiken behövde vi också implementera en synkron serieport för att kunna kommunicera med en stereocodec på utvecklingskortet. 2 Arkitektur 2.1 Översikt Texas Instruments TMS320C10 har en heltalsenhet innehållande en 32-bitar ALU och en separat 16x16-bitar multiplikator. Resultatet från heltalsenheten mellanlagras i en 32-bitar ackumulator. För mer permanent lagring nns ett dataminne på upp till bitar ord integrerat på chipet. Minnet kan adresseras indirekt genom två 16-bitar hjälpregister. Arkitekturen använder Harvardmodellen och har ett separat programminne på bitar ord. Det nns en hårdvarubaserad stack som normalt har fyra nivåer. För att kommunicera med yttre enheter nns det en 16-bitar databuss. Arkitekturen har 60 instruktioner och ertalet utförs på en klockcykel. 2.2 Vår tolkning av arkitekturen Enligt blockschemat i databladet [1] har TMS320C10 endast en gemensam databuss internt som delas mellan program och dataminne samt också periferienheter. För att lösa problemet med delningen av bussen arbetar arkitekturen på vissa ställen med en klockfrekvens som är fyra gånger lägre än ingångsklockan och instruktionscykeln beräknas från denna klockperiod istället. På så vis hinner man med att lägga ut adress, klocka in en ny instruktion och eventuellt göra en dataminnes/periferienhetsåtkomst under samma instruktionscykel. Eftersom TMS320C10 är en gammal arkitektur, faktiskt en av de allra första implementationer av en DSP, så har den många begränsningar på grund av dåtidens teknik. I vår implementation har vi först och främst varit intresserade av att uppnå kompatibilitet med dess ISA så att vi kan utnyttja bentliga programmeringsverktyg och algoritmer. Vi har därför frångått Texas Instruments design på ett antal punkter för att förbättra prestandan och för att förenkla implementationen. Enligt en pressrelease [2] inkluderar TMS320C10 en pipeline, men från databladet [1] framgår det inte hur den är implementerad. I vår design nns det en pipeline med tre steg: Fetch, Decode och Execute, som kan ses i blockschemat i gur 1. Texas implementation har en genomströmningshastighet på 5 MIPS i 20 MHz. Vår arkitektur behöver 6 klockcykler för att utföra en instruktion, men pipelinen ökar genomströmningshastigheten 3 gånger så vi uppnår 10 MIPS i 20 MHz. 1

8 Figur 1: Blockschema för vår design 2

9 2.3 Avvikelser från ISA Vår implementation av instruktionuppsättningen kan sägas vara 99% kompatibel med specikationen. Första avvikelsen är i SAR-instruktionen. Den sparar ett hjälpregister till dataminnet. Om SAR exekveras med indirekt adressering och postincrement/postdecrement för att spara samma register som utför adresseringen kommer det ändrade värdet att sparas till minnet enligt en notering i Texas specikation. I vår implementation kommer värdet som fanns i registret då instruktionen startades att skrivas till minnet. Instruktionerna IN och OUT behövde i Texas implementation två klockcykler för exekveringen p.g.a. en resurskonikt med fetch-enheten. Vi valde att göra en separat buss för periferimoduler och kan därför köra instruktionerna utan att stanna pipelinen. Den begränsning som fanns i Texas implementering av SUBC-instruktionen gällande användning av ackumulatorn efterföljande instruktionscykel nns inte i vår implementation. 3 Implementation 3.1 Klockgenerering Virtex innehåller fyra stycken Delay-Locked Loops varav vi använder en för att generera en klocksignal som ligger i fas med ingångsklockan men har dubbelt så lång period. Denna långsammare klocka kommer att användas för att driva pipelineregistren och på så sätt bestäms instruktionscykeln från denna. 3.2 Resetenheten Resetenheten används för att generera en resetsignal som har en stigande ank som ligger i fas med den långsamma klockan (och därmed också den snabba). Den består av ett skiftregister på 2 bitar med asynkron reset. En konstant '1' klockas in i registret vilket innebär att reset går hög 2 klockcykler efter att resetingången gått hög enligt diagrammet i gur 2. Figur 2: Tidsdiagram för resetenheten. 3

10 3.3 Stacken Stacken i TMS320C10 arkitekturen är hårdvarubaserad och vanligtvis på fyra nivåer. I vår design har vi utökat den till åtta nivåer så minnesfunktionaliteten kommer att ta upp 8 12 = 96 bitar, vilka implementeras med hjälp LUTar som fungerar som 16 x 1-bitar dubbelportat synkront RAM. Totalt kommer det alltså att gå åt 6 slice:ar exklusive de som krävs för att implementera den övriga logiken. Stacken drivs med den snabba klockan och klockas på stigande ank. Läsning/skrivning behöver utföras vid era tillfällen. En skrivning sparar alltid något av följande värden som väljs av en mux framför ingången: De 12 lägsta bitarna från ackumulatorn. PC. PC+1. Skrivning ska utföras när något av följande inträar: CALL instruktion ska spara returadress (PC+1). CALA instruktion ska spara returadress (PC). TBLR eller TBLW ska temporärt spara PC. PUSH instruktion ska utföras. Ett avbrott har inträat och returadress ska sparas (PC). Läsning sker alltid till PC registret via dess ingångsmux eller till ALUn via dess ingångsmux och ska utföras vid följande: RET ska läsa tillbaka returadress till PC. TBLR eller TBLW ska återställa PC som temporärt har sparats. POP-instruktion ska utföras. 3.4 Programminnet Programminnet för DSP:n är placerat i en av de två externa 16-bitars SRAM-banker som nns tillgängliga på XSV-kortet. Både läsning och skrivning till minnet drivs på fallande ank från den snabba klockan enligt gur 3 och 4. 4

11 Figur 3: Tidsdiagram för läsning av programminnet. Figur 4: Tidsdiagram för skrivning av programminnet. Utgången från minnet är kopplad dels till ett register som burar instruktionen, dels till en mux på dataminnets ingång för att kunna hantera TBLR instruktionen som yttar data mellan program och dataminnena. Till sist är den också kopplad till en mux framför PC registret så att det är möjligt att hoppa till en adress som läses från programminnet. Det är också möjligt att skriva till programminnet via TBLW -instruktionen så kärnan kan driva den externa databussen från dataminnet. 3.5 Övrig logik i Fetchsteget Programräknare PC-registret innehåller aktuell programminnesadress och uppdateras via en mux som styrs av följande villkor: Vid normal exekvering, öka PC med 1. Om ett avbrott har inträat, ladda avbrottsadress. 5

12 Om exekveringen måste stanna, behåll nuvarande PC. Om RET nns i Decodesteget eller TBLR/TBLW nns i Executesteget, återställ PC från stacken. Om CALA/TBLR/TBLW nns i Decodesteget, ladda PC från ackumulatorn. Om en annan hoppinstruktion än CALA och RET nns i Decodesteget och eventuellt villkor är uppfyllt, ladda PC från programminnet. Muxen innan PC-registret väljer mellan följande signaler: Behålla gamla värdet på PC. PC+1. Värde från stacken. 12 lägsta bitarna från programminnet. 12 lägsta bitarna från ackumulatorn. Avbrottsadress (0x0002) Pipelineregistret Från Fetchsteget nns ett pipelineregister, klockat med den långsamma klockan, som antingen lagrar den aktuella instruktionen eller en NOP-instruktion i de fall då exekveringen tillfälligt måste avstannas. En mux framför registret som styrs från Decodesteget ser till att rätt data klockas in. 3.6 Hoppenhet Denna enhet avgör huruvida ett villkor associerat med en hoppinstruktion är uppfyllt. För att kunna utföra detta behöver den veta hur ackumulatorn, hjälpregister och statusregistret ser ut. För hjälp med detta nns det forwardingenheter som avgör om den instruktion som ligger i Executesteget modierar någon av dessa och isåfall skickar den de nya värdena istället för de som ligger i registren. 3.7 Dekoderenhet Denna enhet tittar på instruktionen som ligger i pipelineregistret och sätter diverse kontrollsignaler till Executesteget som lagras i pipelineregister. Om instruktionen i fråga behöver bromsa exekveringen (på grund av resurskonikt i pipelinestegen) sätts pipelinemuxen i Fetchsteget så att en NOP-instruktion klockas in istället för den riktiga instruktionen. Programräknaren sätts att behålla det gamla värdet så att instruktionen kan utföras när resurskonikten har försvunnit. 6

13 3.8 ALU operandskiftare och sign-extension Vissa instruktioner skiftar ena ALU-operanden till vänster ett antal steg vilket utförs av denna enhet. Dessutom konverterar några instruktioner en operand som är representerad med 16-bitar två-komplement till 32-bitar två-komplement vilket också utförs här. Operanden kan antingen komma från minnet eller från ett 8-bitars immediatefält som utökas till 16 bitar. En mux som styrs av en kontrollsignal från Decodesteget avgör vilken som blir insignal. Utsignalen från skiftaren går till ett register Multiplikator Denna multiplikator måste kunna utföra en 16x16 multiplikation på enbart en klockcykel. Multiplikatorn tar en av faktorerna från T-registret och den andra från antingen ett 13-bitars immediatefält i instruktionen eller från minnet. Valet avgörs av en mux som ställs in beroende på om instruktionen är MPY eller MPYK. Produkten sparas i P-registret ALU ALUn behandlar endast ett fåtal operationer; addition, subtraktion och absolutbelopp samt de logiska operatorerna AND, OR, XOR. Det nns också två operationer som enbart använder ALUn för att ladda ett värde till ackumulatorn, nämligen LOAD, som låter en operand omodierat passera, och ZERO som matar ut 32 bitar med värdet 0. Eftersom addition och subtraktion kan utföras av samma hårdvara när man använder två-komplement, så tas två-komplementet av operand B och matas till samma adderare som vid addition så att man sparar resurser. En overowagga beräknas för varje operation, men den har bara mening vid addition och subtraktion i två-komplementsform. Ingen carry beräknas. ALUn måste också klara saturate vid vissa operationer. Detta är implementerat genom att man har en mux som bestämmer om man ska mata ut resultatet från adderaren eller max om man har positiv overow; min om man har negativ. Det nns ingen divisionsinstruktion i arkitekturen men division kan ändå genomföras med hjälp av en lite ovanlig ALU-operation som kallas för villkorlig subtraktion. Detta innebär att man från ackumulatorn subtraherar en operand som skiftats 16 bitar till vänster. Om resultatet är negativt ignoreras operationen och man matar ut ackumulatorns värde 2. Annars sparas resultatet Om man placerar det tal man vill dividera i ackumulatorn och man matar in talet som det ska divideras med som operand och utför denna operation 16 gånger så har man faktiskt genomfört en 16 bitars division där kvoten nns i de 16 lägsta bitarna i ackumulatorn och eventuell rest i de 16 högsta. Operand B kommer alltid från ackumulatorn och man väljer operand A genom en mux som har följande insignaler: Från registret som lagrar resultatet från skiftenheten. 1 Registrets funktion behandlas i avsnittet Diskussion. 7

14 Från stacken. Från P registret. Från minnet vänsterskiftat 16 bitar, används av bland annat instruktionerna SUBC, ADDH och SUBH Ackumulatorskiftaren Ackumulatorskiftaren är på 20 bitar och används för att spara de mest signikanta bitarna i ackumulatorn till dataminnet. Enligt denitionen på instruktionen kan den endast skifta 0, 1 eller 4 steg till vänster Dataminne I Texas Instruments implementation av TMS320C10 är dataminnet begränsat till 144 ord, antagligen beroende på att det var dyrt med integrerat minne vid tidpunkten då arkitekturen konstruerades. I Virtexkretsens Block SelectRAM är blockstorleken 4096 bitar så det var enkelt att utöka storleken till 256 ord utan att behöva göra några ytterligare designförändringar. Dataminnet är implementerat som dubbelportat Block SelectRAM i Virtex kretsen. Anledningen till att det behövs två portar är att man ibland måste kunna läsa och skriva till två olika adresser under samma klockcykel från den snabba klockan. Det är instruktionerna DMOV och LTD som behöver denna funktionalitet då de kopierar ett ord från en minnesadress till nästa minnesadress. Dataingången på port B är alltså alltid kopplad till datautgången på port A och adressen på port B är samma som på port A+1. För all annan aktivitet används enbart port A. Adressen till minnet kan antingen komma från ett hjälpregister eller från immeditatefältet i instruktionen. En mux som styrs av en kontrollsignal från Decodesteget bestämmer vilken. Eftersom immediatefältet bara är på 7 bitar och det behövs 8 bitar för att adressera 256 minnesadresser tas en extra bit från DP-registret vid immediate adressering. Vid skrivning till minnet kan data komma från ett ertal källor, bestämda av en mux på dataingången: De 16 lägsta bitarna från ackumulatorn. Resultatet från ackumulatorskiftaren. Aktuellt hjälpregister. Statusregistret. Periferibussen. Programminnet. Dataminnet är klockat på fallande ank och skrivning fungerar precis som för programminnet (Se gur 4). Läsning sker alltid på fallande ank. 8

15 3.13 Övrig logik i Executesteget Ackumulatorn Ackumulatorn är egentligen bara ett 32 bitars register, klockat med den långsammare klockan, som innehåller resultatet efter en ALU operation. Eftersom vissa konditionella hoppinstruktioner måste veta hur ackumulatorn ser ut för att kunna evaluera villkoren är den kopplad till en forwardingenhet som skickar det nya värdet istället för det som är lagrat i ackumulatorn om instruktionen i Executesteget skriver till ackumulatorn Statusregistret Statusregistret är klockat med den långsammare klockan och innehåller aggor för overow (V), overowläge (OVM), avbrottsmask (INTM), hjälpregisterpekare (ARP) och dataminnespekare (DP). Precis som med ackumulatorn är en del bitar i statusregistret kopplade till en forwardingenhet. Statusregistret kan sparas och laddas från minnet och har då formatet som visas i tabell V OVM INTM reserverade ARP reserverade DP Tabell 1: Bitformat för statusregister vid läsning/skrivning Hjälpregistren Det nns två hjälpregister som kallas för AR0 och AR1. En pekare kallad ARP håller reda på aktuellt register. Registren kan automatiskt ökas eller minskas med ett efter att en indirekt minnesåtkomst har skett. En mux bestämmer huruvida det nya värdet till aktuellt register ska vara det gamla värdet, det gamla värdet+1, det gamla värdet 1 eller om det ska tas från minnet eller från immediatefältet. De två sista alternativen bestäms av ytterligare en mux. Hoppenheten behöver veta om hjälpregistren är 0 så en zeroagga är kopplad till forwardingenheten. 4 Moduler 4.1 Avbrottshanterare För att eektivt kunna behandla asynkrona I/O anrop brukar de esta processorer innehålla en avbrottsenhet. TMS320C10 innehåller i orginalutförande endast en rudimentär sådan som bara tillåter ett externt avbrott att ske. För vår applikation behövde vi kunna ta emot två avbrottsförfrågningar från serieporten; en för sändning och en för mottagning av data. Vi utökade därför designen med en modul som hanterar de två extra avbrotten genom att placera den på periferienhetsbussen så att instruktionerna IN och OUT kan användas for att kommunicera med den. Avbrottsenheten använder adresserna enligt tabell 2. INTF läses när ett avbrott har inträat och man vill veta källan. INTE fungerar som en mask och 9

16 används för att slå av/på avbrott från en viss källa. För att indikera att man har behandlat ett avbrott skriver man till INTC. Alla adresser använder den bitplaceringen som visas i tabell 3. Adress Namn Riktning Funktion 000 INTF R Inträade avbrott. 001 INTE RW Påslagna avbrott. 010 INTC W Rensning av inträade avbrott. Tabell 2: Adresser till avbrottshanteraren reserverade sändning mottagning Tabell 3: Placering av bitar i avbrottsregistren. Avbrottshanteringen fungerar enligt samma princip som den ursprungliga modellen förutom att man också måste utföra dessa steg i avbrottshanteraringsrutinen: 1. Läsa ut vilket avbrott som inträat från INTF. 2. Skriva aktuell bit till INTC för att indikera att man har tagit hand om avbrottet. Dessa steg bör utföras så tidigt som möjligt i avbrottshanteringen så att ytterligare avbrott registreras. De större kretsarna i C10-familjen använder en liknande modell för avbrottshanteringen. Från blockschemat i gur 5 observeras ingången 'BlockInterrupt'. Denna signal används for att fördröja ett avbrott så att inte en multicykelinstruktion avbryts mitt i. Det nns också ett specialfall, nämligen multiplikationsinstruktionerna MPY och MPYK, där efterföljande instruktion ska utföras innan avbrott så att man hinner spara P registret efter multiplikation. 10

17 Figur 5: Blockschema för avbrottshanteraren. 4.2 Serieport En synkron serieport nns i de esta DSP:ar och är ett viktigt gränssnitt för anslutning till AD/DA-omvandlare och tidsmultiplexade PCM-bussar. Normalt är de exibla och kan kongureras för ett antal olika dataformat och klockningsmodeller. Vi har valt att implementera en serieportmodul som endast fungerar med dataformatet som codeckretsen AK4520A på XESS-kortet använder. Gränssnittet mot kretsen består av 3 klocksignaler och 2 datasignaler enligt tabell 4. MCLK Codec master clock SCLK Serial clock LRCK Left/right clock SDI Serial data in SDO Serial data out Tabell 4: Signaler synkron serieport. MCLK klockar logiken i codeckretsen och bestämmer samplingsfrekvensen enligt sambandet f s = MCLK/256. SLCK är klocksignal för serieporten. Data skiftas ut på SCLKs fallande ank och läses in på stigande ank. LRCK bestämmer om det är data för höger eller vänster stereokanal som överförs. Vi har endast implementerat en kanal. Samtliga klockor genereras av serieportmodulen. Klockgeneratorn består av ett antal räknare med carryutgångarna kopplade till T-vippor. De seriella in- och utgångarna är kopplade till var sitt 32-bitar skiftregister vilket är det normala sättet att implementera en serieport. Codecens AD/DA-omvandlare har 20 bitar precision, men för att passa med 16-bitarsminnet i DSP:n är endast de 11

18 16 mest signikanta bitarna tillgängliga för kärnan. Orsaken till att skiftregisterna då är på 32 bitar är att dataformatet på seriebussen är 32 bitar per sample. Modulens gränssnitt mot kärnan består av två 16-bitar register med tillhörande avbrottsignaler. En avbrottsignal signaleras när data nns att hämta i mottagningsregistret (RxInt) och den andra när sändregistret kan fyllas på (TxInt). 5 Veriering Veriering av design och VHDL-kod har skett i era steg för att hitta fel så tidigt som möjligt och därmed underlätta felsökning och felrättning. I början av projektet tog vi fram en tabell över hur alla kontrollsignaler ska sättas för samtliga instruktioner. Tabellen inspekterades sedan av oss båda och vi kunde åtgärda ett tiotal fel redan då. Eftersom mikroarkitekturen inte fanns beskriven så var det också en viktig del av designen. Vi mappade varje instruktion till de olika enheterna i blockschemat för att vara försäkra oss om att designen var någorlunda komplett. Det är viktigt så att man inte sent i projektet upptäcker att en instruktion är omöjlig att implementera utan omfattande ändringar i mikroarkitekturen. Under utvecklingen av VHDL-kod simulerades de esta mindre komponenter separat med en grundläggande testbänk. När pipelinestegen hade byggts upp fungerade denna metod inte eftersom antalet kontrollsignaler blev för stort. Veriering av hela konstruktionen utförde vi med assemblerprogram som testkördes i simulatorn. Först verierades ett mindre antal instruktioner genom visuell inspektion av vågformerna i simulatorn. När man har etablerat att dessa fungerar går det sedan att skriva självkontrollerande kod för större delen av instruktionuppsättningen. Testprogrammet avslöjade ca 20 fel. Slutligen var det då dags för elddopet. Testkörning på prototypkortet. Fungerar det inte så är kortet en svart låda med mycket begränsade möjligheter till felsökning. Vi utvecklade ett testprogram som lägger ut en sinuston på serieporten och laddade in det i SRAM:et. Resultatet var positivt och vi kunde höra tonen i de ansluta hörlurarna. Själva processen att ladda in programkoden i simulatorn kräver era steg med olika konverteringsprogram innan formatet passar IO-funktionerna i VHDL. Först används Alfred Arnolds Macro Assembler AS för att kompilera koden. Objektlen överförs sedan till Intel 16-bitars hexformat med assemblerns konverteringsprogram och därifrån till binärt format med programmet objcopy. Slutligen sköter ett perlscript konvertering från binärt format till hexadecimalt format med ett 16-bitar ord per rad som passar VHDL. Ytterligare ett steg krävs för att ladda in programkod i SRAM på prototypkortet, nämligen konvertering av byteordningen i instruktionsorden. 6 Resultat Då kärnan är i det närmaste 100% kompatibel med Texas ISA och går att köra i önskad klockfrekvens så anser vi att målet med projektet har uppnåtts. Syntes av designen har utförts i Synplify Pro 7.0. Med serieport och avbrottshanterare utnyttjas 62% av de så kallade Logic Cells (LC) i en Virtex XCV100 FPGA samt 12

19 ett blockram. Särskilt utrymmeskrävande är multiplikatorn som bara den fyller ca 10% av FPGA:n och ALU-enheten med 25%. Vi har inte något att jämföra med, men ALU-enheten bör vara mer utrymmeskrävande än i en vanlig RISC-processor eftersom den ska hantera saturation och ett antal specialiserade instruktioner. Vår målfrekvens på 20 MHz var inte svår att nå, men gränsen ligger inte långt från det. Eftersom designen har en pipeline krävs forwarding av resultatet från ALU:n till de övriga pipelinestegen vilket ger en lång kritisk väg. Även hastigheten på det externa minnet sätter en gräns för klockfrekvensen. På en halv klockcykel måste resultatet från en läsning ha stabiliserats och propagerat in i FPGA:n. XESS-kortet har 15 ns SRAM vilket medför minst ca 20 ns för en halv klockcykel. 7 Diskussion Om specikationen för Virtexkretsens DLL granskas ser man att den minsta klockfrekvensen på ingången är satt till 25 MHz. Tillsammans med timingen för det externa SRAM:et som kräver klockfrekvens på mindre än 25 MHz så är vår arkitektur precis på gränsen till att inte kunna implementeras i en Virtex FPGA. Det visar sig dock att klockningen fungerar en bit under den ociella gränsen, men att köra en komponent utanför specicerade området är förstås inte bra då det inte nns någon garanti att den fungerar. För att erhålla en design med garanterad funktions krävs snabbt SRAM som tillåter klockning i 25 MHz eftersom resten av logiken kan köras i över 25 MHz. Virtexkretsen vi använder är dessutom den långsammaste i Virtexfamiljen. Med den inbyggda multiplikatorn i Virtex2 bör man kunna uppnå betydligt högre klockfrekvens. Ett av de större problemen vi ställdes inför var komplexiteten som uppstod när båda ankerna i två olika klockor utnyttjades. Synplifys constrainteditor klarade inte av den viktigaste kritiska vägen vi hade i designen. Det var en lång kedja av logik som började på utdataporten i ett BlockRAM. RAMet klockas med negativ ank av den snabba klockan. Vi vet dessutom att utdatat från minnet bara ändras varannan klockcykel i det fall vi läser från minnet. Slutet av kedjan är register klockade med positiv ank av den långsamma klockan. Sammanlagt nns det 1.5 klockcykel av den snabba klockan tillgodo, men Synplify ser bara 0.5 klockcykel eftersom verktyget inte vet att minnesutgången behåller sitt värde. En multicycle path constraint passar inte eftersom den bara kan ha ett heltal antal klockcykler och dessutom antar verktyget att det är samma klocka på båda registren. Till slut löste vi problemet genom att sätta in ett extra register mellan skiftenheten och ALUn. Om ni önskar använda koden i något annat sammanhang så notera också följande. Vi har instansierat ett antal Virtex-specika komponenter. Simuleringsmodellen nns tyvärr inte i samma bibliotek som Synplify använder vid syntes. Därför nns två direktiv för biblioteken i vissa ler, varav det ena som berör Virtexbiblioteket ska kommenteras bort vid simulering. 13

20 8 Referenser [1] Texas Instruments (1991). TMS320C1x User's Guide. URL: ( ). [2] Texas Instruments (1983). TMS320 Press Release. URL: ( ). 14

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

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar Digitalteknik EIT020 Lecture 15: Design av digitala kretsar November 3, 2014 Digitalteknikens kopplingar mot andra områden Mjukvara Hårdvara Datorteknik Kretskonstruktion Digitalteknik Elektronik Figure:,

Läs mer

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Datormodell Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden Intel 4004 från 1971 Maximum clock speed is 740 khz Separate program and data

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

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data. 1 3 4 Antag a' processorn ska exekvera instruk3onen ADD R1, R3. När instruk3onen är exekverad så a' processorn tagit innehållet i R1 och R3 och med hjälp av ALU:n är värdena adderade och resultatet är

Läs mer

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data. 1 2 3 Antag a' processorn ska exekvera instruk3onen ADD R1, R3. När instruk3onen är exekverad så a' processorn tagit innehållet i R1 och R3 och med hjälp av ALU:n är värdena adderade och resultatet är

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering (1)

Läs mer

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18 F3 Föreläsning i Mikrodatorteknink 2006-08-29 Kärnan i microcontrollern består av ett antal register och en ALU. Till detta kommer också ett antal portar. Det finns 64 st portar. Några är anslutna mot

Läs mer

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN) LABORATION DATORTEKNIK D Pipelining Version: 1.4 2016 (OS,OVA,AN) 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

Föreläsningsanteckningar till Konstruktionsmetoder 981027

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

Läs mer

Läs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL!

Läs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL! MCU LABORATION5 Laborationens syfte Läs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL! I denna laboration ska en enkel MCU (Micro-Controller_Unit) konstrueras. En MCU,

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

Datorsystemteknik DVGA03 Föreläsning 8

Datorsystemteknik DVGA03 Föreläsning 8 Datorsystemteknik DVGA03 Föreläsning 8 Processorns uppbyggnad Pipelining Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Innehåll Repetition av instruktionsformat

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

Tenta i Digitalteknik

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

Läs mer

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Lösningsförslag för 725G45-tentan 3/11-10 1. Vad menas med Von Neumann-arkitektur? (2p) En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Data och instruktioner lagras i samma

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

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

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

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

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

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas 1 2 Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas och instruk7onen exekveras. 3 4 Program kan beskrivas

Läs mer

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet. Datorteknik Tomas Nordström Föreläsning 2 För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 2 Check av övningar Von Neumann arkitekturen Minne, CPU, I/O Instruktioner och instruktionscykeln

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

Ö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

Processor pipelining genom historien (Intel i9-intel i7)

Processor pipelining genom historien (Intel i9-intel i7) Processor pipelining genom historien (Intel i9-intel i7) Besnik Redzepi Lunds Universitet Abstrakt/Sammanfattning Syftet med denna uppsats är att jämföra Intels nya generation processorer och deras pipelining.

Läs mer

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är

Läs mer

Föreläsningsanteckningar 4. Pipelining

Föreläsningsanteckningar 4. Pipelining Föreläsningsanteckningar 4. Pipelining Olle Seger 2012, olles@isy.liu.se 21 januari 2013 1 Inledning Denna föreläsning handlar om pipelining, som är den helt dominerande processorarkitekturen i dag. Man

Läs mer

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt

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

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

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

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2016-12-22 8.00-13.00 Uppgifterna i tentamen ger totalt 60

Läs mer

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål Datorteknik Föreläsning 6 Processorns uppbyggnad, pipelining Mål Att du ska känna till hur processorn byggs upp Att du ska kunna de viktigaste byggstenarna i processorn Att du ska känna till begreppet

Läs mer

0.1. INTRODUKTION 1. 2. Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

0.1. INTRODUKTION 1. 2. Instruktionens opcode decodas till en språknivå som är förstålig för ALUn. 0.1. INTRODUKTION 1 0.1 Introduktion Datorns klockfrekvens mäts i cykler per sekund, eller hertz. En miljon klockcykler är en megahertz, MHz. L1 cache (level 1) är den snabbaste formen av cache och sitter

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

LV6 LV7. Aktivera Kursens mål:

LV6 LV7. Aktivera Kursens mål: Aktivera Kursens mål: LV6 LV7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

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

Centralenheten: ALU, dataväg och minne

Centralenheten: ALU, dataväg och minne Centralenheten: ALU, dataväg och minne Dagens föreläsning: Kompendium kapitel 7 Arbetsbokens kapitel 11,12 RTN - Register Transfer Notation Förenklat skrivsätt för att specificera operationer där register

Läs mer

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 18 mars svar Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 18 mars 2015 - svar Datorteknik, EIT070 Skrivtid: 14.00-19.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

Läs mer

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte CT3760 Mikrodatorteknik Föreläsning 4 Tisdag 2005-09-06 Stacken I datasammmanhang är en stack ett minnesområde. Det är processorn som använder stacken. För att skapa en stack anger man en adress i stackpekarregistret.

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

IE1205 Digital Design: F9: Synkrona tillståndsautomater

IE1205 Digital Design: F9: Synkrona tillståndsautomater IE25 Digital Design: F9: Synkrona tillståndsautomater Moore och Mealy automater F8 introducerade vippor och vi konstruerade räknare, skift-register etc. F9-F skall vi titta på hur generella tillståndsmaskiner

Läs mer

DEC Alpha instruktions Arkitektur

DEC Alpha instruktions Arkitektur DEC Alpha instruktions Arkitektur David Ekberg December 4, 2017 Innehållsförteckning 1 Sammanfattning...3 2 Bakgrund...3 3 Syfte...3 4 Pipeline...4 4.1 Datatyper...4 4.2 Instruktions arkitektur...5 5 Slutsats...6

Läs mer

Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704

Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Kontrollskrivning Mikrodatorteknik CDT209 2007-09-20 S2-704 Svar Svar till uppgifterna lämnas på separat papper. En poäng per uppgift. Max 30 poäng. Bonuspoäng beräknas enligt följande tabell: 6-10 poäng

Läs mer

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15. Aktivera Kursens mål: LV3 Fo7 Konstruera en dator mha grindar och programmera denna Aktivera Förra veckans mål: Konstruktruera olika kombinatoriska nät som ingår i en dator. Studera hur addition/subtraktion

Läs mer

DESIGN AV SEKVENTIELL LOGIK

DESIGN AV SEKVENTIELL LOGIK DESIGN AV SEKVENTIELL LOGIK Innehåll Timing i synkrona nätverk Synkrona processer i VHDL VHDL-kod som introducerar vippor (flip-flops) och latchar Initiering av register Mealy- och Moore-maskiner i VHDL

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

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Översikt Processorn Maskininstruktioner Dator Primärminne Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction

Läs mer

Sekvensnät. William Sandqvist

Sekvensnät. William Sandqvist Sekvensnät Om en och samma insignal kan ge upphov till olika utsignal, är logiknätet ett sekvensnät. Det måste då ha ett inre minne som gör att utsignalen påverkas av både nuvarande och föregående insignaler!

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

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) Praktiska kommentarer TSEA8 Datorteknik Y (och U) Föreläsning Kent Palmkvist, ISY Dagens föreläsning RISC Mer information om hur arkitekturen fungerar Begränsningar Lab extra tillfälle för redovisning

Läs mer

Design av digitala kretsar

Design av digitala kretsar Föreläsningsanteckningar Föreläsning 15 - Digitalteknik Design av digitala kretsar Efter att ha studerat fundamentala digitaltekniska områden, ska vi nu studera aspekter som gränsar till andra områden.

Läs mer

Programmerbar logik och VHDL. Föreläsning 4

Programmerbar logik och VHDL. Föreläsning 4 Programmerbar logik och VHDL Föreläsning 4 Förra gången Strukturell VHDL Simulering med ISim Strukturell VHDL Simulering test_bench specificerar stimuli Simulatorn övervakar alla signaler, virtuell logik-analysator

Läs mer

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare Sekvensiella System a(t) f(a(t)) Ett sekvensiellt system har ett inbyggt minne - utsignalen beror därför BÅDE av insignalens NUVARANDE

Läs mer

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk. Program Datorteknik Abstraktionsnivå: Högnivåspråk ERIK LARSSON» t ex C, C++ Assemblyspråk» t ex ADD R, R Maskinspråk» t ex 000.0 Exekvering av en instruktion Kontrollenhet () Hämta instruktion på 0000000

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Program Abstraktionsnivå: Högnivåspråk» t ex C, C++ Assemblyspråk» t ex ADD R1, R2 Maskinspråk» t ex 001101.101 Exekvering av en instruktion (1) Hämta instruktion på 00001000 (där

Läs mer

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING 1. INLEDNING 1.1. Milstolpar i datorns historia 1.2. Några viktiga begrepp 1.3. Mikrodatorns användningsområden 2. TALSYSTEM, KODER OCH BINÄR ARITMETK 2.1. Binära

Läs mer

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U) Praktiska kommentarer TSEA8 Datorteknik Y (och U) Föreläsning Kent Palmkvist, ISY Dagens föreläsning Latens/genomströmning Pipelining Laboration tips Sorteringsalgoritm använder A > B i flödesschemat Exemplet

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

Tentamen i Digitalteknik, EITF65

Tentamen i Digitalteknik, EITF65 Elektro- och informationsteknik Tentamen i Digitalteknik, EITF65 3 januari 2018, kl. 14-19 Skriv anonymkod och identifierare, eller personnummer, på alla papper. Börja en ny uppgift på ett nytt papper.

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

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

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte ARM-instruktioner, A4-format, 17 sidor. Maxpoäng: TENTAMEN D1/E1/Mek1/Ö1 1400-1800 Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Börje Delistrand tel. +46702986358 Bilaga

Läs mer

Datorsystemteknik Föreläsning 7DAVA14

Datorsystemteknik Föreläsning 7DAVA14 Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel

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

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal

Läs mer

Polling (cyklisk avfrågning) Avbrott

Polling (cyklisk avfrågning) Avbrott Polling (cyklisk avfrågning) Avbrott Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Att känna till begreppet polling (cyklisk avfrågning) och hur det

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

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

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

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

Läs mer

Faltningsreverb i realtidsimplementering

Faltningsreverb i realtidsimplementering Faltningsreverb i realtidsimplementering SMS45 Lp1 26 DSP-system i praktiken Jörgen Anderton - jorand-3@student.ltu.se Henrik Wikner - henwik-1@student.ltu.se Introduktion Digitala reverb kan delas upp

Läs mer

CE_O3. Nios II. Inför lab nios2time

CE_O3. Nios II. Inför lab nios2time IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",

Läs mer

F8: Undantagshantering

F8: Undantagshantering F8: Undantagshantering Undantagshantering i 68 Vad är ett undantag? Typer av undantag Att skriva undantagsrutiner Undantagshantering, vad och varför? Exempel: Ett system ska mäta temperatur var :e sekund

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

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #19 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Normaltillstånd vs undantagstillstånd I normaltillstånd

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

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen den 17 mars 2016 Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 17 mars 2016 Datorteknik, EIT070 Skrivtid: 14.00-19.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

Läs mer

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION Laborationsansvarig: Anders Arvidsson Utskriftsdatum: 2005-08-31 Laborant(er): 1 Syfte Laborationen ska ge studenten möjlighet att genom assemblerinlägg

Läs mer

Digitala Projekt - Snake Grupp - 7. Erik Ljung, d01elj Erik Simmons, d01es 25 maj 2005

Digitala Projekt - Snake Grupp - 7. Erik Ljung, d01elj Erik Simmons, d01es 25 maj 2005 Digitala Projekt - Snake Grupp - 7 Erik Ljung, d01elj Erik Simmons, d01es 25 maj 2005 INNEHÅLL INNEHÅLL Innehåll 1 Introduktion 3 2 Hårdvara 3 2.1 Processor - Motorola 68008..................... 3 2.2

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

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

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

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile. CT3760 Mikrodatorteknik Föreläsning 2 Tisdag 2005-08-30 Minnestyper. Atmega 16 innehåller följande minnestyper: SRAM för dataminne FLASH för programminne EEPROM för parametrar och konstanter. Minnen delas

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

Tentamen Datorteknik D del 2, TSEA49

Tentamen Datorteknik D del 2, TSEA49 Tentamen Datorteknik D del 2, TSEA49 Datum 2012-05-24 Lokal TER2 Tid 8-12 Kurskod TSEA49 Provkod TEN1 Kursnamn Datorteknik D del 2 Institution ISY Antal frågor 6 Antal sidor (inklusive denna 10 sida) Kursansvarig

Läs mer

Digitalteknik F12. Några speciella automater: register räknare Synkronisering av insignaler. Digitalteknik F12 bild 1

Digitalteknik F12. Några speciella automater: register räknare Synkronisering av insignaler. Digitalteknik F12 bild 1 igitalteknik F2 Några speciella automater: register räknare Synkronisering av insignaler igitalteknik F2 bild Register Ett register är en degenererad automat som i allt väsentligt används för att lagra

Läs mer

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok. Namn: Laborationen godkänd: Laboration 3. Pipeline Laborationens syfte I laborationen ska du bekanta dig med pipelining. Genom laborationen fås kunskap om hur pipelines är konstruerade och hur de används.

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

Närliggande allokering Datorteknik

Närliggande allokering Datorteknik Närliggande allokering Datorteknik ERIK LARSSON TID Problem: Minnet blir fragmenterat Paging Demand paging Sida (S) Dela upp primärminnet i ramar (frames) och program i sidor (pages) Program 0 RD.0 1 RD.1

Läs mer

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i IE1204/5 Digital Design onsdagen den 5/ Tentamen i IE1204/5 Digital Design onsdagen den 5/6 2013 9.00-13.00 Tentamensfrågor med lösningsförslag Allmän information Examinator: Ingo Sander. Ansvarig lärare: William Sandqvist, tel 08-790 4487 (Kista

Läs mer

IT för personligt arbete F5

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

Läs mer

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i IE1204/5 Digital Design onsdagen den 5/ Tentamen i IE1204/5 Digital Design onsdagen den 5/6 2013 9.00-13.00 Allmän information Exaator: Ingo Sander. Ansvarig lärare: William Sandqvist, tel 08-790 4487 (Kista IE1204) Tentamensuppgifterna behöver

Läs mer

Omtentamen i CDT204 - Datorarkitektur

Omtentamen i CDT204 - Datorarkitektur Omtentamen i CDT204 - Datorarkitektur 2012-11-05 Skrivtid: 08.10-12.30 Hjälpmedel: Miniräknare och valfritt skriftligt (ej digitalt) material. Lärare: Stefan Bygde, kan nås på 070-619 52 83. Tentamen är

Läs mer

Simulering med ModelSim En kort introduktion

Simulering med ModelSim En kort introduktion Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 2017 Simulering med ModelSim En kort introduktion TSEA22 Digitalteknik D Linköpings universitet SE-581 83

Läs mer

Programmerbar logik. Kapitel 4

Programmerbar logik. Kapitel 4 Kapitel 4 Programmerbar logik Programmerbar logik (PLC: Programmable Logic Controller; fi. ohjelmoitava logiikka) är en sorts mikrodatorliknande instrument som är speciellt avsedda för logik- och sekvensstyrningsproblem.

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2009-08-28 Skrivtid 9.00-13.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

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

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

Läs mer

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

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