Ontwerp van digitale systemen. in VHDL

Maat: px
Weergave met pagina beginnen:

Download "Ontwerp van digitale systemen. in VHDL"

Transcriptie

1 Ontwerp van digitale systemen in VHDL Luc Friant Inhoud - 1 -

2 Inhoud - 2 -

3 Inhoud Voorwoord 1. Hoofdstuk 1 Algemene structuur in VHDL 2. Hoofdstuk 2 De beschrijving van sequentiële logica in VHDL 3. Hoofdstuk 3 Reactie timercircuit 4. Hoofdstuk 4 Seriële Communicatie 5. Hoofdstuk 5 VGA interface met UP2 Education Kit 6. Hoofdstuk 6 Elektronische tellers 7. Hoofdstuk 7 S/PDIF-tester met MachXO 8. Hoofdstuk 8 Technologie van programmeerbare logica 9. Hoofdstuk 9 A/D- en D/A omvormers 10. Hoofdstuk 10 CPLD interface voor een ADC 11. Hoofdstuk 11 Een Matrix Keypad Encoder Systeem 12. Hoofdstuk 12 Geheugens 13. Hoofdstuk 13 Toepassingen in de markt 14. Appendix A Korte beschrijving van VHDL 15. Appendix B VHDL referentie 16. Appendix C Pinning van het ISP Starter Kit 17. Appendix D Parallel-JTAG-interface 18. Referenties Inhoud - 3 -

4 Voorwoord Dit handboek is bedoeld voor iedereen die wenst kennis te maken met het ontwerpen van digitale systemen met behulp van VHDL. Verder vind je hier heel wat uitgewerkte voorbeeldschakeling die beschreven zijn in VHDL. Na een grondige omschrijving van het ontwerp volgt een analyse en vereenvoudiging. Daarna werden de ontwerpen uitgetest en gesimuleerd met ontwikkelsoftware van Altera en/of Lattice. De ontwerpen werden op ontwikkelbordjes van deze fabrikanten uitgetest. Het boek is bedoeld voor studenten hoger onderwijs. Het is handig voor de lezer wanneer hij de basis gelegd heeft in digitale systemen wat betreft combinatorische en sequentiële schakelingen. Het is de bedoeling dat zowel de elektronicus als de ICT-georiënteerde technicus de basis kan leggen in het ontwerpen van digitale systemen met VHDL. Een aanrader is het handboek digitale systemen van Liesbeth Kenens en Kris de Backer. Het handboek wordt op het Internet vervolledigd met heel wat extra informatie. Zo vind je hier een korte samenvatting van de verschillende hoofdstukken, aangevuld met labproeven. De ontwikkelsoftware is voor studenten vrij beschikbaar bij fabrikanten zoals Lattice en Altera. Op de CD-ROM bij dit boek vindt u de meeste ontwerpvoorbeelden in VHDL. Uiteraard blijft het mogelijk dat u als lezer nog op- en aanmerkingen hebt of met de auteur van gedachten wilt wisselen. U bent daarbij van harte toe uitgenodigd. Zomer 2006 Luc Friant Inhoud - 4 -

5 1. Hoofdstuk 1 Algemene structuur in VHDL Inleiding Beschrijving van combinatorische logica Beschrijving van een eenvoudige combinatorische schakeling Entity std_logic Mode Type Architectuurblok Beschrijving van een 2 naar 4 decoder Gestructureerde beschrijving van een ontwerp Beschrijving van een 4 bit fulladder Hierarchy van het ontwerp Packages Syntax packages Concatenatie operator Generate statement Process statement IF THEN ELSE stuctuur CASE WHEN ELSE WITH SELECT Oefeningen Hoofdstuk 1 Algemene structuur in VHDL - 1 -

6 1. Hoofdstuk 1 Algemene structuur in VHDL 1.1 Inleiding. De standaard in de industrie voor de beschrijving van een digitale schakeling is VHDL. (VHSIC Hardware Description Language) VHSIC Very high speed integrated circuit Een elektronisch CAD pakket is in staat een VHDL beschrijving te aanvaarden en te produceren in het geval dat de gebruiker een schema zou ingegeven hebben. Dit brengt met zich mee dat VHDL ook een methode is om ontwerpen van het ene CAD pakket naar het andere over te brengen. VHDL is niet alleen een beschrijving van een systeem maar bevat ineens ook de oplossing. Deze oplossing evenwel is op een zodanig hoge manier beschreven dat de computer zelf nog heel wat werk heeft om daar een werkende schakeling voor samen te stellen. VHDL beschrijvingen kunnen ook steeds gesimuleerd worden, zodat men op voorhand een vrij goede controle heeft op het ganse ontwerp. Men zal VHDL gebruiken zowel voor het ontwerp van een PAL, CPLD, FPGA als het ontwerp van semi custom IC s. Daarom kan men zeggen dat VHDL een silicon compiler is. Het is de bedoeling om zelf de meeste VHDL beschrijvingen te lezen en te begrijpen en eventueel relatief kleine problemen in VHDL op te lossen. Tevens heeft de lezer al de nodige basiskennis verworven van de klassieke digitale systemen. 1.2 Beschrijving van combinatorische logica. Behandelende begrippen Entity: Beschrijving van alle in- en uitgangen Architecture: structuur dat de relatie geeft tussen de in- en uitgangen, signalen en de variabelen gebruikt in het ontwerp Port: De naam van de in- of uitgang van in entity Mode (of a port): geeft aan of het een in- of uitgang is Signal: Interne verbinding in een ontwerp Variabele: Een stuk intern geheugen Type: geeft aan welke waardes er kunnen gebruikt worden voor een poort, signal of variabele Library: een verzameling van reeds eerder gecompileerde VHDL bestanden Package: Een groep van VHDL bestanden dat kan gebruikt worden in een ontwerp IEEE Standard 1164: De standaard voor de verschillende VHDL types, bewerkingen, inclusief de STD_LOGIC and STD_LOGIC_VECTOR types. Concurrent: gezamenlijk, op hetzelfde moment Concurrent signal assignment: Een relatie tussen alle in- en uitgangen waarop alle uitgangen gezamelijk reageren idien er een verandering optreed op een ingang of een signaal. Hoofdstuk 1 Algemene structuur in VHDL - 2 -

7 Selected signal assignment statement: Een gezamelijke toekenning van een signaal waarvan de waarde van het signal dat toegekend wordt afhankelijk is van de waarde van een ander signaal of variabele. Comment: commentaar Vector: Een groep van digitale signalen of variabelen gewoonlijk genummerd van hoog naar laag en kan aangesproken worden als enkele multibit variabele. Bit string literal: Een groep van bits, of een vector waar een waarde wordt aan toegekend BV: ( ). Concatenatie: Toevoegen van een signaal aan een bus (vector) 1.3 Beschrijving van een eenvoudige combinatorische schakeling. door 1 & B1 ignition 1 buzzer sbelt 1 & B2 Figuur 1 Logische schema van buzzer Merk op dat de beschrijving in VHDL geen sequentiële beschrijving is maar een beschrijving is van de onderlinge verbindingen tussen de in- en uitgangen. (beschrijving van de hardware) Het is geen taal waar er een programma wordt uitgevoerd instructie per instructie, zoals bij een microcontroller in assembler. Hoofdstuk 1 Algemene structuur in VHDL - 3 -

