LABORATION TSEA22 DIGITALTEKNIK D TSEA51 DIGITALTEKNIK Y. Konstruktion av sekvenskretsar med CPLD. Version: 2.2

Relevanta dokument
Laboration i digitalteknik Speciella sekvenskretsar

Konstruktionsmetodik för sekvenskretsar

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

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

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

LABORATION TSEA22 DIGITALTEKNIK D

Simulering med ModelSim En kort introduktion

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

LABORATIONER I DIGITALTEKNIK. för kurserna. TSEA22, lab 1-4 TSEA51, lab 1-3 TDDC75, lab 1,2

Programmerbara kretsar och VHDL 1. Föreläsning 9 Digitalteknik, TSEA22 Oscar Gustafsson, Mattias Krysander Institutionen för systemteknik

Programmerbara kretsar och VHDL. Föreläsning 10 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik

Konstruktion av digitala system - VHDL

DIGITALTEKNIK. Laboration D172

VHDL 1. Programmerbara kretsar

Laboration i digitalteknik Introduktion till digitalteknik

Digitala projekt Elektro- och informationsteknik

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

Flödesschema som visar hur man använder Quartus II.

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

Digital elektronik CL0090

Exempel på LAX-uppgifter

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

VHDL och laborationer i digitalteknik

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

LABORATION TSEA22 DIGITALTEKNIK D

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

std_logic & std_logic_vector

LABORATIONER I DIGITALTEKNIK. Laboration 3 Speciella sekvenskretsar

KALKYLATOR LABORATION4. Laborationens syfte

Laboration i digitalteknik

DESIGN AV SEKVENTIELL LOGIK

LABORATIONSINSTRUKTION LABORATION

Angående buffer. clk clear >=1 =9?

D2 och E3. EDA321 Digitalteknik-syntes. Fredag den 13 januari 2012, fm i M-salarna

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

Simulering med ModelSim En kort introduktion

Sekvensnät i VHDL del 2

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

Uppgift 12: Konstruera en elektronisk tärning. Resultatet av ett tärningskast ska visas på en 7- segmentindikator.

IE1205 Digital Design: F11: Programmerbar Logik, VHDL för Sekvensnät

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Digitalteknik: CoolRunner-II CPLD Starter Kit

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

LABORATIONSINSTRUKTION

Design av mindre digitala system. Föreläsning Digitalteknik, TSEA52 Mattias Krysander Institutionen för systemteknik

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

Datorkonstruktion. Datorkonstruktion 2018, 8hp

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

Sekvensnät. William Sandqvist

Kombinationskretsar. Föreläsning 4 Digitalteknik Mattias Krysander Institutionen för systemteknik

L15 Introduktion modern digital design

-c wc. Pre- Next state Out- Vi ser att tillstånden är redan sorterade i grupper med olika utsignaler,

INTRODUKTION TILL VIVADO

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Digital elektronik CL0090

Introduktion till syntesverktyget Altera Max+PlusII

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

VHDL2. Sekvensnätsexemplet

Strukturell VHDL. Grundläggande kunskaper om. och TESTBÄDD. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Lars Wållberg ver 1.

Tentamen i Digitalteknik TSEA22

Tentamen i Digitalteknik, TSEA22

VHDL2. Sekvensnätsexemplet

LABORATIONSINSTRUKTION LABORATION. Räknare och skiftregister med sekvensiell VHDL. LAB NR Ver KURS. Digitalteknik INNEHÅLL. 1.

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

Översikt, kursinnehåll

LEJON LABORATION3. Laborationens syfte

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

Digitalteknik, fortsättningskurs Föreläsning VHDL Very High Speed Integrated Circuit Hardware Description Language

TSEA22 Digitalteknik 2019!

VHDL3. Angående buffer

Försättsblad till skriftlig tentamen vid Linköpings universitet

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

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

Tentamen IE Digital Design Måndag 23/

Tentamen i IE1204/5 Digital Design Torsdag 29/

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

Tentamen i Grundläggande ellära och digitalteknik ETA 013 för D

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

IE1204/IE1205 Digital Design

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

Programmerbar logik och VHDL. Föreläsning 1

VHDL testbänk. Mall-programmets funktion. Låset öppnas när tangenten 1 trycks ned och sedan släpps. William Sandqvist

Laboration D181. ELEKTRONIK Digitalteknik. Kombinatoriska kretsar, HCMOS v 2.1

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

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

Tentamen i Digitalteknik, EITF65

Tentamen med lösningar IE Digital Design Måndag 23/

(2B1560, 6B2911) HT08

