Med en MCU kan samma krets användas för att lösa olika problem genom att olika program laddas in i dess minne.

Storlek: px
Starta visningen från sidan:

Download "Med en MCU kan samma krets användas för att lösa olika problem genom att olika program laddas in i dess minne."

Transkript

1 MCU LABORATION5 Laborationens syfte I denna laboration ska två praktiska uppgifter lösas. Först ska trafikljusen i en korsning styras. Därefter ska antalet lejon i en bur räknas (likt lejonburen i tidigare laboration). Men, istället för att lösa uppgifter med två olika kretsar ska de lösas med en mer generell krets, en MCU (Micro-Controller-Unit). En MCU, eller enkretsdator, kan liknas med en liten dator bestående av CPU (Central- Processing-Unit), programminne och arbetsminne, allt samlat i en och samma IC-krets. En MCU har även inbyggda moduler för att kommunicera med sin omgivning, som generella in- och utsignalsportar, där elektriska komponenter enkelt kan anslutas. Med en MCU kan samma krets användas för att lösa olika problem genom att olika program laddas in i dess minne. Laborationen består av två delar. Först ska MCUn, hårdvaran, konstrueras med hjälp av VHDL och utvecklingsverktyget ISE från Xilinx. Hårdvaran realiseras på Nexys4 FPGAkort. Därefter ska två program skrivas som löser de två uppgifterna.

2 2 Lab 5: MCU Följande färdigskrivna VHDL komponenter finns tillgängliga under laborationen: Komponent/Entity Filnamn Beskrivning SR4 sr4.vhd 4-bitars skiftregister REG5 reg5.vhd 5-bitars register MUX3x5 mux3x5.vhd 5-bitars 3 till 1 multiplexer ALU8 alu8.vhd 8-bitars ALU REG8 reg8.vhd 8-bitars register MUX2x8 mux2x8 8-bitars 2 till 1 multiplexer Nexys4 FPGA utvecklingskort Figur 5.1: Strömställarna SW0 till SW15 genererar en logiskt hög signal då de är i sitt övre läge. Knapparna som är arrangerade i ett kors, BTNx, genererar en logiskt hög signal då de trycks ner. Knappen CPU RESET fungerar på motsatt sätt, låg signal genereras då den trycks ner. Anslutningarna JA-JD är generella in- och utsignalsportar som kan kopplas till yttre komponenter.

3 Lab 5: MCU 3 Introduktion Läs igenom hela manualen innan du börjar beskriva hårdvaran i VHDL! Efter att hårdvaran implementerats och testats, ska två olika praktiska problem lösas genom att två olika program skrivs och laddas ner till MCUn. Först ska trafikljusen vid en vägkorsning styras och därefter ska antalet lejon i en bur räknas (likt lejonburen i tidigare laboration). Ob- Figur 5.2: Blockschema av MCUn som ska konstrueras. servera att klock- och resetsignal inte är utritade. I denna laboration ska hårdvaran för en MCU (Micro-Controller-Unit) realiseras på ett Nexys4 FPGA-kort med hjälp av VHDL. Då MCUn är implementerad kommer den att kunna utföra ett antal operationer, exempelvis att addera två tal. MCUn styrs genom att ett program laddas ner i dess minne. Programmet kommer att bestå av en lista med instruktioner som talar om för MCUn vilka operationer den ska utföra och i vilken ordning. I figur 5.2 visas ett blockschema av MCUn som ska konstrueras. Hårdvarudelen av laborationen kommer till stor del bestå av att konstruera CPU (Central-Processing-Unit) blocket då övriga block kommer att tillhandahållas som färdiga VHDL moduler. Minnet i kretsen är ett ROM (Read-Only-Memory), kretsen själv kan inte modifiera dess innehåll utan endast läsa det. Programmet som styr MCUn kommer att lagras i minnet och varje instruktion i programmet kommer att sparas på en given rad, minnesadress. Överföringen av programmet till minnet kommer att utföras med ett PC-program som beskrivs senare. MCUn kommer inte att ha något dataminne där data kan sparas. Varje instruktion kommer att ta en klockcykel för MCUn att utföra. Kretsen kommer att

4 4 Lab 5: MCU drivas med en 1 khz klocka som erhålls genom att 100 MHz klockan på Nexys4 kortet divideras i klockblocket. För felsökning av program finns det även en manuell klocka, BTNC. Valet mellan 1 khz och manuell klocka görs med brytaren SW15, se figur 5.1. Under laborationen kommer externa komponenter, som lysdioder och brytare, anslutas till MCUn. De komponenter som är insignaler till kretsen ansluts till kontakten JA och utsignaler till JB. Båda dessa signaler består av åtta bitar och synkroniseras med resten av kretsen i IO-blocket (Input-Output). Den synkroniserade versionen av JA är signalen INPUT i figur 5.2 och JB är ansluten till OUTPUT. När ett program körs i MCUn kommer debug-blocket att skriva ut adressen till den instruktion som exekveras för stunden på Nexys4 7-segmentsdisplay. Vilket kan vara användbart vid felsökning av ett program. Då ett program exekveras läser CPUn ut en instruktion I från en adress A i minnet, se figur 5.2. CPUn avkodar instruktionen, utför nödvändiga operationer och bestämmer adressen varifrån nästa instruktion ska hämtas. Figur 5.3: Abstrakt blockschema av CPUn som ska konstrueras. För att CPUn ska veta var i programmet den befinner sig måste den komma ihåg adressen till instruktionen som körs för stunden. CPUn ska därför ha en programräknare PC (Program-Counter), som är ett register 1 vars värde alltid är adressen till den instruktion som körs för stunden, se figur 5.3. Stacken i figuren kommer att förklaras mer i detalj senare, men kan ses som ett minne där programadresser kan sparas och läsas ut. Beräkningar som utförs av CPUn kommer att göras med en ALU. Resultatet från ALUn 1 Ett register består av ett antal D-element som sitter parallellt. Register används då man behöver ett minne som kan spara mer än en bit. T.ex. består ett 8-bitars register av åtta D-element och har 2 8 olika tillstånd.