8 Het vereenvoudigen van de combinatorische vergelijking hoeft niet meer te gebeuren met Karnaugkaarten maar gebeurt door de compiler zelf. 1.4 Entity Na het oproepen van libraries staat in de entity de beschrijving van de in- en uitgangen. De naam van de entity is willekeurig maar gezien het ontwerp zinvol gekozen. De naam van het bestand is hetzelfde als de naam van de entity. (buzzer.vhd) 1.5 std_logic Alle in- en uitgangen van het type std_logic Het STD_Logic (standard logic) type, ook genoemd IEEE Std Multi-Valued Logic, geeft een range van verschillende output waardes meer dan alleen maar 0 en 1. Elke poort, signaal, of variabele van het type STD_LOGIC of STD_LOGIC_VECTOR kan onderstaande waarden bevatten. U, Uninitialized X, Forcing Unknown 0, Forcing 0 1, Forcing 1 Z, High Impedance W, Weak Unknown L, Weak 0 H, Weak 1 -, Don t care De "dwingende" niveaus worden geacht om het equivalent van een output aan te nemen. De "zwakke" niveaus zijn gespecificeerd door een pull-up of pull-down weerstand. De `Z ' wordt gebruikt als hoog impedante tristate buffer. De meerderheid van toepassingen kan door X ', 0 ', 1 ', en Z ' waarden worden behandeld. Om STD_LOGIC in een VHDL- ontwerp te gebruiken, moet u de volgende verwijzing gebruiken: De bibliotheek VHDL roept IEEE en het pakket std_logic_1164 aan voor de beschrijving van de entity. LIBRARY ieee; USE ieee.std_logic_1164.all; Hoofdstuk 1 Algemene structuur in VHDL - 4 -

9 1.6 Mode De verschillende modes van een poort zijn: - in: voor een ingangssignaal - out: voor een uitgangssignaal - inout: voor een bidirectioneel signaal. Dit zijn signalen (pennen) die zowel input- als outputpennen kunnen zijn. Een typisch voorbeeld is een databus van een geheugencomponent. - buffer: een signaal dat op één plaats in de VHDL beschrijving een waarde krijgt, maar dat op (eventueel meerdere) plaats(en) in dezelfde beschrijving als input gebruikt wordt en dat ook output is voor het volledige ontwerp. 1.7 Type Het type van een poort, signaal, of variabele geeft aan welke waardes er kunnen gebruikt worden. Bijvoorbeeld een signaal van het type bit kan alleen de waarde 0 en 1 toegekend krijgen. Een signaal van het type integer kan om het even welke waarde zijn, de waarde wordt gelimiteerd naar computersysteem en VHDL compiler. Type Values How written BIT 0, 1 Single quotes STD_LOGIC U, X, 0, 1, Z, W, Single quotes (see Section 1.6.1) L, H, - INTEGER Integer values No quotes BIT_VECTOR Multiple instances of 0 and 1 Double quotes ( ) STD_LOGIC_VECTOR Multiple instances of U, X, Double quotes ( 11ZZ00 ) 0, 1, Z, W, L, H, - Het type std_logic is een belangrijk type. Het is evenwel geen standaard VHDL, maar een type dat door IEEE als standaard gedefinieerd is. De meeste VHDL implementaties supporteren dan ook dit type, op voorwaarde dat men op de eerste lijnen deze bibliotheek aanduidt door middel van volgende bevelen. Library ieee; Use ieee.std_logic_1164.all; Waarom wordt het type std_logic het meeste toegepast desondanks dat het ontwerp alleen maar een 1 en een 0 gebruikt? Men gebruik dit type omwille van de compatibiliteit met andere bibliotheken, (Altera library lpm) daar wordt dit type ook het meeste toegepast. Nadat men de beschrijving heeft gegeven van de entity, geeft men de beschrijving van de functie van de schakeling in het architectuurblok. Hoofdstuk 1 Algemene structuur in VHDL - 5 -

10 1.8 Architectuurblok. Voorbeeld 1: (buzzer.vhd) Opmerkingen: - Er zijn meerdere architecturen mogelijk voor één ontwerp. Vandaar de naam van de architectuur. - In het ontwerp buzzer kan men evenwel gebruik maken van de signalen: B1 & B2, echter deze zijn niet zichtbaar voor de buitenwereld. - Alle statements zijn concurrent, dit wil zeggen dat ze in het digitaal systeem gelijktijdig zullen uitgevoerd worden. Een rechtstreeks gevolg daarvan is dat de volgorde van de statements in het architectuurblok geen rol speelt. - Indien er haakjes geschreven worden, worden deze van links naar rechts uitgevoerd. - De operatoren and, or, nand, xor en not zijn standaard. Merk op dat nand, nor en not niet associatief zijn: a nand b nand c is niet gelijk aan (a nand b) nand c. - Tekst die na - - staat is commentaar. door 1 & B1 ignition 1 buzzer sbelt 1 & B2 Figuur 2 Logische schema van buzzer Hoofdstuk 1 Algemene structuur in VHDL - 6 -

11 1.9 Beschrijving van een 2 naar 4 decoder. D1 D0 1 1 & Y0 & Y1 & Y2 & Y3 Figuur 3 2 naar 4 decoder Voorbeeld 2: Met behulp van afzonderlijke variabelen (decode1.vhd) Voorbeeld 3: Met behulp van vectoren (decode2.vhd) Hoofdstuk 1 Algemene structuur in VHDL - 7 -

12 In voorbeeld 3 wordt de breedte van de in- en uitgangen beschreven met een vectornotatie: STD_LOGIC_VECTOR (3 downto 0); Er bestaat ook de volgende mogelijkheden: STD_LOGIC_VECTOR (0 to 3); STD_LOGIC_VECTOR (1 to 4); STD_LOGIC_VECTOR (4 downto 1); Opgelet! Probeer consequent te zijn in het gebruik van vectoren, en maak er geen mengeling van wat dat leidt tot syntax fouten! Voorbeeld 4: In- en uitgangen die als groep worden behandeld. geselecteerde signaal toekenning (decode2a.vhd) Men maakt één uitgang hoog voor elke binaire combinatie van de ingangen d0 en d1. Kies dan een signaal y dat de binaire waarde van de ingangen aanneemt. De defaultwaarde is dat alle uitgangen laag zijn. Bovenstaande beschrijving noemt men een geselecteerde signaal toekenning. Simulatie van een 2 naar 4 decoder Figuur 4 Simulatie van een 2 naar 4 decoder Hoofdstuk 1 Algemene structuur in VHDL - 8 -

13 1.10 Gestructureerde beschrijving van een ontwerp. Met behulp van eenvoudige componenten is het mogelijk om in een ander ontwerp deze component te gebruiken. Men bekomt alzo een gestructureerde beschrijving. Voorbeeld: ontwerp van een n bit fulladder Door het ontwerp van een n bit fulladder te herleiden tot een 1 bit fulladder bekomt met een gestructureerde beschrijving. Vergelijkingen van een 1 bit fulladder: sum = (A B) C carry = AB + C(A B) Waarheidstabel a b c carry sum Beschrijving van een 1 bit fulladder: (fulladder.vhd) Figuur 5 Blokschema van entity FULLADDER Hoofdstuk 1 Algemene structuur in VHDL - 9 -

14 Het is nu de bedoeling om bovenstaand ontwerp een 1 bit fulladder te gebruiken als component in het ontwerp van een 4 bit fulladder. Figuur 6 Schema van een 4 bit fulladder 1.11 Beschrijving van een 4 bit fulladder (fourbitadd.vhd) Merk op dat in het ontwerp de in- en uitgangen als een vector worden voorgesteld. Zorg ervoor dat bij het gebruik van vectoren daar waar mogelijk is ze voor te stellen van hoog naar laag (downto). Met het statement component wordt de 1 bit fulladder ingevoegd in het ontwerp. Elke concretisering van een component vereist een component concretisering statement. Poorten worden expliciet toegekend met behulp van de => operator. Poorten worden impliciet toegekend met behulp van de overeenkomstige naam van de poort in de declaratie van de component zelf. Hoofdstuk 1 Algemene structuur in VHDL

15 Men gebruikt hiervoor het statement port map. In bovenstaand ontwerp hebben we gekozen voor een impliciete toekenning van de poorten in het ontwerp. De declaratie van de component gebeurd zoals in onderstaande beschrijving. In software ontwikkeltools is het mogelijk om de hiërarchie van het ontwerp weer te geven Hiërarchie van het ontwerp. Figuur 7 Hiërarchie van FOURBITADD Blokschema van de 4 bit fulladder Figuur 8 Blokschema van FOURBITADD Simulatie van een 4 bit fulladder Figuur 9 Simulatie van een 4 bit fulladder Hoofdstuk 1 Algemene structuur in VHDL

16 1.13 Packages. Een package is een ongecompileerde verzameling van VHDL beschrijvingen die kunnen gebruikt worden in verschillende entiteiten. (entitys) De naam van een library moet reeds in het begin van een VHDL file voor de beschrijving van de entiteit worden gedeclareerd. We kunnen in het geval van het ontwerp van een 4 bit fulladder een package aanmaken met een component 1 bit fulladder Syntax packages. LIBRARY library_name; USE library_name._package_name.all; Voorbeeld van de beschrijving van een package Merk op dat de package geen body bevat. De package body is een optioneel gedeelte dat we in dit handboek niet gebruiken. De de beschrijving van een 4 bit fulladder door gebruik te maken van bovenstaande package. (fourbitadd.vhd) Hoofdstuk 1 Algemene structuur in VHDL

17 Men heeft dus drie bestanden nodig: fulladder.vhd; hier staat de beschrijving van de component fulladder_package.vhd; hier worden de entitys van de componenten beschreven fourbitadd.vhd; het ontwerp In het ontwerp wordt met het statement use work.fulladder_package.all de package aangesproken. In de architectuur van het ontwerp komt dan het statement component fulladder te vervallen. In het ontwerp wordt gebruik gemaakt van een impliciete beschrijving van de component zelf Concatenatie operator. De concatenatie operator wordt gebruikt om signalen samen te bundelen in een bus. Voorbeeld: Wanneer we aan een 2 naar 4 decoder een enable ingang toevoegen, dan kunnen we met de concatenatie operator & de ingang En toevoegen aan de vector w. En w(1) w(0) & Y(0) & Y(1) & Y(2) & Y(3) Figuur 10 Logische schema van een 2 naar 4 decoder Enw <= w & En; EN wordt rechts toegevoegd inputs outputs w(1),w(0),en y(3),y(2),y(1),y(0) x x Hoofdstuk 1 Algemene structuur in VHDL

18 VHDL beschrijving van een 2 naar 4 decoder met een hoog actieve enable En gebruik makend van concatenatie. (dec2to4.vhd) Figuur 11 Simulatie van een 2 naar 4 decoder Hoofdstuk 1 Algemene structuur in VHDL

19 1.16 Generate statement. Een generate statement wordt gebruikt om met meerdere concretiseringen tot een bepaalde hardwarestructuur te komen. Men baseert zich op de waarde van één of meerdere indexvariabelen om het vereiste aantal herhalingen tot stand te brengen. Voorbeeld van een 4 bit fulladder. G1 is een label, en de naam van de component is fulladder. De volledige beschrijving van een 4 bit fulladder met behulp van een generate statement (fourbitadd.vhd) Door toevoeging van een integer waarde is het mogelijk om nu een n bit fulladder te beschrijven. Men hoeft in de beschrijving nog enkel integer waarde n aan te passen. Men gebruikt het statement generic om een integer variabele te declareren. Hoofdstuk 1 Algemene structuur in VHDL

20 Voorbeeld van een n bit fulladder met behulp van Generate statement (nbitadd.vhd) 1.17 Process statement. Een process is een stuk VHDL code dat sequentieel zal worden uitgevoerd. Dit is dus in tegenstelling met de statements die buiten een process staan IF THEN ELSE stuctuur. We nemen het voorbeeld van een mulitplexer. Figuur 12 Principe van een multiplexer Afhankelijk van de waarde van S krijgt de uitgang f de waarde van W 0 of W 1. Figuur 13 Het schema van mux2to1 in de Amerikaanse symboliek. Men heeft hier gekozen voor een som van producttermen. Hoofdstuk 1 Algemene structuur in VHDL

21 Door gebruik te maken van een process kan men deze eenvoudige multiplexer beschrijven. (mux2to1.vhd) Het process wordt vooraf gegaan door een label proc1. Dit is facultatief. Welke ingangen afhankelijk zijn in het process wordt weergegeven tussen haakjes in een sensitivitylijst. Het zijn de ingangen w 0, w 1 en s. Het process wordt uitgevoerd wanneer een signaal die in de sensitivitylijst voorkomt tussen de haakjes verandert. De beschrijving wordt weergeven met een IF THEN ELSE structuur. Wordt bovenstaande beschrijving gecompileerd dan bekomt men een circuit volgens volgende combinatorische vergelijking. F = (not s and w 0 ) or (s and w 1 ) Een foutief alternatief om deze multiplexer te beschrijven, want de compiler geeft hierop een warning. Hoofdstuk 1 Algemene structuur in VHDL

22 Binnen het process heeft men een dubbele toekenning van f. Enkel de laatste toekenning heeft effect op de uitgang. f <= w1; Deze beschrijving kan soms tot triviale circuits leiden. Men geeft de voorkeur aan onderstaande beschrijving. Voorbeeld van een multiplexer die geen echte multiplexer is! Omdat w0 en w1 zijn weggelaten in de sensitivitylijst. De wijziging van w0 en w1 worden pas weergegeven wanneer s van waarde veranderd. Het is eveneens op te merken dat een IF tatement moet worden afgesloten met een END IF en niet met een ENIF. Omwille van het sequentiële karakter van een IF, is een IF bevel alleen toegelaten binnen een process! 1.19 CASE Een case is een statement net zoals een IF statement dat alleen toegelaten is binnen een process. Voorbeeld: Hoofdstuk 1 Algemene structuur in VHDL

23 Voorbeeld van een case structuur om een 2-to-4 binary decoder te beschrijven. (dec2to4.vhd) En w(1) w(0) & Y(0) & Y(1) & Y(2) & Y(3) Figuur 14 Logische schema van een 2 naar 4 decoder met ingang enable Hoofdstuk 1 Algemene structuur in VHDL

24 Voorbeeld van een BCD naar 7-segmentdecoder door gebruik te maken van een case statement WHEN ELSE Bij conditie afhankelijke signalen wordt de waarde van een poort of een signaal toegekend afhankelijk van een conditie. Men gebruikt de WHEN ELSE structuur maar dan buiten een process. Voorbeeld: Hoofdstuk 1 Algemene structuur in VHDL

25 1.21 WITH SELECT Een WITH SELCT is een alternatief voor een case, maar dan buiten een process, net zoals de WHEN ELSE. Voorbeeld VHDL operatoren Hoofdstuk 1 Algemene structuur in VHDL

26 1.22 Oefeningen. Oefening 1 Programmeer een 2 bit naar 7 segment omvormer door gebruikt te maken van gestructureerde beschrijving. Oefening 2 1 dobbelsteen en 1 comparator: Als we op de drukknop drukken zal de digitale dobbelsteen een waarde genereren van 1 tot 6. De digitale dobbelsteen zal een waarde van 1 t.e.m. 6 doorsturen naar een comparator. Als de comparator aan staat ("En = 1"), zal de uitgang F hoog worden als de waarde op de input groter is dan drie. Is de input waarde kleiner dan drie zal er een rood lichtje branden. dobbelsteen a b c compare >3 En <=3 F Rood Opgave 1 Programmeer bovenstaande comparator voor 1 dobbelsteen. Een kansspel met 4 dobbelstenen. dobbelsteen dobbelsteen dobbelsteen S0 S1 S2 S3 dobbelsteen Enable c(0)b(0)a(0) F(0) c(1)b(1)a(1) F(1) c(2)b(2)a(2) F(2) compare compare compare c(3)b(3)a(3) compare a >3 a >3 a >3 a >3 b b b b c c c c En <=3 En <=3 En <=3 En <=3 jackpot Rood0 Rood1 Rood2 Rood3 Men gaat vervolgens 4 comparatoren met elkaar verbinden en elke comparator voorzien van een digitale dobbelsteen. Hoofdstuk 1 Algemene structuur in VHDL

27 Men drukt op S1 waardoor de eerste dobbelsteen een waarde geeft. Is deze waarde hoger dan 3 zal de tweede dobbelsteen geactiveerd worden waardoor je op S2 kan drukken. Is de waarde van de tweede dobbelsteen groter dan 3 zal de derde dobbelsteen geactiveerd worden waardoor we op S3 kunnen drukken. Is de waarde van de derde dobbelsteen groter dan 3 zal de vierde dobbelsteen geactiveerd worden waardoor we op S4 kunnen drukken. Is de waarde van de vierde dobbelsteen groter dan 3 zal de uitgang Jackpot oplichten. Opgave2 Programmeer de jackpot en gebruik packages Een.vhd file van 1 comparator (1 dobbelsteen) Een.vhd file van de package Een.vhd file van het top design ( ons jackpot spel ) dobbelsteen dobbelsteen dobbelsteen S0 S1 S2 S3 dobbelsteen Enable c(0)b(0)a(0) F(0) c(1)b(1)a(1) F(1) c(2)b(2)a(2) F(2) compare compare compare c(3)b(3)a(3) compare a >3 a >3 a >3 a >3 b b b b c c c c En <=3 En <=3 En <=3 En <=3 jackpot Rood0 Rood1 Rood2 Rood3 Oefening 3 Ontwerp in VHDL een kwadratische codeomvormer. Geef twee oplossingen. 1. door de som van de productermen op te schrijven 2. met de structuur: output <= '1' when input = "1010" or input = "1001" else '0'; Een kwadratische omvormer wordt dikwijls gebruik bij debietmetingen waar het debiet wordt bepaald door een verschildruktransmitter. Hoofdstuk 1 Algemene structuur in VHDL

28 Oefening 4 Ontwerp een 4-to-1 multiplexer Ontwerp een 16-to-1 multiplexer met behulp van een PACKAGE. Gebruik in het ontwerp een GENERATE Statement Gebruik onderstaande ENTITY Gebruik onderstaand schema Hoofdstuk 1 Algemene structuur in VHDL

29 Oefening 5 1. Ontwerp een 2 naar 4 binary decoder. w0 1 w1 1 & y0 & y1 & y2 En & y3 2. Ontwerp een 4-to-16 binary decoder met behulp van PACKAGES. 3. Ontwerp een 4-to-16 binary decoder met behulp van een GENERATE statement. Oefening 6 Ontwerp een 12-bit adder door gebruik te maken van een GENERATE statement. Laat het resultaat zien op drie 7-segmentdisplay s. Hoofdstuk 1 Algemene structuur in VHDL

30 Hoofdstuk 1 Algemene structuur in VHDL

31 2. Hoofdstuk 2 De beschrijving van sequentiële logica in VHDL Inleiding Beschrijving van geheugens. (flipflops) Beschrijving van tellers in VHDL Ontwerp van een 2 digit BCD-teller Ontwerp van een 8-bit bidirectionele teller met parallelle load Registers Bufferregisters Schuifregisters Toepassingen van schuifregisters Beschrijiving van een register Beschrijving van een schuifregister Alternatieve beschrijving voor een schuifregister Beschrijving van een 4-bit schuifregister Het dender vrij maken van een schakelaar VHDL-code van een dendervrije schakelaar Oefeningen Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 1 -

32 2. Hoofdstuk 2 De beschrijving van sequentiële logica in VHDL 2.1 Inleiding. Onder de noemer van sequentiële logica vallen de schakelingen die gebruik maken van een kloksignaal. Men gebruikt hiervoor volgende basis componenten zoals: flipflops, tellers, registers, schuifregisters,.. Het is in dit hoofdstuk de bedoeling om een aantal basis schakelingen te beschrijven in VHDL om alzo een aantal bijzonderheden in deze programmeertaal te demonstreren. Nadien worden er een aantal praktische toepassingen beschreven in de volgende hoofdstukken. Behandelende begrippen D-flipflop: basis van een statische geheugencel Sensitivitylijst: geeft aan welke signalen worden behandelt in een process Asynchrone reset: heeft voorrang op de klok Binaire teller: is een teller die alle combinaties af gaat Bidirectioneel: is in twee richtingen Register: dient om informatie tijdelijk in op te slaan Schuifregister: dient om informatie serieel te verwerken IEC: Int. Electro - technical Commission BCD: Binary Coded Decimal Modulo teller: tot een bepaalde waarde tellen Figuur 1 D-flipflop op experimentele print Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 2 -

33 2.2 Beschrijving van geheugens. (flipflops) (d_flipflop.vhd) Voor de entity d_flipflop kan met vele architecturen schrijven. Voorbeeld van de entity d_flipflop: Enkele voorbeelden zijn hier op z n plaats. Nieuw in bovenstaande beschrijving is dat er geen sensitivitylijst is gebruikt. Dat wil zeggen dat het process altijd loopt. In het process staat evenwel een wait bevel. Het process zal daar wachten tot dat: Clk event: event is een attribuut en is true wanneer clk van waarde verandert en clk = 1. Beter is onderstaande beschrijving van een d_flipflop: Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 3 -

34 Meeste ontwerpers geven de voorkeur om het statement: if clk'event and clk = '1' te gebruiken, omdat men dan in de declaratie van het process nog andere signalen kan mee nemen in de sensitivitylijst. Indien men gebruik maakt van het statement: wait until (clk'event and clk='1'); is er geen sensitivitylijst van toepassing. Aan te raden is om consequent bij meerdere processen het statement: if clk'event and clk = '1' te gebruiken. Voorbeeld van een D-flipflop met een asynchrone reset: (asyn_d_flipflop.vhd) Voorbeeld van een D-flopflip met een synchrone reset: (syn_d_flipflop.vhd) Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 4 -

35 2.3 Beschrijving van tellers in VHDL. Binaire tellers: Er zijn in VHDL verschillende mogelijkheden om tellers te ontwerpen. - Zelf zoeken naar de Booleaanse vergelijkingen met Karnaugh Kaarten. We gebruiken een CASE statement om het toestandsdiagram van de teller te beschrijven. - Gebruik een voor gedefinieerde teller uit een bibliotheek van een fabrikant zoals Altera; MAX+PLUS II Library (LPM) (Library of Parameterized Modules) en map de poorten in de poorten van het VHDL ontwerp Voorbeeld van een eenvoudige 8-bit binaire teller met asynchrone clear. (ct_simp.vhd) Wanneer er een verandering van een signaal dat in de sensitivitylijst staat plaats vindt, dan wordt het proces uitgevoerd. Nadien wordt elke actie synchroon uitgevoerd met het signaal van de klok. Indien eerder de clear wordt bediend heeft deze actie voorrang op de klok. Met andere woorden de klok is asynchroon. De berekende waarde van de teller wordt bijgehouden in variabele count dat van het type integer is met een range van 0 tot 255. De teller beschikt trouwens over 256 verschillende toestanden. Het is een lokale variabele welke we binnen het process hebben gedefinieerd. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 5 -

36 De waarde count wordt opnieuw vernieuwd met behulp van het IF statement van de vorm: De regel (IF (clear= 0 ) THEN) resulteerd in een asynchrone clear onafhankelijk van de klok, de clear zet variabele count terug op 0. Tot slot moet de waarde van count overgedragen worden aan de uitgangen van het ontwerp. Dit gebeurt met de regel: q<=count. Merk op dat we hier twee verschillende toekenning gebruiken: - een variabele wordt met operator := toegekend - een signaal of output wordt met operator <= toegekend Figuur 2 Simulatie van een 8-bit binaire teller Indien men 100 klok signalen willen tellen (van 0 tot 99) voegen we volgend statement toe in het process. Het gaat hier over een modulo 100-teller In onderstaande simulatie is het getal 63H (99D) de hexadecimale voorstelling van de teller. Men ziet ook duidelijk in de simulatie het effect van de asynchrone clear. Figuur 3 Simulatie van een modulo 100-teller Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 6 -

37 2.4 Ontwerp van een 2 digit BCD-teller. (BCDcount.vhd) Indien men een 2 digit BCD-teller wenst te ontwerpen moeten we de uitgang van de teller opsplitsen in 2 vectoren namelijk BCD0 en BCD1. Wanneer men voor de uitgangen mode buffer kiest hoeft men in architecture geen gebruik te maken van signalen. D.w.z. dat deze uitgangen terug als ingang kunnen gebruikt worden in het ontwerp. Het is dan tevens mogelijk om de teller uit te lezen met behulp van twee 7-segment decoders. We gebruiken onderstaande entiteit (entity) Men bekomt dan onderstaand blokschema. Figuur 4 Blokschema van BCDCOUNT De teller begint te tellen als ingang E (Enable) 1 is en de clear is synchroon. Beschrijving van het proces om een 2-digit 99-teller in BCD-code te bekomen. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 7 -

38 Simulatie van een 2 digit BCD teller. Figuur 5 Simulatie van een 2 digit BCD teller Merk op dan Enable en Clear synchroon zijn. De volledige beschrijving van een 2-digit BCD-teller. (BCDcount.vhd) Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 8 -

39 2.5 Ontwerp van een 8-bit bidirectionele teller met parallelle load. Figuur 6 Blokschema van een 8-bit bidirectionele teller met parallelle load De teller begint te tellen als COUNT-ENA = 1. De teller kan asyncroon worden gereset met de ingang CLEAR. Met de ingang DIRECTION kunnen we de teller laten begingen vanaf een vooraf ingestelde waarde op ingangen P[7..0] en de asynchrone ingang LOAD. De uitgangen zijn 8 bit breed QD[7..0] De uitgang MAX_MIN is hoog actief. Men gebruikt onderstaande entity om de teller te beschrijven. De functies clear en load zijn asynchroon en maken deel uit van de sensitivitylijst in het process. Iedere keer dat er zich een verandering voordoet aan de ingangen clk, clear en load wordt het process uitgevoerd. Ingangen clear en load worden gecontroleerd met het IF STATEMENT en zijn onafhankelijk van de klok. Vandaar dat zij ook in het begin van het PROCESS worden gecontroleerd. De teller wordt met één verhoogd op voorwaarde dat clk EVENT true is, count_ena 1 is & direction 1 is. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL - 9 -

40 De teller wordt met één verlaagd op voorwaarde dat clk EVENT true is, count_ena 1 is & direction 0 is. De count waarde wordt aan de uitgangen van de outputs toegekend met behulp van een signaal toekenning De mogelijke resultaten op de toekenning van het signaal zijn: qd _ 0 (clear _ 0), qd _ p (load _ 1 AND clear _ 1), increment qd (count_ena _ 1 AND direction _ 1), decrement qd (count_ena _ 1 AND direction _ 0), or geen verandering op qd (count_ena _ 0). Op het einde wordt de teller gedecodeerd naar een MAX_MIN uitgang die: Hoog actief is bij het optellen en de teller op 255 of FFH staat. Hoog actief is bij het aftellen en de teller op 0 = 00H staat. Figuur 7 Simulatie van 8-bit bidirectionele teller met parallelle load Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

41 De bidirectionele functie van het ontwerp wordt gesimuleerd. Merk op dat de eerste puls op de MAX_MIN uitgang een MAX is en dat de tweede puls een MIN is! Controlleer dit bij de overgang van 1 naar 0 bij direction. De volledige beschrijving van een 8-bit bidirectionele teller met parallelle load. Clear en load zijn asynchroon. (pre_ct8a.vhd) Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

42 Op eenvoudige wijze kan met de beschrijving van een 8-bit bidirectionele teller met parallelle load aanpassen naar een synchrone clear en load. Het PROCESS statement heeft maar één ingang in de sensitivitylijst staan. De load en clear worden maar één keer geëvalueerd in het PROCESS, namelijk nadat CLK EVENT AND CLK true is. De volledige beschrijving van een 8-bit bidirectionele teller met parallelle load. Clear en load zijn synchroon. (pre_ct8s.vhd) Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

43 Simulatie van 8-bit bidirectionele teller met parallelle load Asynchrone clear en load. Figuur 8 Simulatie van 8-bit bidirectionele teller met parallelle load Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

44 2.6 Registers. In digitale systemen moet vaak gedurende een zekere tijd binaire informatie of codewoord worden opgeslagen. Dit gebeurt dan in een register. Het register heeft zoveel flipflops als dat er bits zijn in de binaire informatie. Soms is het nodig om de informatie in het register één bit te verplaatsen. Dergelijk register noemen we dan een schuifregister. De informatietoevoer en -afvoer in het register kan serieel of parallel gebeuren. Het algemeen IEC-symbool van een 4-bitregister is voorgesteld in Figuur 9. De vier gelijke blokjes stellen de vier flipflops voor. Het bovenste blokje stelt de bijkomende logica voor. Registers kunnen gebruikt worden als schuifregisters, tellers, serie-parallel omvormer, codegeneratoren, enz. Figuur 9 Het IEC-symbool van een 4-bitregister 2.7 Bufferregisters. Bufferregisters hebben tot doel een binair woord op te nemen en voor een bepaalde tijd te houden. Aan de ingangen van Figuur 9 X0, X1, X2, en, X3 wordt het binaire codewoord aangesloten. Bij het optreden van de klokimpuls wordt het binaire woord in de flipflops opgeslagen zodanig dat Q3 = X3, Q2 = X2, Q1 = X1 en Q0 = X0 wordt. Dit is een asynchrone reset omdat deze ingang onafhankelijk is van het kloksignaal C1. Door de clear-ingang laag te maken worden alle flipflops gereset zodat het ingeschreven woord Q = 0000 is. Wordt nu de clear ingang op hoog gezet, dan is het register klaar om een bepaald woord in geheugen op te nemen. De gemeenschappelijke besturingssignalen (R, S, C1 en L) voor al de D- flipflops bevinden zich in het besturingsblok. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

45 Met de load (L) kan het register al of niet geladen worden. De load is hoog actief. Met de reset (R) kan het volledige register op nul gezet worden. De reset is laag actief. Met de set (S) kan het volledige register op één gezet worden. De set is laag actief. Wordt de load ingang op "1" gezet, dan wordt de X informatie doorgespeeld naar de respectievelijke D-ingangen. Wordt de laod ingang op "0" gezet dan wordt de Q informatie doorgespeeld naar de respectievelijke D ingangen. Klokimpuls C1 leert ons dat alle D-ingangen hierop reageren. Hier is dit op de 0-1 flank of de stijgende flank. Bij de load-ingang (L) is geen polariteit indicator getekend vandaar dat deze ingang hoog actief is, in tegenstelling tot de reset- en de set ingang. Figuur 10 Het IEC-symbool van een 4-bitregister 2.8 Schuifregisters. Een schuifregister dient om informatie dat het bevat één of meerdere posities naar links of naar rechts te verschuiven. De verschuiving gebeurt slechts één positie ineens; bij iedere klokimpuls verschuift de informatie slechts over één naburige flipflop. Het aantal schuifimpulsen of klokimpulsen dat nodig is om de volledige informatie in het geheugen op te nemen is daarom gelijk aan het aantal flipflops dat het register bevat. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

46 2.9 Toepassingen van schuifregisters. Schuifregisters worden in digitale schakelingen, en vooral in de computertechniek, zeer veel gebruikt. We noemen hier enkele toepassingen op. Bufferregisters worden gebruikt om gedurende een bepaalde tijd een binair codewoord te bewaren. Schuifregisters in de serie in- serie uit mode kunnen gebruikt worden als vertragingsregister. De opgeslagen data zal aan de uitgang verschijnen met een vertraging van N impulsen. In die mode kan het schuifregister ook gebruikt worden als tijdelijke opslag van informatie. Een bijzondere toepassing in de serie in- serie uit mode is de "Ringteller" en "Johnson teller". Schuifregisters in de parallel in- parallel uit mode vinden toepassing bij karakter- en codegeneratoren. Voor een herhaling van de code wordt de schakeling gecombineerd met een ringteller die het rondschuiven verzorgt. Uiteraard kan een dergelijk schuifregister gebruikt worden als buffer- of geheugenregister. Schuifregisters in de serie in- serie uit mode worden o.a. gebruikt bij data-transmissie. Dit zal het geval zijn waar de bewerking of verwerking van de digitale signalen bit per bit gebeurt (serieel) en bv. het zichtbaar maken van de informatie parallel moet zijn. Denken we hier bijv. aan het uitvoeren van rekenkundige bewerkingen en het zichtbaar maken van het resultaat op een display. Schuifregisters in de serie in- serie uit mode worden o.a. gebruikt bij datatransmissie. Dit zal het geval zijn waar de digitale informatie over een lange afstand moet overgebracht worden. Denken we hier o.a. aan de digitale afstandsbediening van ons T.V. toestel en teletext. A/D omvormers S.A.R. (Successive approximation register) Het dendervij maken van een schakelaar Het weg filteren van ruis in een kloksignaal Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

47 2.10 Beschrijiving van een register. Onderstaande code is een beschrijving van een 8-bit register met asynchrone clear. (reg8.vhd) Het blokschema van een 8-bit register Figuur 11 Blokschema van REG8 Beter is een beschrijving te geven waarvan het aantal bit van het register afhankelijk wordt gemaakt van een integer value. Men maakt dan gebruik van het statement: Het aantal in- en uitgangen is dan afhankelijk van de integer value N. Om ervoor te zorgen dat het register op 0 wordt gezet, onafhankelijk van het aantal bits, gebruikt men onderstaand statement: Bovenstaand statement is equivalent aan onderstaand statement: Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

48 De volledige beschrijving van een n-bit register. (regn.vhd) Het blokschema van een n-bit register waarbij N=16. Figuur 12 Blokschema van REGN 2.11 Beschrijving van een schuifregister. Volgens onderstaand schema wordt een 4-bit schuifregister beschreven. Figuur 13 Het schema van een 4-bit schuifregister Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

49 Een subcircuit bestaande uit een D- flipflop en een 2 naar 1 multiplexer wordt gebruikt. De entity van dit subcircuit is muxdff en wordt als component gebruikt in de beschrijving van het 4-bit schuifregister. (muxdff.vhd) Afhankelijk van ingang sel wordt ofwel D0 ofwel D1 vergrendeld op de uitgang Q. Onderstaande hardwareschakeling geeft dit weer. Figuur 14 Logisch schema van muxdff Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

50 Door gebruik te maken van 4 maal een muxdff kan men een 4-bit schuifregister bekomen zoals in ondertaande digitale schakeling. Figuur 15 Logische schema van een 4-bit schuifregister Men gebruikt muxdff als component. (shift4.vhd) Let op de volgorde van de beschrijving van de in- en uitgangen van component muxdff. Merk op dat er voor uitgang Q mode buffer is gekozen. Zo vermijd men in de architecture een signaal. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

51 Handig is het wanneer de beschrijving wordt uitgebreid naar een n-bit schuifregister. Men maakt dan gebruik van een GENERATE statement. In dit voorbeeld bekomt men dan een 4-bit schuifregister. Door een integer waarde aan te passen naar 32 bekomen we en 32-bit schuifregister. (shiftn.vhd) Hiërarchie van een n-bit schuifregister Figuur 16 Hiërarchie van een n-bit schuifregister Q(3) Q(2) Q(1) Q(0) W L Clock D1 D0 Sel Q Clock D1 D0 Sel Q Clock D1 D0 Sel Q Clock D1 D0 Sel Q R(3) R(2) R(1) Figuur 17 Logische schema van een 4-bit schuifregister R(0) Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

52 2.12 Alternatieve beschrijving voor een schuifregister. (shift4.vhd) Wanneer er een signaal dat beschreven staat na WAIT UNTIL heeft het signaal invloed op de uitgangen van de D-FF s. De parallelle load wordt met onderstaand statement beschreven: Het schuiven wordt met onderstaand statement beschreven en is synchroon met de klok. De volgorde van de regels speelt geen rol, alles wordt in het PROCESS op hetzelfde moment uitgevoerd. (concurrent) Men kan dus ook onderstaand statement gebruiken: Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

53 Men kan de alternatieve beschrijving ook uitbreiden naar een n-bit schuifregister. (shifta.vhd) In bovenstaande beschrijving wordt een loop statement gebruikt. VHDL kent twee types loop statements: - FOR-LOOP - -WHILE LOOP Syntax: Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

54 2.13 Beschrijving van een 4-bit schuifregister. (shiftreg.vhd) Blokschema Figuur 18 Blokschema van SHIFTREG Beschrijving Merk op dat met onderstaand statement het schuifregister al is beschreven. De vier uitgangen van het signaal shift worden op de vier uitgangen van het ontwerp(entity) gezet. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

55 Men kan vorige beschrijving ook uitbreiden naar een n-bit schuifregister. (shgiftregn.vhd) Voorbeeld van een 8-bit schuifregister Merk op dat voor de uitgang q mode buffer is gekozen. Zo moet er voor dat het process wordt beschreven geen signaal worden gedefinieerd. We kunnen het schuifregister gebruiken om ruis, reflecterende pulsen, of timing hazards weg te filteren. Een veel gebruikte toepassing is het dendervrij maken van een schakelaar. Bij deze toepassing wordt de laatste beschrijving van een schuifregister toegepast Het dender vrij maken van een schakelaar. Dender op een schakelaar wordt geproduceerd elke keer een schakelaar wordt bediend. De knip van de schakelaar veroorzaakt geen stabiel signaal op een digitaal programmeerbaar systeem. Het bedienen van de schakelaar kan meerdere impulsen genereren op een systeem wanneer hij wordt bediend. Figuur 19 Het dender vrij maken van een schakelaar Er komen als het ware meerdere stijgende en dalende flanken voor op de uitgang van een schakelaar. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

56 Figuur 20 Het dender vrij maken van een schakelaar De dender blijft ongeveer 20 ms aanwezig op de uitgang van een schakelaar. Dit alles is weergegeven in de twee volgende figuren. Figuur 21 Het dender vrij maken van een schakelaar Figuur 22 Het dender vrij maken van een schakelaar Men kan de dender van een schakelaar weg filteren met behulp van een 4-bit schuifregister. Voor dat de schakellaar op 1 werd gezet stond er nog een 0 op Din van het schuifregister, zodat de uitgang van de andpoort op 0 staat. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

57 Figuur 23 Het dender vrij maken van een schakelaar Na ongeveer 20 ms is de dender op de schakelaar verdwenen en na vier stijgende flanken van het kloksignaal staan de vier uitgangen van het schuifregister op 1 zodat de uitgang van de andpoort ook op 1 komt te staan. Figuur 24 Het dender vrij maken van een schakelaar Voor dat de dender op de schakelaar is verdwenen krijgen we onderstaande situatie. Figuur 25 Het dender vrij maken van een schakelaar In 20 ms dat er dender zit op de schakelaar wordt dit signaal via de seriële ingang van het schuifregister vier maal ingeklokt. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

58 Figuur 26 Het dender vrij maken van een schakelaar Klokimpuls 1 Figuur 27 Het dender vrij maken van een schakelaar Klokimpuls 2 Figuur 28 Het dender vrij maken van een schakelaar Klokimpuls 3 Figuur 29 Het dender vrij maken van een schakelaar Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

59 Klokimpuls 4 Figuur 30 Het dender vrij maken van een schakelaar Pas na 4 klokimpulsen zal de uitgang van de andpoort op 1 komen te staan. Figuur 31 Het dender vrij maken van een schakelaar In het geval dat de schakelaar terug naar 0 gaat. Figuur 32 Het dender vrij maken van een schakelaar Vanaf de eerste stijgende flank wordt de uitgang van de andpoort 0. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

60 Figuur 33 Het dender vrij maken van een schakelaar Bij de volgende stijgende flank blijft de uitgang van de andpoort 0 staan. Figuur 34 Het dender vrij maken van een schakelaar Bij de volgende vier stijgende flanken blijft de uitgang van de andpoort op 0 staan. Figuur 35 Het dender vrij maken van een schakelaar Figuur 36 Het dender vrij maken van een schakelaar Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

61 Figuur 37 Het dender vrij maken van een schakelaar Figuur 38 Het dender vrij maken van een schakelaar Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

62 2.15 VHDL-code van een dendervrije schakelaar. Blokschema: Figuur 39 Blokschema van DEBOUNCE Beschrijving (debounce.vhd) Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

63 2.16 Oefeningen Oefening 1 Ontwerp volgens onderstaand schema een switch debouncer voor een normaal geopende drukknop. De drukknop bedient een logische nul. Gebruik onderstaande entity. Figuur 40 Switch debouncer voor een normaal geopende drukknop Oefening 2 Ontwerp in vhdl met behulp van een schuifregister onderstaande ringteller. Q(3) Q(2) Q(1) Q(0) Clock w Clock D1 D0 Q Clock D1 D0 Q Clock D1 D0 Q x Clock D1 D0 Q Sel Sel Sel Sel 1 0 L 1 Figuur 41 Ringteller Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

64 Zorg dat de teller zelfstartend is. Met L kiezen we op- of aftellen. L = 1 dan is x de shift-input. (shift left) L = 0 dan is w de shift-input. (shift right) Zorg ervoor dat onderstaande timing wordt gerespecteerd. Figuur 42 Timing ringteller Maak daarna een uitbreiding voor een n-bit ringteller. Hoofdstuk 2 Beschrijving van sequentiële logica in VHDL

65 3. Hoofdstuk 3 Reactie timercircuit Inleiding Sturing van het timercircuit Uitlezing en sturing van het timercircuit Het timercircuit in VHDL Realisatie van het timercircuit met behulp van isplever Oefening: Hoofdstuk 3 Reactie timercircuit - 1 -

66 3. Hoofdstuk 3 Reactie timercircuit. 3.1 Inleiding. We ontwerpen een circuit dat de reactietijd van een persoon kan meten. Het circuit doet een led branden bij een actieve input op actie. Met behulp van een drukknop moet de persoon in kwestie dan zo snel mogelijk reageren. De tijd tussen het starten (actie) en het stoppen van de meting (reactie) wordt weergegeven met behulp van een timer. Het princiepschema wordt in Figuur 1 weergegeven. Figuur 1 princiepschema van het reactie timercircuit De meting wordt gestart door input actie even op 1 te zetten. Hierdoor wordt met behulp van een multiplexer de D-flipflop geset waardoor het ledje gaat branden. Input enable wordt 1 waardoor de teller begint te tellen. De tijd begint te lopen en wordt gestopt van zodra de D-flipflop wordt gereset. Het resetten van de D-flipflop gebeurt met druknop reactie. Met behulp van een BCD-99 teller wordt de reactietijd gemeten. Deze teller wordt geklokt met een kloksignaal van exact 10 Hz. Men kan alzo de reactietijd meten tot op een nauwkeurigheid van 0,1 seconde. Indien we willen meten met een nauwkeurigheid van 0,01 seconde dan moet er gekozen worden voor een kloksignaal van 100 Hz. Hoofdstuk 3 Reactie timercircuit - 2 -

67 3.2 Sturing van het timercircuit. Elektronisch kan de schakeling met D-flipflop, multiplexer, ledje en drukknoppen er uit zien zoals in Figuur 2. Figuur 2 sturing van het reactie timercircuit In de plaats van een teller te kiezen met een enable-ingang wordt er hier gekozen voor een telpoort. Het 10 Hz signaal wordt aangeboden aan een telpoort die wordt open gezet van zodra de D-flipflop op 1 staat. Met drukknop reset wordt het reactie timercircuit terug opnieuw klaar gezet voor een volgende nieuwe meting. De uitlezing van de gemeten tijd kan gebeuren via onderstaande traditionele componenten; - 2 BCD-tellers (bv: 74xx160) - 2 BIN/7-SEG omvormers (bv: 74xx47) Figuur 3 geeft de teller wee. Figuur 4 geeft het volledige ontwerp weer. Het is nu de bedoeling om de volledige schakeling te ontwerpen in een programmeerbare component, bv: een CPLD M4A5-64/32 van Lattice, of een CPLD EPM128S van Altera. Hoofdstuk 3 Reactie timercircuit - 3 -

68 3.3 Uitlezing en sturing van het timercircuit. Figuur 3 De uitlezing van het reactie timercircuit Figuur 4 Het volledige schema van het reactie timercircuit Hoofdstuk 3 Reactie timercircuit - 4 -

69 3.4 Het timercircuit in VHDL. Indien de klok een frequentie heeft van 25 MHz moet deze nog gedeeld worden naar bv. 10Hz. Om het geheel te programmeren gebruiken we de entity REACTION en twee componenten: - SEG7 - BCDCOUNT Entity REACTION Figuur 5 Blokschema van REACTION Component SEG7 Figuur 6 Blokschema van SEG7 Component BCDCOUNT Figuur 7 Blokschema van BCDCOUNT Beschrijving entity van component SEG7: Beschrijving entity van componenet BCDCOUNT: Beschrijving van entity REACTION: Hoofdstuk 3 Reactie timercircuit - 5 -

70 Beschrijving van component SEG7: (seg7.vhd) Beschrijving van component BCDCOUNT: (bcdcount.vhd) Hoofdstuk 3 Reactie timercircuit - 6 -

71 In de beschrijving van architecture reaction wordt gebruik gemaakt van signaal q. Dit signaal wordt gebruikt om de frequentie van 25 MHz te delen door om een frequentie te bekomen van 10Hz. Het proces deler_25mhz wordt hier onder beschreven: We kiezen voor actief lage drukknoppen. De beschrijving van de sturing van het reactie timercircuit gebeurt in het proces flipflop. De concretisering van de componenten SEG7 en BCDCOUNT gebeurt in onderstaande beschrijving: Het signaal q zorgt voor een klok van 10Hz en BCDCOUNT telt als signaal LED 1 is. Simulatie van het reactie timer circuit: Figuur 8 Simulatie van het reactie timercircuit Hoofdstuk 3 Reactie timercircuit - 7 -

72 De volledige beschrijving van het reactie timercircuit: (reaction.vhd) Hoofdstuk 3 Reactie timercircuit - 8 -

73 3.5 Realisatie van het timercircuit met behulp van isplever. Men kan het ontwerp uittesten op een ontwikkelbordje van Lattice. We gebruiken een CPLD M4A5-64/32. Figuur 9 geeft onderstaande projectnavigator van isplever weer en laat het ontwerp met de verschillende processen zien. Figuur 9 De verschillende processen van het reactie timercircuit actie reset reactie Figuur 10 Het ontwikkelbordje met een CPLD van Lattice Hoofdstuk 3 Reactie timercircuit - 9 -

EE1410: Digitale Systemen BSc. EE, 1e jaar, 2011-2012, 2e werkcollege

EE1410: Digitale Systemen BSc. EE, 1e jaar, 2011-2012, 2e werkcollege EE4: igitale Systemen BSc. EE, e jaar, 2-22, 2e werkcollege Arjan van Genderen, Stephan Wong, Computer Engineering 5 t/m 22-3-22 elft University of Technology Challenge the future Voor je begint. ownload

Nadere informatie

VHDL overzicht. Digitale Systemen (ET1 410) VHDL? VHDL? Sequentieel vs. Concurrent 2/15/2011

VHDL overzicht. Digitale Systemen (ET1 410) VHDL? VHDL? Sequentieel vs. Concurrent 2/15/2011 VHDL overzicht Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2010 2011 Wat is VHDL? Waarvoor gebruiken we het? Deze college Sequentieel

Nadere informatie

b) Geef het schema van een minimale realisatie met uitsluitend NANDs en inverters voor uitgang D.

b) Geef het schema van een minimale realisatie met uitsluitend NANDs en inverters voor uitgang D. Basisbegrippen Digitale Techniek (213001) 9 november 3000, 13.30 17.00 uur 8 bladzijden met 10 opgaven Aanwijzingen bij het maken van het tentamen: 1. Beantwoord de vragen uitsluitend op de aangegeven

Nadere informatie

Digitale Systeem Engineering 1. Week 1 VHDL basics, datatypes, signal assignment Jesse op den Brouw DIGSE1/2014-2015

Digitale Systeem Engineering 1. Week 1 VHDL basics, datatypes, signal assignment Jesse op den Brouw DIGSE1/2014-2015 Digitale Systeem Engineering 1 Week 1 VHDL basics, datatypes, signal assignment Jesse op den Brouw DIGSE1/2014-2015 Wat is VHDL VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated

Nadere informatie

Digitale Systeem Engineering 1. Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/2013-2014

Digitale Systeem Engineering 1. Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/2013-2014 Digitale Systeem Engineering 1 Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/2013-2014 PWM basics Het regelen van het toerental van een elektromotor kan eenvoudig worden gedaan door

Nadere informatie

Digitale Systeem Engineering 1

Digitale Systeem Engineering 1 Digitale Systeem Engineering 1 Week 1 VHDL basics, datatypes, signal assignment Jesse op den Brouw DIGSE1/2017-2018 Wat is VHDL VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated

Nadere informatie

Project Digitale Systemen

Project Digitale Systemen Project Digitale Systemen Case Study The Double Dabble algorithme Jesse op den Brouw PRODIG/2014-2015 Introductie Double Dabble In de digitale techniek wordt veel met decimale getallen gewerkt, simpelweg

Nadere informatie

Toets Digitale Systemen 01/06/2006, 8.45 10.30 uur

Toets Digitale Systemen 01/06/2006, 8.45 10.30 uur Toets igitale Systemen 0/06/2006, 8.45 0.30 uur e toets is open boek en bestaat uit 0 multiple-choice (MC) vragen en 3 open vragen. e MC-vragen dienen beantwoord te worden op het uitgereikte MC-formulier.

Nadere informatie

Antwoorden zijn afgedrukt!!!!!!!

Antwoorden zijn afgedrukt!!!!!!! Computerorganisatie INF/TEL (233) februari 2, 9. 2.3 uur 8 bladzijden met 9 opgaven 3 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam, studentnummer, naam vak, vakcode,

Nadere informatie

Studentnummer:... Opleiding:...

Studentnummer:... Opleiding:... Computerorganisatie INF/TEL (233) februari 2, 9. 2.3 uur 8 bladzijden met 9 opgaven 3 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam, studentnummer, naam vak, vakcode,

Nadere informatie

Digitale Systemen (EE1 410)

Digitale Systemen (EE1 410) Digitale Systemen (EE1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 26-4-2011 ET1 410 (Stephan Wong) Pagina 1 Samenvatting 1 ste college Wat is VHDL? Waarvoor

Nadere informatie

Hoofdstuk 4. Digitale techniek

Hoofdstuk 4. Digitale techniek Hoofdstuk 4 Digitale techniek 1 A C & =1 F Figuur 4.1: Combinatorische schakeling. A C & & F A = & F C Figuur 4.2: Drie-input AND. A C _ >1 & F Figuur 4.3: Don t care voorbeeld A? F Figuur 4.4: Onbekende

Nadere informatie

REGISTERS. parallel in - parallel uit bufferregister. De klok bepaalt het moment waarop de data geladen worden. Mogelijke bijkomende ingangen:

REGISTERS. parallel in - parallel uit bufferregister. De klok bepaalt het moment waarop de data geladen worden. Mogelijke bijkomende ingangen: EGITE Een groep van flipflops om data te stockeren bufferregisters: om gegevens tijdelijk op te slaan schuifregisters: de inhoud verschuift doorheen de flipflops ynchrone schakeling Kan opgebouwd worden

Nadere informatie

Sequentiële schakelingen

Sequentiële schakelingen Gebaseerd op geheugen elementen Worden opgedeeld in synchrone systemen» scheiding tussen wat er wordt opgeslagen (data) wanneer het wordt opgeslagen (klok) asynchrone systemen» Puls om geheugen op te zetten

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26 Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen.

Nadere informatie

Eindtentamen Digitale Systemen 07/07/2006, uur

Eindtentamen Digitale Systemen 07/07/2006, uur Eindtentamen Digitale Systemen 07/07/2006, 9.00 2.00 uur Het tentamen is open boek en bestaat uit 8 multiple choice (MC) vragen en 2 open vragen. De MC-vragen dienen beantwoord te worden op het uitgereikte

Nadere informatie

OPDRACHTEN PRACTICUM DIGSE1. J.E.J op den Brouw De Haagse Hogeschool Opleiding Elektrotechniek 19 maart 2016 J.E.J.opdenBrouw@hhs.

OPDRACHTEN PRACTICUM DIGSE1. J.E.J op den Brouw De Haagse Hogeschool Opleiding Elektrotechniek 19 maart 2016 J.E.J.opdenBrouw@hhs. OPDRACHTEN PRACTICUM DIGSE1 J.E.J op den Brouw De Haagse Hogeschool Opleiding Elektrotechniek 19 maart 2016 J.E.J.opdenBrouw@hhs.nl Inleiding Het practicum is zodanig van opzet en moeilijkheidsgraad dat

Nadere informatie

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 2

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 2 EE4: Digitale Systemen BSc. EE, e jaar, 22-23, vragencollege 2 Arjan van Genderen, Stephan Wong, Computer Engineering 7-6-23 Delft University of Technology Challenge the future Vragencollege Tentamen dinsdag

Nadere informatie

Digitale Systemen (ET1 410)

Digitale Systemen (ET1 410) Digitale Systemen (ET1 410) Arjan van Genderen Stephan Wong Faculteit EWI Technische Universiteit Delft Cursus 2011 28-4-2011 EE1 410 (Stephan Wong) Pagina 1 Verschil simulatie en synthese Simulatie: functioneel

Nadere informatie

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 8e hoorcollege

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 8e hoorcollege EE4: Digitale Systemen BSc. EE, e jaar, 22-23, 8e hoorcollege rjan van Genderen, Stephan Wong, Computer Engineering 3-5-23 Delft University of Technology Challenge the future Hoorcollege 8 Combinatorische

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 5: Timers/counters & Interrupts Timers/counters Hardware timers/counters worden in microcontrollers gebruikt om onafhankelijk van de CPU te tellen. Hierdoor kunnen andere

Nadere informatie

Toets Digitale Systemen 31/05/2007, uur

Toets Digitale Systemen 31/05/2007, uur Toets Digitale Systemen 3/5/27, 8.3.3 uur De toets is open boek en bestaat uit multiple-choice (MC) vragen en 3 open vragen. De MC-vragen dienen beantwoord te worden op het uitgereikte MC-formulier. Enkele

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 3: Eenvoudige externe hardware & hardware programmeren in C Hardware programmeren in C Inmiddels ben je al aardig op gang gekomen met het programmeren van microcontrollers.

Nadere informatie

Eindtentamen Digitale Systemen 18/06/2007, uur

Eindtentamen Digitale Systemen 18/06/2007, uur Eindtentamen Digitale Systemen 8/6/27, 9. 2. uur De tentamen is open boek en bestaat uit 8 multiple choice (MC) vragen en 2 open vragen. De MC-vragen dienen beantwoord te worden op het uitgereikte MC-formulier.

Nadere informatie

Dobbelsteen 6 Tabellendemo: alle opgedane ervaringen gebundeld

Dobbelsteen 6 Tabellendemo: alle opgedane ervaringen gebundeld Dobbelsteen 6 Tabellendemo: alle opgedane ervaringen gebundeld Johan Smilde Zo nu en dan moet je even een pas op de plaats maken: hoever zijn we inmiddels gekomen en wat hebben we ervan geleerd? Bij dit

Nadere informatie

Basisconcept VHDL. Digitaal Ontwerpen Tweede studiejaar. Wim Dolman. Engineering, leerroute Elektrotechniek Faculteit Techniek

Basisconcept VHDL. Digitaal Ontwerpen Tweede studiejaar. Wim Dolman. Engineering, leerroute Elektrotechniek Faculteit Techniek Basisconcept VHDL Tweede studiejaar Wim Dolman Engineering, leerroute Elektrotechniek Faculteit Techniek 1 Deze presentatie toont de stappen voor het ontwerpen van een digitale combinatorische schakeling

Nadere informatie

Digitale Systeem Engineering 1

Digitale Systeem Engineering 1 Digitale Systeem Engineering 1 Week 2 Delay, Sequential VHDL, hiërarchie, generics Jesse op den Brouw DIGSE1/2017-2018 VHDL delay models Het beschrijven van vertragingen en minimale pulsbreedte wordt gedaan

Nadere informatie

Sequentiële Logica. Processoren 24 november 2014

Sequentiële Logica. Processoren 24 november 2014 Sequentiële Logica Processoren 24 november 2014 Inhoud Eindige automaten Schakelingen met geheugen Realisatie van eindige automaten Registers, schuifregisters, tellers, etc. Geheugen Herinnering van week

Nadere informatie

RCL Arduino Workshop 1

RCL Arduino Workshop 1 RCL Arduino Workshop 1 Leren door doen april 2015 - slides voor RCL Arduino workshop 1 ON4CDU & ON8VQ Workshop Leren door doen Werken in een groep Beperkte tijd Alleen essentiele vragen stellen Thuis oefenen

Nadere informatie

Combinatorisch tegenover sequentieel

Combinatorisch tegenover sequentieel PBa ELO/ICT Combinatorisch tegenover sequentieel soorten digitale schakelingen : combinatorisch of sequentieel combinatorische schakelingen combinatie van (al dan niet verschillende) (basis)poorten toestand

Nadere informatie

Combinatorische schakelingen

Combinatorische schakelingen Practicum 1: Combinatorische schakelingen Groep A.6: Lennert Acke Pieter Schuddinck Kristof Vandoorne Steven Werbrouck Inhoudstabel 1. Doelstellingen... 2 2. Voorbereiding... 3 3. Hardware-practicum...

Nadere informatie

Getalformaten, timers en tellers

Getalformaten, timers en tellers Getalformaten, timers en tellers S_CU CU S PV R CV DEZ CV_BCD S_ODT S TV BI R BCD 1 pagina 1 Getalformaten (16 bits) PG CPU BCD W#16#296 Voorteken (+) 2 9 6 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 Positieve getallen

Nadere informatie

Fig. 6.1 voorstelling van de werking van een schuifregister

Fig. 6.1 voorstelling van de werking van een schuifregister 6 Registers In digitale systemen moeten we dikwijls gedurende een zekere tijd een bepaalde binaire informatie of codewoord kunnen opslaan en onthouden. Zo een digitale schakeling noemen we een "REGISTER".

Nadere informatie

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie www.arduino.cc Arduino en DDS DDS chips DDS = Direct Digital (frequency) Synthesis Output = sinusvormig signaal Maximum frequentie = ½ klokfrequentie Frequentie bepaald door tuning word Grootste fabrikant:

Nadere informatie

Eindtentamen Digitale Systemen (ET1405) 18 juni 2008, uur

Eindtentamen Digitale Systemen (ET1405) 18 juni 2008, uur Eindtentamen Digitale Systemen (ET405) 8 juni 2008, 9.00 2.00 uur De tentamen is open boek en bestaat uit 8 multiple choice (MC) vragen en 4 open vragen. De MC-vragen dienen beantwoord te worden op het

Nadere informatie

Hoofdstuk 7. Computerarchitectuur

Hoofdstuk 7. Computerarchitectuur Hoofdstuk 7 Computerarchitectuur 1 controlebus CPU MEMORY I/O databus adresbus Figuur 71 Schematische opbouw van een computersysteem 8 Figuur 72 Een busverbinding Buslijn Out E A In Out E B In Out E C

Nadere informatie

Stoeien met de tabellen (deel 4) Met multiplexers dobbelsteen 5 bouwen: tabel naar keus

Stoeien met de tabellen (deel 4) Met multiplexers dobbelsteen 5 bouwen: tabel naar keus Stoeien met de tabellen (deel 4) Met multiplexers dobbelsteen 5 bouwen: tabel naar keus Johan Smilde Het is niet echt moeilijk om met CMOS-multiplexers van het type 4519, die zijn toegepast bij de dynamische

Nadere informatie

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Computersysteem Een systeem dat rekenkundige operaties, data manipulaties en beslissingen kan uitvoeren, aan de hand

Nadere informatie

Digitale Systeem Engineering 2

Digitale Systeem Engineering 2 Digitale Systeem Engineering 2 Week 2 Toestandsmachines (vervolg) Jesse op den Brouw DIGSE2/2016-2017 Herkenningsautomaat Een typische sequentiële machine is een herkenningsautomaat of patroonherkenner.

Nadere informatie

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek Vakcode 5A050, 19 januari 2005, 14:00u-17:00u achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen is het gebruik

Nadere informatie

2 Elementaire bewerkingen

2 Elementaire bewerkingen Hoofdstuk 2 Elementaire bewerkingen 17 2 Elementaire bewerkingen In dit hoofdstuk leer je hoe werken met binaire getallen en hexadecimale getallen omgezet wordt naar een decimaal getal en omgekeerd. Vervolgens

Nadere informatie

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek Vakcode 5A050, 19 januari 2005, 14:00u-17:00u achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen is het gebruik

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Digitale Systeem Engineering 2

Digitale Systeem Engineering 2 Digitale Systeem Engineering 2 Week 2 Toestandsmachines (vervolg) Jesse op den Brouw DIGSE2/214-215 Herkenningsautomaat Een typische sequentiële machine is een herkenningsautomaat of patroonherkenner.

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 6 Timing, SR-latch, gated latches, flipflops, register Jesse op den Brouw INLDIG/2016-2017 Geheugen Tot nu toe zijn alleen combinatorische schakelingen behandeld. Bij deze

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen Jan Genoe KHLim Situering RAM-geheugens Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Statische RAM SRAM

Nadere informatie

No part of this book may be reproduced in any form, by print, photoprint, microfilm or any other means without written permission of the publisher.

No part of this book may be reproduced in any form, by print, photoprint, microfilm or any other means without written permission of the publisher. De Backer, Kris / Kenens, Liesbeth Digitale Systemen / Kris De Backer & Liesbeth Kenens; Geel: Campinia Media vzw, 2004-2de druk sept. 2005; 216 p;index; 25,5 cm; gelijmd. ISBN: 90.356.1184.5; NUGI 854;

Nadere informatie

Alles op de kop. Dobbelsteen D02i werkt precies andersom! Johan Smilde

Alles op de kop. Dobbelsteen D02i werkt precies andersom! Johan Smilde Alles op de kop Johan Smilde Dobbelsteen D02i werkt precies andersom! Deze dobbelsteen heeft omgekeerde uitgangen ten opzichte van de vorige. Dat wil zeggen dat de uitgangen hier niet actief hoog zijn

Nadere informatie

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly

Nadere informatie

Arduino Workshop 1 Zuid-Limburg

Arduino Workshop 1 Zuid-Limburg Arduino Workshop 1 Zuid-Limburg Leren door doen Mei 2016 - slides voor Arduino workshop 1 v2.5 Zuid-Limburg PA3CZS, PA0FOT, ON4CDU, PE1EAM 1 Workshop 1 Workshop 1 concentreert op kennismaking en eenvoudige

Nadere informatie

Opgaven. en uitwerkingen bij het boek Digitale Techniek. Jesse op den Brouw

Opgaven. en uitwerkingen bij het boek Digitale Techniek. Jesse op den Brouw Opgaven en uitwerkingen bij het boek Digitale Techniek Jesse op den Brouw 2017 Jesse op den Brouw, Den Haag Versie: 0.99pl8 Datum: 6 mei 2017 Opgaven van Jesse op den Brouw is in licentie gegeven volgens

Nadere informatie

Logische functies. Negatie

Logische functies. Negatie Pa ELO/ICT Logische functies inaire elementen slechts twee mogelijkheden voorbeeld : het regent slechts twee toestanden : waar of niet waar Voorstellen met LETTERSYMOOL = het regent overeenkomst :» als

Nadere informatie

Werkbladen voor Arduino workshop 1

Werkbladen voor Arduino workshop 1 De aansluitingen van de Arduino Uno Werkbladen voor Arduino workshop 1 Arduino Arduino is een open-source ontwikkelbord, waarmee het eenvoudig is om informatica aan fysieke objecten te koppelen. Je kunt

Nadere informatie

Meetopdrachten Poortschakelingen 1 met Multisim

Meetopdrachten Poortschakelingen 1 met Multisim Meetopdrachten Poortschakelingen 1 met Multisim In dit document leest u hoe u de meetopdrachten bij de les Poortschakelingen-1 (lescode 5-30.3) kunt uitvoeren met de simulatiesoftware van Multisim. Dit

Nadere informatie

Hfdst. 2: COMBINATORISCH PROGRAMMEREN

Hfdst. 2: COMBINATORISCH PROGRAMMEREN 2.1. Basisinstructies: 2.1.1. Ja-functie: Indien je een normaal open schakelaar bedient, moet de lamp oplichten. Waarheidstabel: Booleaanse schrijfwijze: Q0.0 = I0.0 2.1.2. Niet-functie: Waarheidstabel:

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files 1 Introductie In deze oefening zal je je LCD display leren aansturen. Je controleert deze display door er instructies naar te

Nadere informatie

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 26 november 2003, 14:00u-17:00u

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 26 november 2003, 14:00u-17:00u Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek Vakcodes 5A010/5A050, 26 november 2003, 14:00u-17:00u achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen

Nadere informatie

Fysische Informatica met FLEC

Fysische Informatica met FLEC Fysische Informatica met FLEC Inleiding De werking van de schakelingen die je gemaakt hebt bij het onderwerp fysische informatica kunnen op 2 manieren gecontroleerd worden. De eerste manier is met behulp

Nadere informatie

Wat is Arduino? Arduino = microprocessor (Atmel)

Wat is Arduino? Arduino = microprocessor (Atmel) Intro tot Arduino Wat is Arduino? Volgens de website: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers,

Nadere informatie

Tentamen Digitale Systemen (EE1410) 6 juli 2012, uur

Tentamen Digitale Systemen (EE1410) 6 juli 2012, uur Tentamen igitale Systemen (EE4) 6 juli 22, 9. 2. uur it tentamen is een open boek tentamen en bestaat uit 8 multiple choice (M) vragen (63%) en 5 open vragen (37%). e M-vragen dienen beantwoord te worden

Nadere informatie

Logische Schakelingen

Logische Schakelingen Logische Schakelingen Reader Elektro 2.2 Erik Dahmen Techniek en Gebouwde Omgeving Logische Schakelingen Inhoudsopgave: Definitie Logische Schakelingen EN / NEN functie OF / NOF functie NIET-functie De

Nadere informatie

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen is het gebruik van rekenmachine of computer niet toegestaan. Vul je antwoorden in op dit formulier. Je dient dit formulier

Nadere informatie

Digitale Systeem Engineering 2

Digitale Systeem Engineering 2 Digitale Systeem Engineering 2 Week 4 Datapadsystemen Jesse op den Brouw DIGSE2/2016-2017 Complexe systemen In principe kan elk sequentiëel systeem beschreven worden met een toestandsdiagram. In de praktijk

Nadere informatie

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte Voor deze oefeningenles heb je de handleiding van de uitgedeelde ARM processor nodig. Je kan deze vinden op de website van het

Nadere informatie

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u achternaam : voorletters : identiteitsnummer : opleiding : Tijdens dit tentamen

Nadere informatie

Slimme schakelingen (2)

Slimme schakelingen (2) Slimme schakelingen (2) Technische informatica in de zorg Thijs Harleman Modulecode: TMGZ-AMAL23 23 februari 2015 1 Overzicht college Doel van dit college: Verdiepen van kennis en inzicht van het ontwerpen

Nadere informatie

Logische bit-instructies

Logische bit-instructies Logische bit-instructies I. I. (MCRA) I. (MCR

Nadere informatie

Hoe werkt een computer precies?

Hoe werkt een computer precies? Hoe werkt een computer precies? Met steun van stichting Edict Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Overview Introductie SIM-PL Simulatietool voor werking computer

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Digitale technieken Combinatorische en sequentiële logica

Digitale technieken Combinatorische en sequentiële logica Digitale technieken Combinatorische en sequentiële logica ir. Patrick Colleman 1 Inleiding. 1 0.1 Systemen. 1 0.2 Voordelen van digitale systemen 4 0.3 Nadelen van digitale systemen 6 Hoofdstuk 1 : Logische

Nadere informatie

Inhoudsopgave. Pag. Tot slot 33 Onderdelen voor aanvulling 34

Inhoudsopgave. Pag. Tot slot 33 Onderdelen voor aanvulling 34 Logic 1-3- Colofon Auteur: Eindredactie: Thijs A. Afman Joost van den Brink Dit is een uitgave van Brink Techniek 2005. Deze uitgave mag vrij worden gekopieerd binnen educatieve instellingen. Deze uitgave

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Antwoorden vragen en opgaven Basismodule

Antwoorden vragen en opgaven Basismodule Antwoorden vragen en opgaven Basismodule Antwoorden van vragen en opgaven van hoofdstuk 1 1. Is elke combinatorische schakeling een digitale schakeling? Zo nee, waarom niet? Antwoord: Elke combinatorische

Nadere informatie

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave):

Scan-pad technieken. Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave): Zet elk register om in een scan-pad register (twee opeenvolgende D-latches: master-slave): D is de normale data ingang C is de normale fase 1 klok I is de data ingang van het shift-regiester A is de klok

Nadere informatie

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Burg.Geyskensstraat 11 3580 BERINGEN De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Versie: vrijdag 2 november 2007 2 Toegepaste informatica 1 De Microprocessor Zowel

Nadere informatie

7,6. Samenvatting door A woorden 12 april keer beoordeeld. Natuurkunde. Natuurkunde Systemen. Systemen

7,6. Samenvatting door A woorden 12 april keer beoordeeld. Natuurkunde. Natuurkunde Systemen. Systemen Samenvatting door A. 1243 woorden 12 april 2013 7,6 12 keer beoordeeld Vak Natuurkunde Natuurkunde Systemen Systemen We onderscheiden 3 soorten gegevensverwerkende systemen: meetsysteem: meet een grootheid

Nadere informatie

Fig. 2. Fig. 1 5 4,5 4 3,5 3 2,5 2 1,5 U (V) 0,5. -20 0 20 40 60 80 100 temperatuur ( C)

Fig. 2. Fig. 1 5 4,5 4 3,5 3 2,5 2 1,5 U (V) 0,5. -20 0 20 40 60 80 100 temperatuur ( C) Deze opgaven en uitwerkingen vind je op https://www.itslearning.com en op www.agtijmensen.nl Wat je moet weten en kunnen gebruiken: Zie het boekje Systeembord.. Eigenschappen van de invoer-elementen (sensor,

Nadere informatie

Inleiding Digitale Techniek. Week 7 Schuifregisters Jesse op den Brouw INLDIG/2013-2014

Inleiding Digitale Techniek. Week 7 Schuifregisters Jesse op den Brouw INLDIG/2013-2014 Inleiding Digitale Techniek Week 7 Schuifregisters Jesse op den Brouw INLDIG/213-214 Schuifregisters In de digitale techniek en met name in de digitale communicatie wordt veel gebruik gemaakt van seriële

Nadere informatie

In- en uitgangssignalen van microprocessoren

In- en uitgangssignalen van microprocessoren In- en uitgangssignalen van microprocessoren E. Gernaat 1 Overzicht signalen Informatie van en naar een microprocessor kan parallel of seriëel gebeuren. Bij parallel-overdracht zal elke lijn (draad) een

Nadere informatie

Digitaal Ontwerp Mogelijke Examenvragen

Digitaal Ontwerp Mogelijke Examenvragen Digitaal Ontwerp: Mogelijke Examenvragen.X) G-complement-methode Negatief getal voorgesteld door g-complement van positieve getal met dezelfde modulus. Uit eigenschap: Som van een negatief getal en positief

Nadere informatie

Digitale technieken Deeltoets II

Digitale technieken Deeltoets II Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Opleiding: ESE, HAN Opl.variant: vt Groep/Klas: ES2 Digitaal Signaal Ontwerpen 26 januari 2012 Tijd: 13:30 15:00

Opleiding: ESE, HAN Opl.variant: vt Groep/Klas: ES2 Digitaal Signaal Ontwerpen 26 januari 2012 Tijd: 13:30 15:00 Tentamen Engineering 2011/2012: Opleiding: ESE, HN Opl.variant: vt Groep/Klas: ES2 Digitaal Signaal Ontwerpen 26 januari 2012 Tijd: 13:30 15:00 Vakcode: DSO deel 2 Lokaal: Docent: RZ antal tentamenbladen:

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 1 Introductie Jesse op den Brouw INLDIG/2015-2016 Even voorstellen... ing. J.E.J. (Jesse) op den Brouw Elektrotechniek Digitale Techniek Software, hardware Embedded systems

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 2 Binaire getallen, BCD, Gray, ASCII, 7-segment Jesse op den Brouw INLDIG/205-206 Decimaal talstelsel Ons talstelsel is een zogenaamd positioneel talstelsel. Een getal

Nadere informatie

Labo digitale technieken

Labo digitale technieken .. Het gebied "elektronica" is reeds geruime tijd onderverdeeld in twee specialiteiten, namelijk de analoge en de digitale technieken. Binnen analoge schakelingen gebeurt de signaalverwerking met lineaire

Nadere informatie

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische

Nadere informatie

Toestandentabel van een SR-FF. S R Qn Qn+1 0 0 0 onbep. 0 0 1 onbep. 0 1 0 1 SET 0 1 1 1 SET 1 0 0 0 RESET 1 0 1 0 RESET 1 1 0 0 1 1 1 1

Toestandentabel van een SR-FF. S R Qn Qn+1 0 0 0 onbep. 0 0 1 onbep. 0 1 0 1 SET 0 1 1 1 SET 1 0 0 0 RESET 1 0 1 0 RESET 1 1 0 0 1 1 1 1 (een algemeen overzicht ) Inleiding Bij combinatorische schakelingen zijn de uitgangen enkel afhankelijk van de ingangen. Bij sequentiële schakelingen zijn de uitgangen voorzien van een geheugensysteem

Nadere informatie

Multiplexers en demultiplexers MULTIPLEXERS

Multiplexers en demultiplexers MULTIPLEXERS Pa EO/ICT Kim - dep. IWT Multiplexers en demultiplexers MU transmissie DEMU merikaans symbool multiplexer merikaans symbool demultiplexer ingangen uitgang ingang uitgangen controle controle MU/DEMU DIGITE

Nadere informatie

Hardware High Speed Counters (HSC) dienen aangesloten te worden op de general-purpose inputs X0 t/m X7.

Hardware High Speed Counters (HSC) dienen aangesloten te worden op de general-purpose inputs X0 t/m X7. Datum : 27 november 2009 Aangemaakt door : Matthias FAQ 5 : Gebruik van High Speed Counters van de compact PLC (FX3u) Hardware High Speed Counters (HSC) dienen aangesloten te worden op de general-purpose

Nadere informatie

Informatica 2. Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen

Informatica 2. Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen Informatica 2 Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen 1 Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2014 Remie Woudt remie.woudt@gmail.com

Nadere informatie

Tellers en Delers Sequentiële schakeling die het aantal ingangspulsen telt Gebaseerd op geheugenelementen (flipflops)

Tellers en Delers Sequentiële schakeling die het aantal ingangspulsen telt Gebaseerd op geheugenelementen (flipflops) PBa ELO/ICT Tellers en Delers Sequentiële schakeling die het aantal ingangspulsen telt Gebaseerd op geheugenelementen (flipflops) bewaren het aantal getelde pulsen (d.i. de stand van de teller) Opdeling:

Nadere informatie

Ontwerpmethoden. Doelstelling

Ontwerpmethoden. Doelstelling 6 Ontwerpmethoden Doelstelling Onderwerpen In dit hoofdstuk maak je kennis met een aantal ontwerpmethodieken en leer je werken met behulp van de methode met een gescheiden dataverwerking en besturing.

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (3)

De Arduino-microcontroller in de motorvoertuigentechniek (3) De Arduino-microcontroller in de motorvoertuigentechniek (3) E. Gernaat (ISBN 978-90-79302-11-6) 1 In- en uitgangssignalen van microprocessoren 1.1 Overzicht signalen Informatie van en naar een microprocessor

Nadere informatie

Lab6: Implementatie video timing generator

Lab6: Implementatie video timing generator Het Micro-elektronica Trainings- Centrum Het MTC is een initiatief binnen de INVOMEC divisie. Industrialisatie & Vorming in Micro-elektronica Inleiding In de vorige modules werd een systeem opgebouwd en

Nadere informatie

Hfdst. 2: COMBINATORISCHE LOGICA

Hfdst. 2: COMBINATORISCHE LOGICA Hfdst. 2: COMBINATOISCHE LOGICA DEEL 2: Prioriteitsregels: 2.3.1. Het begrip stack : Duid een groep geheugenplaatsen aan die door de CPU wordt gebruikt om het programma te verwerken. Bij het gebruik van

Nadere informatie

Jan Genoe KHLim. Reken schakelingen. Jan Genoe KHLim

Jan Genoe KHLim. Reken schakelingen. Jan Genoe KHLim Jan Genoe KHLim Meestal aangewend in digitale computers optellers optellers-aftrekkers Vermenigvuldigers ingebed in een grotere rekeneenheid ALU (Arithmetic and logical unit) 2 Talstelsels definitie Tiendelig

Nadere informatie