Omtentamen IE Digital Design Måndag 14/

KOMBINATORISKA FUNKTIONER...1

IE1204/5 Digital Design typtenta

PROGRAMMERING AV MCU LABORATION6. Laborationens syfte

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Exempel på tentamensfrågor Digitalteknik

F5 Introduktion till digitalteknik

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

Digitala system EDI610 Elektro- och informationsteknik

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Transkript:

2016 LABORATION TSEA22 DIGITALTEKNIK D TSEA51 DIGITALTEKNIK Y Konstruktion av sekvenskretsar med CPLD Version: 2.2 2014 (OVA, MK) 2015 (OVA, MK) 2016 (OVA, MK) Olov Andersson 1(11)

1. Inledning Syftet med laborationen är dels att öva på konstruktion av sekvenskretsar, och dels att ge en inblick i moderna konstruktionshjälpmedel för digital konstruktion. Efter genomförd laboration ska ni kunna konstruera sekvenskretsar, dels med enbart kretsar ur 74- serien, och dels med programmerbar logik. Ni ska även förstå grunderna i det hårdvarubeskrivande språket VHDL. Laborationsutrustningen kommer att kompletteras med en modul som innehåller en CPLD (Complex Programmable Logic Device) av typen XC9536 tillverkad av Xilinx. Denna CPLD innehåller grindar & vippor motsvarande ungefär 2 vanliga labplattor i den här kursen. I detta lab-pm hittar ni bland annat följande avsnitt: - Laborationsuppgifter - En kort VHDL-introduktion som består av några kodexempel. Detta utgör ett komplement till avsnitt 1.4 i läroboken. - En handhavandebeskrivning av syntesverktygen från Xilinx Laborationsuppgifterna 8-10 är obligatoriska medans uppgift 11 är en extrauppgift. Olov Andersson 2

2. Laborationsuppgifter Uppgift 8: Ett kombinationslås ska konstrueras som en synkron sekvenskrets enligt Moore. Låset har två osynkroniserade insignaler och en utsignal. Insignalerna hämtas från de två studsfria skjutomkopplarna (det övre läget ger logiskt ett och det nedre logiskt noll) och utsignalen avläses på en lysdiod. Logiskt kopplingsschema: Låset öppnas om skjutomkopplarna manövreras i sekvens enligt 1-3 1) Båda i nedre läget 2) Vänster i nedre läget, höger i övre läget 3) Vänster i övre läget, höger i övre läget vilket markeras av att lysdioden tänds. Låset ska förbli öppet ända tills båda omkopplarna förs till nedre läget, varefter nya öppningsförsök ska kunna göras. Vid felaktiga manövreringar ska nya öppningsförsök kunna göras först sedan båda omkopplarna förts till nedre läget. Konstruera sekvensnätet. Använd D-vippor, NAND-grindar och inverterare. Insignalerna måste synkroniseras. Beroende på vald kodning kan det eventuellt uppstå ett behov av 4- ingångars NAND. En sådan kapsel, 74LS20, finns att låna i labsalen. Kontrollera först funktionen genom manuell klockning från en studsfri tryckomkopplare. Anslut därefter kristalloscillatorn (på spänningsskenan) inställd på 8 MHz. För att kunna se hur nätet beter sig ska tillståndvariablerna anslutas till var sin lysdiod, alt logikprob. Olov Andersson 3

Uppgift 9: Konstruera sekvenskretsen i uppgift 8 med hjälp av PROM och D-vippor. Ange minnesinnehållet. Notera att lösningen även nu ska vara enligt Moore. När uppgiften är redovisad och godkänd ska PROM:en nollställas genom att i PROGmode samtidigt trycka på de tre röda knapparna. Logiskt kopplingsschema och minnesinnehåll i PROM:en: Olov Andersson 4

Uppgift 10a: Konstruera sekvensnätet i uppgift 8 med hjälp av VHDL och en CPLD. Till er hjälp har ni exempel 1 och 2 i VHDL-introduktionen i avsnitt 3. Använd de uträknade booleska uttrycken från uppgift 8. I rapportfilen Fitter Report, hittar ni bland annat en Pin List som ni behöver för att kunna koppla rätt. Syntesverktyget har valt lämpliga pinnar åt er och detta kan ändras mellan olika syntetiseringar så var uppmärksam på hur ni ska koppla. Logiskt kopplingsschema: Uppgift 10b: Under Fitter Report hittar ni även en flik Equations, där ni ser vilka ekvationer som syntesverktyget har producerat. Jämför det med det som ni erhöll i uppgift 8. Resultat:.. Uppgift 10c: Lös nu samma uppgift som i 10a, men i stället för booleska uttryck ska ni använda er tabell över PROM:et från uppgift 9. Till er hjälp har ni exempel 3 i VHDLintroduktionen i avsnitt 3. Gå in i syntesverktyget och jämför de ekvationer som syntesverktyget har producerat med det som ni erhöll i uppgift 10b. Verifiera också att utsignalerna är enligt Moore. (Uppgift 10c behöver inte kopplas upp utan är av teoretisk karaktär.) Resultat:.. Slutsats:.. Olov Andersson 5