5 Lab 5: MCU 5 kommer att kunna sparas i ett av två register, R0 och R1, i registerblocket. Den ena operanden till ALUn kommer alltid att komma från instruktionen (minnet), den andra operanden kommer att vara en av R0, R1 eller signalen INPUT. Konstruktionen blir därmed begränsad i avseende på att det inte går att utföra några operationer mellan de båda registerna R0 och R1. Instruktionsavkodaren i CPUn har till uppgift att utifrån instruktionen I generera styrsignaler till alla komponenter i CPUn så att rätt operation erhålls. Mer information om de olika delarna av CPUn kommer att ges senare. Instruktioner De instruktioner som kretsen stödjer kallas instruktionsuppsättning och utgör gränssnittet mellan hård- och mjukvara. Instruktionsuppsättningen specificerar även kraven för hårdvaran, då kretsen måste kunna utföra de olika instruktionerna. MCUn som konstrueras under laborationen kommer endast stödja ett fåtal instruktioner men kan utan vidare byggas ut för att stödja fler. Figur 5.4: Varje instruktion, I, består av 13 bitar. Bit 12-9 är operationskoden, bit 8 destinationsbiten och bit 7-0 är data. Observera att bit 0 är den minst signifikanta. Varje instruktion består av en 4-bitars operationskod, en destinationsbit samt 8-bitars data, totalt 13 bitar. Med operationskoden OPCODE bestäms vilken operation som ska utföras. Destinationsbiten DEST styr, i vissa instruktioner, vilket av de två registerna R0 och R1 som ska användas. De 8 databitarna DATA används som operand i beräkningar eller för att ange adressen till nästa instruktion Bitarna i varje instruktion organiseras enligt figur 5.4. Nedan följer en beskrivning av de instruktioner som kretsen ska stödja. Istället för 4- bitars OPCODE anges instruktionerna med förkortningar för att det ska vara lättare att komma i håg dem. I listan nedan gäller att RX = { R0 om DEST = 0, R1 om DEST = 1. CALL Anropa subrutin (CALL subroutine). Nästa adress i ordningen, PC+1, sparas (PUSH) på stacken och nästa adress bestäms av DATA[4:0]. Kan användas då man har en programsnutt som ska köras från flera ställen i programmet, liknande ett funktionsanrop i t.ex. Java och C.

6 6 Lab 5: MCU RET Återgå från subrutin (RETurn from subroutine). Nästa adress hämtas och tas bort (POP) från stacken. Används endast i slutet av en subrutin för att återgå till huvudprogrammet. BZ Hoppa om noll (Brach if Zero). Om RX=0 så bestäms nästa adress av DATA[4:0], annars är nästa adress PC+1. Används för att hoppa över/till programkod beroende på om ett villkor är uppfyllt, liknande if-satser i Java och C. B Hoppa (Branch). Ovillkorligt programhopp till adressen som anges av DATA[4:0]. Kan användas i slutet av programmet för att börja om från adress 0. ADD Addera (ADD). Värdet DATA adderas till RX. RX + =RX+DATA. SUB Subtrahera (SUBtract). Värdet DATA subtraheras från RX. RX + =RX-DATA. AND Bitvis OCH (AND). Bitvis OCH-funktion med RX och DATA. RX[i] + =RX[i] DATA[i], i=0..7. LD Ladda (LoaD). Ladda RX med DATA. RX + =DATA. OUT Skriv till utsignal (WRite to output). Utsignalen får värdet som finns i register RX. OUTPUT + =RX. IN Läs från insignal (ReaD from input). RX laddas med värdet av insignalen. RX + =INPUT. Med instruktionerna ovan kan ett enkelt program skrivas som ADRESS OPCODE DEST DATA 00 LD R SUB R BZ R B B 04 På progammadress 00 laddas R0 med värdet 2, därefter minskas R0s värde med ett. På adress 02 kontrolleras om R0=0. Om så är fallet hoppar programmet till 04, annars fortsätter det på 03 där det hoppar tillbaka till 01. När programmet till slut kommer fram till adress 04 kommer det stå kvar där tills kretsen nollställs Programmflödet kan även visualiseras med ett tillståndsdiagam där tillståndskoderna motsvarar adresserna i programmet, se figur 5.5. Då minnet som används under laborationen kommer att ha begränsad kapacitet kan det vara bra att återanvända instruktionsstycken. I programmet nedan används instruktionerna på adress 10 till 14 som en subrutin för att generera en fördröjning.

7 Lab 5: MCU 7 Figur 5.5: Tillståndsdiagrammet visualiserar i vilken ordning programadresserna exekveras, en form av programmflödesdiagram. ADRESS OPCODE DEST DATA 00 IN R0 01 OUT R0 02 BZ R SUB R CALL B CALL B LD R SUB R BZ R B RET Programmet börjar med att ladda R0 med värdet av insignalen INPUT. Värdet av R0 skrivs sedan till utsignalen OUTPUT. Om R0=0 hoppar programmet till 06 annars minskas R0 med 1 och subrutinen anropas vid 04. När subrutinen är slut, på adress 14, återgår programmet till adress 05, alltså raden efter där subrutinsanropet gjordes. Därefter upprepas proceduren tills R0 är 0 då programmet hoppar 06 och subrutinen anropas än en gång. Efter det körs programmet ifrån början igen. Minne Minnets storlek bestäms av två parametrar, antal rader och antal bitar per rad. Under laborationen används ett minne med 32 rader där varje rad består av 13 bitar, se bild 5.6. Med insignalen address bestäms vilken rad som ska finnas på utsignalen mem_data vid nästa stigande flank hos signalen clk. Då alla 32 rader ska kunna nås, måste ingången address bestå av 5 bitar. Likaså, måste utgången mem_data vara 13 bitar bred för att hela raden ska kunna läsas ut. Minnet utnyttjas så att varje rad motsvarar en rad i programmet. Del 1. Hårdvara - Konstruktion av CPU

8 8 Lab 5: MCU Figur 5.6: 32x13bit minne. I denna delen ska nu hårdvaran för CPUn konstrueras. Konstruktionen delas upp i tre delar, adressväljare, beräkningsenhet och instruktionsavkodare, se figur 5.7. Figur 5.7: Blockschema av CPU. För att göra schemat tydligare symboliserar signalen K följande sex signaler: StackOp[1:0], AddrSrc[1:0], ALUOp[2:0], ALUSrc, OutEna och RegEna. Beräkningsenheten utför aritmetiska operationer samt läser och skriver till IO-blocket. Då resultatet från ALUn i beräkningsenheten är noll, ska utsignalen (flaggan) Z bli aktiv (hög) vilket kommer att användas för att styra villkorliga instruktioner. Instruktionsavkodaren avkodar instruktionen I från minnet. Beroende på instruktion och signalen Z genereras styrsignaler till alla delar av CPUn samt till IO-blocket.

9 Lab 5: MCU 9 I adressväljaren genereras adressen till nästa instruktion. Adressväljaren ska även innehålla programräknaren PC, vars värde alltid ska vara adressen till instruktionen som exekveras för stunden Adressväljaren I detta avsnitt ska först en stack realiseras. Stacken tillsammans med andra komponenter ska sedan användas för att realisera adressväljaren. Beroende på instruktionen som exekveras kommer nästa adress genereras på olika sätt. Speciellt gäller att vid subrutins anrop med instruktionen CALL så måste återhoppsadressen sparas undan så att programmet kan återgå till denna adress då subrutinen är slut, vid instruktionen RET. För att spara återhoppsadressen ska en stack användas. Stacken arbetar enligt principen att det som senast sparats där är det som först läses ut, det vill säga ett minne utav LIFOtyp (Last In First Out). Uppgift Implementering av stacken Stacken ska ha 4 st. minnesceller, där varje cell består av 5 bitar. Med 4 minnesceller kan lika många successiva subrutinsanrop kan göras. Skulle ytterligare ett göras kommer återhoppsadressen från den första subrutinen att gå förlorad och programmet kraschar. I 5.8 ses stacken med dess in- och utsignaler, observera antalet bitar för de olika signalerna. Stackens tillstånd ska endast ändras vid insignalen clk stigande flank. Utsignal ToS (Top-of-Stack) ges av stackens översta cell. Signalen n_rst är en asynkron aktiv låg resetsignal som ska nollställa alla stackens celler. Signal StackOp ska styra stacken enligt tabellen nedan Figur 5.8: Symbol av stacken som ska implementeras. Anslutningarna D och ToS är 5 bitar breda och StackOp 2 bitar bred. StackOp PUSH POP HOLD Funktion Värdet av D sparas överst på stacken. tidigare sparade värdet trycks ned ett steg Stackens innehåll flyttas upp ett steg. och den understa cellen får värdet 0. Stackens innehåll oförändrat

10 10 Lab 5: MCU Nedan ges ett exempel på hur stacken ska bete sig vid de olika operationerna. StackOp = PUSH D = 20 Före: Efter: ToS 2 ToS StackOp = POP Före: Efter: ToS 1 ToS StackOp = HOLD Före: Efter: ToS 1 ToS För att implementera stacken ska fem stycken skiftregister SR4 användas. Dessa ska kopplas parallellt, så att varje skiftregister håller en bit ur varje tal som finns på stacken. Operationerna PUSH och POP blir då det samma som att höger- respektive vänsterskifta skiftregisternas innehåll.

11 Lab 5: MCU 11 Hemuppgift Använd fem skiftregister SR4 och anslut kretsarna för att realisera stacken enligt ovan. Rita nätet samt sätt ut signalerna från figur 5.8. Datablad för SR4 finns i appendix. Fyll värdet för signalen StackOp vid de olika operationerna. Operation POP PUSH HOLD StackOp[1:0] Alla filer som behövs under laborationen finns i katalogen S:\MCU, kopiera hela mappen till U:\<ditt namn>. I mappen finns det fem undermappar. Under komponenter finns VHDL-filer för de komponenter som kan användas under laborationen, komponenterna finns listade i början av manualen. Innehållet i misc ska användas då designen synteseras och implementeras i ISE. Mappen tb innehåller alla testbäddar som ska användas. I labbfiler finns VHDL-filerna som beskriver MCUn och i mappen fpga_rom_editor finns PC-programmet som används för att skriva och ladda ner program till MCUn. För att undvika fel som beror på att signaler tilldelas fel värde i olika filer används ett package där konstanter definieras och som sedan kan användas i andra filer, likt headerfiler i C. Öppna först filen labbfiler/cpu_pkg.vhd och fyll i de konstanta värdena för signalen StackOp som styr stackens operationer enligt hemuppgiften ovan. Glöm inte att avkommentera raderna där konstanterna är deklarerade. Öppna därefter labblifer/stack.vhd och implementera stacken genom att instansiera och koppla ihop fem stycken skiftregister SR4 (definierade i filen sr4.vhd), konstanterna från cpu_pkg kan användas. Om några utsignaler från komponenten SR4 inte behövs kan dessa anslutas till open. Ordet open är reserverat i VHDL och talar om för synteseringsverktyget att utsignalen inte används, se exempel nedan.

12 12 Lab 5: MCU instancename: entity adder port map( adder_input => signala, adder_out1 => signalb, adder_out2 => open ); Skapa ett nytt simuleringsprojekt i Questa Sim. Filerna cpu_pkg.vhd och sr4.vhd måste läggas till i projektet då de används i stack.vhd och stack_tb.vhd. Verifiera därefter stackens beteende med filen stack_tb.vhd. Det kan underlätta att öppna stack_tb och läsa igenom kommentarerna för att förstå vad som händer. Under simuleringen finns signalen message tillgänglig och kan läggas till i vågformsfönstret. Den gör det lättare identifiera vilken rad i stack_tb.vhd som genererar insignaler till testobjektet. Uppgift Implementering av adressväljaren Slut på uppgift Adressväljaren, innehållande stacken, ska nu realiseras så att rätt adress genereras vid de olika instruktionerna. Vid instruktioner som inte påverkar programflödet, t ex. ADD och OUT, är nästa adress den som följer i ordningen, det vill säga A + = PC+1. Vid progamhoppsinstruktionen B ska däremot nästa adress vara den som ges av de fem minst signifikanta bitarna i instruktionen, A + =DATA[4:0]. Detsamma gäller för instruktionen BZ om resultatet från ALU är noll. Även vid subrutinsanrop med instruktionen CALL gäller att A + =DATA[4:0]. Dock så måste återhoppsadressen, PC+1, sparas på stacken. Vid instruktionen RET ges nästa adress av det översta elementet från stacken, ToS. Insignaler till adressväljarblocket är clk, n_rst, StackOp[1:0], AddrSrc[1:0] och DATA[4:0]. Dess utsignaler är A och pc_debug, båda fem bitar breda. För styra valet av vilket värde som ska tilldelas A kommer det att behövas en komponent vars utgång kan kopplas ihop med en av dess ingångar. Vad kallas denna komponent? Svar: Komponenten ovan ska styras med signalen AddrSrc, så att A tilldelas ett av värdena i tabellen nedan Nästa adress A PC+1 ToS DATA[4:0] Beskrivning Nästa adress i ordningen. Top-of-Stack, det översta värdet på stacken. De fem minst signifikanta bitarna i instruktionen. Adressväljaren ska även innehålla programräknaren PC, som vid varje stigande flank hos clk ska tilldelas värdet av nästa adress A +. Värdet av PC ska även anslutas till utsignalen pc_debug för att debug-modulen ska fungera senare när program körs.

13 Lab 5: MCU 13 Hemuppgift Rita schemat för adressväljarblocket innehållande stacken, PC, komponenten från frågan ovan samt en komponent med vars hjälp PC+1 kan erhållas (tillgängliga komponenter finns listade i början av labbmanualen). Sätt ut in- och utsignaler! Fyll i värdet för signalen AddrSrc vid de olika operationerna. A + PC+1 ToS DATA AddrSrc[1:0] Fyll i värdena för signalen AddrSrc i filen cpu_pkg.vhd så att de stämmer överens med din implementation. Öppna därefter filen labbfiler/adressvaljare.vhd och implementera adressväljarblocket. Om en komponent har en bredare in- eller utsignal än vad den ska anslutas till så kan följande syntax användas EIGHT <= "0000" & FOUR; FOUR <= EIGHT(3 downto 0); - - EIGHT 8 bitar bred, Four 4 bitar bred - - de fyra översta bitarna fylls med nollor. - - Kan vara riskabelt vid 2-komplement. - - Endast de fyra lägsta bitarna används. Observera att en utsignal deklarerad med out i en entity inte kan läsas av i dess implementation, använd istället en intern signal vars värde sedan tilldelas utsignalen. Testa designen med filen adressvaljare_tb.vhd, tänk på att alla komponeter som används måste läggas till i simuleringsprojektet. Titta i filen adressvaljare_tb.vhd för att förstå simuleringen. Då signalen A ändras via ett kombinatoriskt nät kan det vara svårt att verifiera om blocket beter sig korrekt. Titta istället på utsignalen pc_debug som har värdet av nuvarande adress (pc_debug = PC) och uppdateras vid varje klockflank.

14 14 Lab 5: MCU 5.2. Beräkningsenhet Slut på uppgift Det andra blocket av CPUn, beräkningsenheten, ska nu konstrueras. Beräkningsenheten ska förutom ALUn innehålla registerblocket vilket är det enda minnet i MCUn där temporär data kan sparas. Först kommer registerblocket, innehållande de två 8-bitars registerna R0 och R1 konstrueras. Därefter ska registerblocket användas för att implementera beräkningsenheten. Uppgift Implementering av registerblocket Registerblocket ska styras med två signaler, RegEna och DEST. Signalen DEST, bit 8 från instruktionen, bestämmer vilket av de två registerna som ska vara aktivt. Om DEST=0 ska värdet av R0 finnas på registerblockets utsignal RegOut, annars ska värdet av R1 finnas på utsignalen. RegOut ska ändras direkt då DEST ändras. Om RegEna=1 ska det aktiva registrets innehåll uppdateras med resultatet F från ALU vid nästa stigande klockflank, annars ska det aktiva registret vara oförändrat. Övriga insignaler till registerblocket är clk och n_rst, där den senare ska nollställa registerna asynkront då den är låg.

15 Lab 5: MCU 15 Hemuppgift Rita nätet för registerblocket innehållande R0 och R1 med tillgängliga komponenter och vanliga grindar, t. ex. AND, NOT osv. Sätt även ut in- och utsignaler. Implementera registerblocket i filen labbfiler/registerblock.vhd med tillgängliga komponenter. Logiska funktioner mellan signaler, som AND, NOT, implementeras med VHDL syntax. Verifiera registerblocket med filen registerblock_tb.vhd. Uppgift Implementering av beräkningsenhet Slut på uppgift ALUn i beräkningsenheten ska ta två 8-bitars operander, A och B, och utföra operationen som bestäms av insignalen ALUOp. Utsignalen från ALU är resultatet F samt statussignalen Z som är hög då F=0. Operand A ska alltid vara de åtta minst signifikanta bitarna ur instruktionen, DATA[7:0]. Operand B ska däremot vara en utav två möjliga. Antingen det aktiva registret från registerblocket RegOut eller signalen INPUT från IO-blocket. Valet av B gör med signalen ALUSrc, där ett hög värde medför att B=INPUT och ett lågt värde att B=RegOut. Utsignalen från beräkningsenheten är signalen Z, som ska användas som villkor i instruktionsavkodaren. Och signalen OUTPUT som ska tilldelas resultatet F från ALUn. OUTPUT kommer senare att anslutas till JB via IO-blocket.

16 16 Lab 5: MCU Hemuppgift Rita nätet för beräkningsenheten bestående av registerblock, ALU samt övriga komponenter som krävs. Insignal är DEST, ALUOp, RegEna, INPUT, ALUSrc, DATA, clk och n_rst. Utsignaler är OUTPUT och Z. Implementera beräkningsenheten i filen berakningsenhet.vhd och testa den sedan med filen berakningsenhet_tb.vhd Instruktionsavkodare Slut på uppgift Det sista blocket i CPUn, instruktionsavkodaren, ska nu konstrueras så att rätt styrsignaler genereras till de övriga blocken vid de olika operationerna. Uppgift Implementering av instruktionsavkodare Instruktionsavkodaren ska utifrån fältet OPCODE från instruktionen I, generera rätt styrsignaler till adressväljarblocket, beräkningsenheten samt IO-blocket. Utöver signalen OPCODE används signalen Z från beräkningsenheten som insignalen till instruktionsavkodaren för att styra villkorliga instruktioner.

17 Lab 5: MCU 17 Utsignaler från instruktionsavkodaren är de som använts i tidigare uppgifter AddrSrc, StackOp, ALUOp, ALUSrc, RegEna samt signalen OutEna vars funktion är att styra när IO-blockets utsignalbuffert ska laddas. Ett högt värde hos OutEna medför att utsignalen tilldelas värdet av OUTPUT från beräkningsenheten vid nästa klockflank. Hemuppgift Fyll i tabellen nedan så att instruktionerna implementeras enligt specifikationen tidigare i manualen. Koda även varje instruktion med fyra bitar, I[12:9]. Observera att det finns utrymme för att lägga till egna instruktioner om man vill. T.ex. kan en instruktion där DATA skrivs direkt till OUTPUT visa sig vara mycket användbar senare i laborationen. OPCODE I[12:9] Z StackOp AddrSrc ALUOp ALUSrc OutEna RegEna CALL - RET - BZ 0 BZ B - ADD - SUB - LD - OUT - IN - AND - StackOp = { PUSH, POP, HOLD } AddrSel = { PC+1, ToS, DATA[4:0] } AluOp = { A, B, A+B, B-A, A B, A B, A B } Än så länge har de olika instruktionerna bara angetts med förkortningar. I kretsen måste dessa dock kodas binärt, här med fyra bitar. Öppna cpu_pkg.vhd och definera bitmönster för de olika instruktionerna enligt tabellen i hemuppgiften ovan. Det spelar ingen roll hur dessa kodas så länge man är konsekvent och använder samma kodning då programmen skrivs. Öppna filen instruktionsavkodare.vhd och implementera instruktionsavkodaren enligt tabellen ovan. Här kan det vara bra att använda konstanterna från cpu_pkg för att avkoda signalen OPCODE. Testa därefter instruktionsavkodaren med filen instruktionsavkodare_tb.vhd och kontrollera

18 18 Lab 5: MCU så att rätt styrsignaler genereras vid de olika instruktionerna CPU Slut på uppgift Som sista del av hårdvarudelen av laborationen ska de tre blocken, adressväljare, beräkningsenhet och instruktionsavkodare, kopplas ihop för att implementera CPUn. Därefter ska MCUn syntetiseras och implementeras i ISE. Uppgift Implementering av CPU Öppna filen cpu.vhd och instansiera och koppla ihop de olika blocken enligt figur 5.7. Tänk på att ersätta signalen K i figuren med de verkliga signalerna. Uppgift Syntetisering och implementering av MCU Skapa nu ett nytt projekt i ISE, se appendix. Lägg därefter till alla filer från mapparna labbfiler och misc i projektet. Lägg även till de filer från mappen komponenter som använts för att implementera CPUn. Syntetisera, implementera och generera bitströmmen för projektet i ISE. Kopplingarna mellan blocken i CPUn kan kontrolleras efter syntetisering via RTL-schemat, se appendix för ISE. Slut på uppgift Del 2. Mjukvara - Programmering av MCU Med en väl fungerande MCU återstår nu bara att skriva programmen som löser de två problemen, trafikkorsningen och lejonburen. Minnesmodulen i MCUn är avsedd att innehålla programmet som styr enhetens beteende. Efter att bitströmmen generats i ISE fylls hela minnesarean med nollor. Bitströmmen måste därför modifieras så att ert program placeras i minnet. Modifieringen av bitströmmen kommer att göras med programmet FPGA_ROM_Editor.exe som finns i mappen rom_editor. När programmet används är det viktigt att ni väljer rätt bit-fil. Namnet på bit-filen är detsamma som projektnamnet i ISE, bit-filen finns i projektets mapp. Det är av största vikt att ni väljer rätt (er egen) bit-fil! Figur 5.9 visar hur programmet ser ut på skärmen när det har startats. Antalet programrader (instruktioner) är 32 och varje instruktion består av en fyrabitars operationskod, en destinationsbit och åtta bitar data (MSB..... LSB). En bock i en ruta markerar att motsvarande bit är satt till en etta, annars noll. Efter varje instruktionsrad finns det en ruta där ni kan skriva kommentarer. De fyra knapparna i programmet har följande funktion

19 Lab 5: MCU 19 Figur 5.9: Skärmklipp av FPGA_ROM_Editor s gränssnitt. Programmet används för att kopiera er kod till MCUns minne innan designen laddas ner till FPGA-kortet. Ladda ner till FPGA Spara som Öppna: Rensa: Tar xxx.bit (genererad av ISE), modifierar bitmönstret så att ert program läggs i minnet. Därefter laddas designen ner till FPGA-kortet via USB-kabeln. Sparar instruktioner och kommentarer (spara.hex filen i er katalog). Hämta instruktioner och kommentarer från.hex fil Nollställer alla instruktioner och kommentarer. Observera att då programmet laddas ner kommer även konfigurationen för hårdvaran

20 20 Lab 5: MCU att laddas över till FPGA-kortet. Labbkortet som är anslutet till Nexys4 består av två delar, en trafikkorsning och en lejonbur (figur 5.10). Med strömställaren S3 väljer man om kortet skall fungera som en trafikkorsning (TRAFIK) eller lejonbur (LEJON). Det finns två kontakter på labbkortet, märkta JA respektive JB. Dessa skall kopplas till motsvarande kontakter på Nexys4 och är polariserade med stift så att de inte kopplas fel. Var försiktig, tvinga aldrig! Figur 5.10: Labbkort JB är signaler från Nexys4 till labbkortet enligt nedan: JB Strömställare S3 i läge trafik Strömställare S3 i läge lejon D0 (LSB) Rött ljus huvudgata D0 (LSB) till 7-segmentsavkodare D1 Gult ljus huvudgata D1 till 7-segmentsavkodare D2 Grönt ljus huvudgata D2 7-segmentsavkodare D3 Rött ljus sidogata D3 (MSB) 7-segmentsavkodare D4 Gult ljus sidogata D5 Grönt ljus sidogata D6 D7 (MSB) JA är signaler från labbkort till Nexys4 enligt nedan (oberoende av strömställaren S3):

21 Lab 5: MCU 21 JA Funktion D0 (LSB) 0 = Dag, 1 = Natt (S4) D1 1 = Bil på sidogata (S5) D2 1 = Lejon framför givare G1 D3 1 = Lejon framför givare G2 D4 0 D5 0 D6 0 D7 (MSB) 0 Uppgift 5.5. Programmering av trafikkorsning I denna uppgift gäller det att programmera styrningen av trafikljus i en korsning, ett trafikljus på en huvudgata och ett på korsande sidogata. Strömställaren S4 fungerar som omkopplare mellan dag och natt. Knappen S5 används för att simulera att en bil kommer på sidogatan, se figur Under dagtid, S4 = 0, skall trafikljuset fungera som ett vanligt trafikljus, dvs. växla mellan rött och grönt enligt vedertagen standard. I läget natt, S4 = 1, skall trafikljuset visa grönt på huvudgatan och rött på sidogatan, tills det kommer en bil på sidogatan (S5 = 1 då knappen Bil trycks ner) då ska ljuset skall växla en gång så att det blir grönt på sidogatan och bilen kan passera. Då minnet är begränsat har vi inga krav på att det skall vara olika tider på hur lång tid respektive färg skall lysa. Tips: Det finns en möjlighet att göra koden mer effektiv genom att skapa egna instruktioner. Uppgift 5.6. Programmering av lejonbur I denna uppgift skall en kontrollenhet programmeras som håller reda på hur många lejon som är ute. I princip är denna uppgift identisk med labbuppgift 1.4 med undantagen att det inte finns någon diod för fara och endast nio lejon behöver räknas. För att bli godkänd på laboration 5 krävs att ni programmerar er MCU enligt ovanstående uppgifter och kan redovisa i detalj hur ni har löst uppgifterna, både hård- och mjukvara.

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

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

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

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

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

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

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

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

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

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

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

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn. Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg Laboration nr 4 i digitala system ht-15 Ett sekvensnät.. grupp.. namn. godkänd Laborationens syfte: att ge grundläggande kunskaper i att

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

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

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

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

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

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

Laboration D159. Sekvensnät beskrivna med VHDL och realiserade med PLD. Namn: Datum: Epostadr: Kurs:

Laboration D159. Sekvensnät beskrivna med VHDL och realiserade med PLD. Namn: Datum: Epostadr: Kurs: UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Lars Wållberg/Håkan Joëlson 2001-03-01 v 1.5 ELEKTRONIK Digitalteknik Laboration D159 Sekvensnät beskrivna med VHDL och realiserade med PLD

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

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Håkan Joëlson, John Berge 203 DIGITALTEKNIK I Laboration DE2 Sekvensnät och sekvenskretsar Namn... Personnummer... Epost-adress... Datum för

Läs mer

Laboration i digitalteknik Introduktion till digitalteknik

Laboration i digitalteknik Introduktion till digitalteknik Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 6 Laboration i digitalteknik Introduktion till digitalteknik TSEA Digitalteknik D TSEA5 Digitalteknik Y TDDC75

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #17 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Tallriksmodellen Stackoperationer Element kan endast

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

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

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

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

Tentamen i Digitalteknik 5p

Tentamen i Digitalteknik 5p Dan Weinehall Håkan Joëlson 007-0-09 ELEA5 Tentamen i Digitalteknik 5p Datum: 007-0-09 Tid: 09:00-5:00 Sal: Hjälpmedel: VHDL-kompendierna: Grunderna i VHDL, Strukturell VHDL och testbädd Labinstruktioner

Läs mer

Digital elektronik CL0090

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

Läs mer

LABORATIONSINSTRUKTION

LABORATIONSINSTRUKTION Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION KURS ET1001 Styrteknik LAB NR PLC 5 INNEHÅLL 1. Inledning 2. Laborationskortet i styrteknik 3. Laborationsuppgifter NAMN KOMMENTARER PROGRAM/KURS

Läs mer

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD

Laboration D184. ELEKTRONIK Digitalteknik. Sekvensnät beskrivna med VHDL och realiserade med PLD UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Lars Wållberg/Dan Weinehall/ Håkan Joëlson 2010-05-06 v 1.7 ELEKTRONIK Digitalteknik Laboration D184 Sekvensnät beskrivna med VHDL och realiserade

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

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga Datorarkitektur I Tentamen Lördag 10 April 2010 Ekonomikum, B:154, klockan 09:00 14:00 Examinator: Karl Marklund 0704 73 32 17 karl.marklund@it.uu.se Tillåtna hjälpmedel: Penna Radergummi Linjal Följande

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2008-08-29 Skrivtid 9.00-13.00 Maximalt resultat 50 poäng Godkänt resultat 25 poäng inkl bonus Jourhavande lärare Johan Eriksson Tel 070 589 7911 Tillåtna

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

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

Introduktion till syntesverktyget Altera Max+PlusII

Introduktion till syntesverktyget Altera Max+PlusII Lunds Universitet LTH Ingenjörshögskolan Ida, IEA Helsingborg Laboration nr 5 i digitala system, ht-12 Introduktion till syntesverktyget Altera Max+PlusII Beskrivning i VHDL och realisering av några enkla

Läs mer

VHDL och laborationer i digitalteknik

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

Läs mer

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl Tentamen TSEA22 Digitalteknik 5 juni, 2015, kl. 08.00-12.00 Tillåtna hjälpmedel: Inga. Ansvarig lärare: Mattias Krysander Visning av skrivningen sker mellan 10.00-10.30 den 22 juni på Datorteknik. Totalt

Läs mer

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. F5 Föreläsning i Mikrodatorteknink 2006-09-05 Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion. Programräknaren

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

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

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

AVR 5. Styrning av trafikljus. Digitala system 15 p

AVR 5. Styrning av trafikljus. Digitala system 15 p Namn: Laborationen godkänd: Digitala system 15 p AVR 5 LTH Ingenjörshögskolan vid Campus Helsingborg Styrning av trafikljus. Syftet med laborationen är att styra en trafikkorsning med hjälp av en mikroprocessor.

Läs mer

Lösningsförslag till Tenta i Mikrodator

Lösningsförslag till Tenta i Mikrodator Lösningsförslag till Tenta i Mikrodator 050113 1. Vilka register finns det i processorn och vad används dessa till? D0 till D7: Dataregister som används för beräkningar A0 till A6: Adressregister som används

Läs mer

F5 Introduktion till digitalteknik

F5 Introduktion till digitalteknik Exklusiv eller XOR F5 Introduktion till digitalteknik EDAA05 Roger Henriksson Jonas Wisbrant På övning 2 stötte ni på uttrycket x = (a b) ( a b) som kan utläsas antingen a eller b, men inte både a och

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

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

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

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647 Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

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

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

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

Läs mer

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00.

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00. Mikrodatorteknik Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3 7,5 högskolepoäng Namn: Personnummer: Tentamensdatum: 20120410 Tid: 14:00-18:00 Hjälpmedel: Totalt antal poäng på tentamen:

Läs mer

Tentamen i IE1204/5 Digital Design måndagen den 15/

Tentamen i IE1204/5 Digital Design måndagen den 15/ Tentamen i IE1204/5 Digital Design måndagen den 15/10 2012 9.00-13.00 Allmän information Examinator: Ingo Sander. Ansvarig lärare: William Sandqvist, tel 08-790 4487 (Kista IE1204), Tentamensuppgifterna

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

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

"Crash Course in Programming"

Crash Course in Programming "Crash Course in Programming" Denna genomgång har fokus på programmering. Den följer PBasic-syntaxen för Basic Stamp II, men är i övrigt i stort sett frikopplad från BS2. Vissa aspekter som tas upp följer

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

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

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

Styrenheten styrsignalsekvenser programflödeskontroll

Styrenheten styrsignalsekvenser programflödeskontroll Styrenheten styrsignalsekvenser programflödeskontroll Kontroll av programflöde Instruktionerna är ordnade sekventiellt i minnet och utförs normalt i denna ordning. Vissa programkonstruktioner kräver dock

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

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

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet. Datorteknik Tomas Nordström Föreläsning 6 För utveckling av verksamhet, produkter och livskvalitet. Föreläsning 6 Vad händer vid uppstart SoC och Kringkretsar, PIO Programmering i Assembler Lab2 genomgång

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

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

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

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1 Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1 Från Wikipedia: Sekvensnät Ett sekvensnäts utgångsvärde beror inte bara på indata, utan även i vilken ordning datan kommer (dess sekvens).

Läs mer

Övning2 Datorteknik, HH vt12 - Programmering

Övning2 Datorteknik, HH vt12 - Programmering Övning2 Datorteknik, HH vt12 - Programmering För denna övning behöver man adresskarta och beskrivning av laborationsplattform. Finns bland föreläsningsanteckning samt i bilaga l till Lab l. Använd även

Läs mer

Tenta i Digitalteknik

Tenta i Digitalteknik Tenta i Digitalteknik Kurskod D0011E Tentamensdatum 2012-12-17 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

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #14 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Vad vi har åstadkommit hittills: Med hjälp av kombinatoriska

Läs mer

std_logic & std_logic_vector

std_logic & std_logic_vector VHDL VHDL - Very high speed integrated circuit Hardware Description Language VHDL är ett komplext språk, avsett för att beskriva digitala system på olika abstraktionsnivåer (beteende- och strukturmässigt).

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

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Högskolan i Halmstad Digital- och Mikrodatorteknik 7.5p. Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien DIGITAL- OCH MIKRODATORTEKNIK, U2 09.00 13.00 Tillåtna hjälpmedel: Instruktionslista PIC16F877A Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien Fullständiga lösningar skall inlämnas.

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

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

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

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I. Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.. Uttryckt i decimal form: A=28+32+8 + 2 =70 B=59 C=7 A+B+C=246 2. Jag låter A' betyda "icke A" A'B'C'D'+ABC'D'+A'BCD'+AB'CD'=D'(A'(B'C'+BC)+A(BC'+B'C))=

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

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

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

Datorsystem Laboration 2: Minnesmappade bussar

Datorsystem Laboration 2: Minnesmappade bussar Datorsystem Laboration 2: Minnesmappade bussar Senast uppdaterad: 14 oktober 2012 Version 1.2 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 2 1 Innehåll 1 Inledning 2 1.1 Introduktion..................................

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

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

Chalmers ekniska Högskola Institutionen för Data- och Informationsteknik. EDA 321 Digitalteknik syntes Laboration 2 - VHDL

Chalmers ekniska Högskola Institutionen för Data- och Informationsteknik. EDA 321 Digitalteknik syntes Laboration 2 - VHDL Chalmers ekniska Högskola Institutionen för Data- och Informationsteknik EDA 321 Digitalteknik syntes 2011-2012 Laboration 2 - VHDL 1. Enkelt sekvensnät 2. Trafikräknare i VHDL 3. Syntes av VHDL-kod Namn

Läs mer

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll PARALLELL OCH SEKVENTIELL DATABEHANDLING Innehåll Parallellism i VHDL Delta delays och Simuleringstid VHDLs simuleringscykel Aktivering av Processer Parallella och sekventiella uttryck 1 Controller PARALLELLISM

Läs mer

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

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

Läs mer

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

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

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December Datorarkitektur Datapath & Control December 28 karl.marklund@it.uu.se Foto: Rona Proudfoot (some rights reserved) Vi skall nu kolla närmare på hur det går till när en instruktion utförs. Fetch PC = PC+4

Läs mer

Digitalteknik och Datorarkitektur

Digitalteknik och Datorarkitektur Digitalteknik och Datorarkitektur Tentamen Tisdag 12 Januari 2010 Pollacksbackens skrivsal, klockan 08:00 13:00 Examinator: Karl Marklund 018 471 10 49 0704 73 32 17 karl.marklund@it.uu.se 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

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 Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

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

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

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

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

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

Läs mer

TSEA22 Digitalteknik 2019!

TSEA22 Digitalteknik 2019! 1(43) 2019 Mattias Krysander Ingemar Ragnemalm 1(43) Föreläsning 7. Sekv3. enna föreläsning: Lösningar närmare verkligheten Synkronisering Enpulsare Problem till design 2(43)2(43) Förra föreläsningen:

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