Uppgift 11: u x 1 x 2 S cp På en enkelriktad järnvägssträcka (tågen rör sig från vänster till höger) vill man ha ett system, i form av en synkron sekvenskrets S, som varnar om två tåg kör för nära varandra. Man har därför i banan placerat två givare på ett inbördes avstånd som är lika med säkerhetsavståndet. Givarna lämnar signalerna x 1 och x 2. Befinner sig ett tåg över givaren är x i = 1, annars är x i = 0. Om någon del av ett tåg befinner sig mellan de två givarna och ett nytt tåg når givare x 1 ska en tidigare släckt (u = 0) stopplampa tändas (u = 1). Det bakre tåget förutsätts då omedelbart tvärnita och stanna. Ett tåg är så långt, kör så sakta och stannar så snabbt att det fortfarande står över givare x 1 när det stannat. Först sedan det främre tåget helt passerat givare x 2 släcks stopplampan (u = 0) och det bakre tåget kan fortsätta sin färd. (Att tända stopplampan så fort någon del av ett tåg befinner sig mellan givarna ger inte korrekt funktion). Använd VHDL och en CPLD. Ersätt givarna med två studsfria skjutomkopplare. Anslut u till en lysdiod. För felsökningsändamål är det lämpligt att också koppla tillståndsvariablerna till lysdioder. Klockgeneratorns frekvens ska kunna varieras mellan 1 Hz - 1 khz. Insignalerna måste synkroniseras. Observera att ett tåg kan vara såväl längre som kortare än avståndet mellan givarna. Fallet att ett tåg är exakt lika långt som avståndet mellan givarna behöver inte beaktas. Logiskt kopplingsschema: Olov Andersson 6

3. Kort VHDL-introduktion Börja med att läsa igenom kapitel 1.4 i läroboken. Exempel-1 nedan utgör en sammanfattning av den VHDL-kod som ni nu bör klara av att förstå, samt skriva själva. Exempel-1: Några enkla booleska funktioner. library ieee; use ieee.std_logic_1164.all; entity K_Net is port(x, y, z : in std_logic; a, b, c, d : out std_logic); end K_Net; architecture equations1 of K_Net is begin a <= not z; -- Inverterare b <= not (x and y); -- NAND-grind c <= ((not x) and y) or ((not y) and x); -- XOR-grind d <= x xor z; -- XOR-grind end equations1; Olov Andersson 7

I exempel-2 introducerar vi två nya saker: 1) Vippor, vilket skapas med hjälp av en process-sats. Med en process-sats kan man göra många olika saker, men vi nöjer oss för enkelhetens skull med att bara skapa vippor. Dessa kommer att bli positivt flanktriggade enligt kodexemplet. 2) Lokala namngivna signaler (q1, q1_plus, q2, q2_plus). Dessa signaler kommer syntesverktyget att trolla bort, men brukar underlätta läsförståelsen, samt gynnar ett strukturellt tänkande. Exempel-2: En Enpulsare. x D q1 D & u clk not q2 library ieee; use ieee.std_logic_1164.all; entity Enpulsare is port(clk, x : in std_logic; u : out std_logic; q1_debug, q2_debug : out std_logic); end Enpulsare; architecture equations2 of Enpulsare is signal q1, q1_plus : std_logic; signal q2, q2_plus : std_logic; begin process(clk) begin if rising_edge(clk) then q1 <= q1_plus; q2 <= q2_plus; end if; end process; -- Skapar en D-vippa -- Skapar en D-vippa q1_plus <= x; q2_plus <= q1; u <= (not q2) and q1; q1_debug <= q1; q2_debug <= q2; end equations2; -- Vippornas tillstånd blir -- synliga utanför CPLD:n Olov Andersson 8

I exempel-3 använder vi samma konstruktion för Multiplexer och PROM, dvs PROM skrivs som om det vore en stor Mutiplexer. Vi introducerar också begreppet Vektor som utgör en samling signaler med samma namn fast med olika index. Exemplet visar också hur enskilda signaler hämtas från vektorn. Exempel-3: Ett PROM med storleken 8x2 bitar Address ROM Data d1 d0 library ieee; use ieee.std_logic_1164.all; entity prom1 is port(address : in std_logic_vector(2 downto 0); d0, d1 : out std_logic); end prom1; architecture equations3 of prom1 is signal data : std_logic_vector(1 downto 0); begin with address select -- Skapar ett PROM data <= "00" when "000", "01" when "001", -- 0 -- 1 "10" when "010", -- 2 "10" when "011", -- 3 "00" when "100", -- 4 "01" when "101", -- 5 "10" when "110", -- 6 "11" when "111", -- 7 "--" when others; -- Dummy d0 <= data(0); d1 <= data(1); end equations3; Olov Andersson 9

4. Programvara Mjukvaran för att programera CPLD:erna består av två delar. I avsnitt 4.1 beskrivs handhavandet av programvaran för att mata in en VHDL-beskrivning och att syntetisera en fil som exakt beskriver hur den aktuella CPLD:n ska programmeras. I avsnitt 4.2 beskrivs handhavandet av den mjukvara som programmerar CPLD:n. En enklare gratisversion finns att ladda ner från Xilinx hemsida, kallad: ISE WebPACK. 4.1. XILINX ISE Project Navigator Är ett verktyg för att syntetisera VHDL till programerbara kretsar så som CPLD och FPGA. Här följer en kortfattad handhavande beskrivning: - Starta ISE Project Navigator (ISE Design Suite 14.5) - Välj File - New - Project. En dialogruta öppnas och du väljer ett filnamn (namn på projektet), en katalog (där du vill spara projektet) samt HDL Top-level Source Type. (Exempelvis kan katalogen döpas till vhdl-lab och projektet till uppgift8.) - Klicka Next och dialogrutan Project Settings öppnas. Välj Family: XC9500 CPLDs, Device: XC9536 eller XC9572 enligt anvisningar om tillåten komponent, Package: PC44 - Klicka Next och därefter Finish. - Välj Project - New - Source. En dialogruta öppnas och du väljer ett filnamn samt VHDL Module. - Klicka Next och dialogrutan New Source Wizard öppnas. Här bestämmer du vilka in- och utsignaler din konstruktion ska ha. (Detta kan i ett senare skede ändras om så behövs.) - Klicka Next och därefter Finish. - I den källkodsfil som nu öppnas ska du skriva in dina ekvationer på samma sätt som exemplen har visat. - När källkodsfilen är klar välj File - Save - Välj Process Implement Top Module för att syntetisera koden. En jed-fil skapas, samt en rapportfil dyker upp på skärmen. I rapportfilen kan ni titta på Pin List, för att se hur ni ska koppla er konstruktion. Om Fitter Report inte dyker upp kan ni öppna den via fönstret Design Summary. - Jed-filen ska flyttas över till en annan katalog för att bli tillgänglig på den dator där kretsen programmeras. För detta ändamål finns det monterat en katalog på din dator som heter B:. Här skapar ni en egen mapp åt er där ni kan placera era jed-filer. Olov Andersson 10

- RTL-viewer, är en funktion där ni kan se hur er konstruktion blev efter syntetiseringen. Välj Tools Schematic Viewer RTL, samt följ vidare instruktioner. Här får ni reda på hur syntesverktyget har tolkat er konstruktion på blocknivå. Välj därefter Tools Schematic Viewer Technology. Då får ni se hur er konstruktion blir implementerad på CPLD:n. På alla in- och ut-gångar finns en extra komponent som kallas buffer. Den har till uppgift att elektriskt skydda CPLD:n samt säkerställa en hög signalkvalité. Det logiska värdet på bufferns in- och ut-signal är lika. 4.2. XILINX ISE impact Är ett verktyg för att programera bland annat CPLD:er. Be gärna en handledare om att vara med första gången. - Kontrollera först att spänningsaggregatet är av. - Sätt därefter i kretsen åt rätt håll, samt slå på spänningsaggregatet. - Starta programmet impact samt svara på frågorna med OK, No, No och Cancel. - Dubbelklicka på Boundary Scan. - Välj Initialize Chain så att verktyget hittar kretsen. - Kilcka på kretsen och välj Assign New Configuration File. Här ska du leta upp din jed-fil. - Kilcka på kretsen igen och välj Program, samt därefter OK. - Slå slutligen av spänningsaggregatet och ta ut kretsen genom att trycka på ramen runt kretsen. Olov Andersson 11