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

Relevanta dokument
DIGITALTEKNIK. Laboration D172

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

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

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

VHDL 1. Programmerbara kretsar

ELEKTRONIK LABORATION D0. Digitalteknik. Kombinatoriska nät, VHDL, PLD. Sekvensnät beskrivna med VHDL och realiserade med PLD

DIGITALTEKNIK. Laboration D164. Logiska funktioner med mikroprocessor Kombinatoriska funktioner med PIC16F84 Sekvensfunktioner med PIC16F84

VHDL och laborationer i digitalteknik

KOMBINATORISKA FUNKTIONER...1

Konstruktionsmetodik för sekvenskretsar

DIGITALTEKNIK. Laboration D161. Kombinatoriska kretsar och nät

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

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

Laboration D151. Kombinatoriska kretsar, HCMOS. Namn: Datum: Epostadr: Kurs:

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

std_logic & std_logic_vector

(2B1560, 6B2911) HT08

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Sekvensnät i VHDL del 2

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

Lösningsföslag till Exempel på tentamensuppgifter i Digitalteknik I

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

DESIGN AV SEKVENTIELL LOGIK

Tentamen i IE1204/5 Digital Design onsdagen den 5/

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

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

Tentamen i Digitalteknik 5p

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

Programmerbar logik och VHDL. Föreläsning 4

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Utvecklingsprogram för att beskriva logiska funktioner med VHDL och realisera dem med PLD

Repetition och sammanfattning av syntes och analys av sekvensnät

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

Tentamen i IE1204/5 Digital Design onsdagen den 5/

DIGITALTEKNIK I. Laboration DE1. Kombinatoriska nät och kretsar

IE1204/IE1205 Digital Design

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

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

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

Konstruktion av digitala system - VHDL

LEJON LABORATION3. Laborationens syfte

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

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

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

F5 Introduktion till digitalteknik

Tentamen i Digitalteknik, TSEA22

Digitala projekt Elektro- och informationsteknik

Simulering med ModelSim En kort introduktion

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

LABORATIONSINSTRUKTION

SEKVENSKRETSAR. Innehåll

PARALLELL OCH SEKVENTIELL DATABEHANDLING. Innehåll

Introduktion till syntesverktyget Altera Max+PlusII

KALKYLATOR LABORATION4. Laborationens syfte

Tentamen i Digital Design

Laborationshandledning

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

Programmerbar logik och VHDL. Föreläsning 1

Tentamen med lösningar för IE1204/5 Digital Design Torsdag 15/

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

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

IE1204/5 Digital Design typtenta

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

IE1204/5 Digital Design typtenta

Sekvensnät. William Sandqvist

Digital elektronik CL0090

L15 Introduktion modern digital design

Omtentamen IE Digital Design Måndag 14/

Tenta i Digitalteknik

Digital- och datorteknik

Digital Design IE1204

Digital Design IE1204

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Tentamen med lösningar i IE1204/5 Digital Design Måndag 27/

Exempel på tentamensfrågor Digitalteknik

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

Tentamen IE Digital Design Måndag 23/

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

F5 Introduktion till digitalteknik

DIGITALTEKNIK. Laboration D173. Grundläggande digital logik

Tentamen i IE Digital Design Fredag 21/

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

Sekvensnät Som Du kommer ihåg

Laboration VHDL introduktion

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

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

Omtentamen med lösningar i IE1204/5 Digital Design Fredag 10/

Tentamen i IE1204/5 Digital Design Torsdag 29/

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

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

Tenta i Digitalteknik

Tenta i Digitalteknik

Digital elektronik CL0090

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Lösningsförslag till tentamen i Digitalteknik, TSEA22

Digitalteknik syntes Arne Linde 2012

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

Tentamen i Digitalteknik, EITF65

Transkript:

UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Håkan Joëlson 2003-09-15 v 2.1 DIGITALTEKNIK Laboration D163 Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD Innehåll Kombinatoriska funktioner Uppgift 1...Introduktion/övning Uppgift 2...Heladderare Uppgift 3...Komparator Uppgift 4...Kodlås Sekvensfunktioner Uppgift 5... Övningsexempel Uppgift 6... Automat Namn... Personnummer... Studieprogram... Epostadress... Datum för visad koppling (signerad)... Datum för inlämning... LAB_D163.DOC

Inriktningen i denna laboration är att få en förståelse för hur mer eller mindre komplicerade digitala kretsar kan förverkligas genom att programmera generella icke funktionsbestämda digitala kretsar (Programmable Logic Devices - PLD). Programmeringsspråket som avses här är VHDL (Very high speed integrated circuit Hardware Definition Language). I laborationen ingår att programmera några olika typer av digitala funktioner. VHDL har en bestämd syntax, d.v.s. det finns fasta regler för hur man skriver VHDL-kod. Det finns en bestämd ordning för hur man ska skriva instruktionerna, så att programvaran man använder kan "förstå" den uppgift/funktion man vill ha utförd. Denna syntax är något man helt enkelt måste lära sig. Som förberedelse för denna laboration, läs om språket VHDL i häftet Grunderna i VHDL och om programvaran WARP i häftet Vägledning till Warp. Konsultera häftena vid behov i det fortsatta arbetet. I botten förutsätts också kännedom om vad vissa grundläggande begrepp inom digitaltekniken står för. Läs häftet Några centrala termer i digitaltekniken. Digitala logiska kretsar och nät delar man in i kombinatoriska kretsar/nät och sekvenskretsar/nät. Laboration D163 Kombinatoriska funktioner i VHDL 2

KOMBINATORISKA FUNKTIONER I VHDL Det som utmärker kombinatoriska kretsar och nät är att en viss utsignal alltid beror enbart av en viss specifik insignal. Uppgift 1 Introduktion/övning Använd en PLD (Programmable Logic Device) för att realisera en EXOR grind. Kommentar 1. Beskriv grinden med VHDL. (Använd kod från något av exemplena nedan om du vill.) 2. Simulera funktionen 3. Programmera en kapsel (PALCE 22V10-PC eller GAL22V10) 4. Koppla upp och testa funktionen. Uppgiften är mycket enkel, men är tänkt att ge grundkunskaper om VHDL och utvecklingsverktyget Warp. Följande exempel på lösning är ett typiskt exempel på VHDL-kod med BOOLEAN EQUATIONS: ENTITY exor IS PORT( a,b :IN bit; ut :OUT bit); ARCHITECTURE beh_exor OF exor IS ut <= ((NOT b) AND a) or (b AND (NOT a)); En annan lösning kunde kort och gott vara ARCHITECTURE beh_exor OF exor IS ut <= a XOR b; Uppgift 2 Heladderare Beskriv med VHDL-kod en enbits heladderare som har insignalerna a0, b0 och Cin samt utsignalerna sum och Cut. Laboration D163 Kombinatoriska funktioner i VHDL 3

Uppgift 3 Komparator Figuren visar en enbits komparator. Beskriv en sådan i VHDL-kod med 2 ingångar, a och b, och tre utgångar som visar resultatet av komparationen enl. diagrammet. (Bara en utgång kan bli aktiv åt gången.) a b a>b a=b a<b Uppgift 4 Kodlås Realisera sista uppgiften i laboration D161 med VHDL och enbart en PLD-kapsel. Bara vissa koder ska godkännas och ska resultera i angivna utsignaler. Alla andra inmatade koder ska generera 00 ut. Redovisa enligt examinationskraven för aktuell kurs, tex såsom specificerats på kursens hemsida. Om inget finns angivet, redovisa skriftligt med förarbete (något slags resonemang om avvägningar och beräkningar som ligger till grund för den lösning man väljer), VHDL-kod, simuleringsresultat, kopplingsschema praktiskt genom att visa upp fungerande koppling för laborationshandledare. Laboration D163 Kombinatoriska funktioner i VHDL 4

SEKVENSFUNKTIONER I VHDL Det som utmärker sekvens kretsar och sekvensnät är att utsignalerna beror både av kretsens/nätets tillstånd och av eventuella insignaler. Sekvensfunktioner är av två huvudtyper: Moore -maskiner - nätets utsignaler beror bara av nuvarande tillstånd Mealy-maskiner - nätets utsignaler beror både av nätets insignaler och av nuvarande tillstånd. Typisk VHDL-beskrivning av MOORE-maskin ENTITY cnt_moore IS PORT( i :IN bit; clk :IN bit; ut :OUT bit_vector(1 DOWNTO 0) ); ARCHITECTURE beh_cnt_moore 0F cnt_moore IS TYPE tillst IS (s0,s1,s2,s3); SIGNAL nuv_tillst, nst_tillst :tillst; P0: PROCESS(nuv_tillst,i) CASE nuv_tillst IS WHEN s0 => IF i='0' THEN nst_tillst <= s1; ELSE nst_tillst <= s3; END CASE; END PROCESS; WHEN s1 => IF i='0' THEN nst_tillst <= s2; ELSE nst_tillst <= s0; WHEN s2 => IF i='0' THEN nst_tillst <= s3; ELSE nst_tillst <= s1; WHEN s3 => IF i='0' THEN nst_tillst <= s0; ELSE nst_tillst <= s2; P1: PROCESS(clk) IF (clk'event AND clk='1') THEN nuv_tillst<=nst_tillst; END PROCESS; Laboration D163 Sekvensfunktioner i VHDL 5

P2: PROCESS(nuv_tillst) CASE nuv_tillst IS WHEN s0 => ut <= "00"; WHEN s1 => ut <= "01"; WHEN s2 => ut <= "10"; WHEN s3 => ut <= "11"; END CASE; END PROCESS; Kommentarer till VHDL-koden I ENTITY anges parametrar för in- och utgångar, vilket MODE ("typ") som gäller för dessa parametrar samt vilka värden de kan anta (bit - dvs värdena 0 och 1), ARCHITECTURE inleds med ett namn, beh_cnt_moore, och därefter den ENTITY, cnt_moore, vars funktion beskrivs. TYPE anger vilka värden en parameter kan anta. (Jämför ENTITY där i stället en MODE anges, IN, OUT e.t.c.) SIGNAL anger vilka interna parametrar som behövs för samverkan mellan processerna (nuv_tillst, nst_tillst) och vilken TYPE som parametrarna har. PROCESS är en viktig VHDL-beskrivning som kan jämföras med procedur, funktion och andra namn på sub-program i olika programmeringsspråk. En PROCESS exekveras bara om parametrar uppräknade i en sensivity list ändrar värden. Saknas sensivity list utförs aldrig programrutinen i PROCESS. P0: process(nuv_tillst,i) I processen med beteckningen P0 används en CASE-sats för att beskriva tillståndsmaskinen. Processen P0 är alltså den programdel som "översätter" tillståndsdiagrammet till VHDL-kod och kallas deklarations del. P1: process(clk) Processen beskriver när en ändring av tillstånd kan ske och kallas synkron del. I exemplet sker tillståndsändringar vid positiv klockpulsflank. P2: process(nuv_tillst) CASE-satsen i denna process används för att ange utsignalvärden vid respektive tillstånd. OBS! Här används en mera generell metod för att beskriva kombinatorisk logik. P2 kallas för kombinatorisk del. Studera koden som beskriver en MEALY-automat i häftet Grunderna i VHDL. I den sista processen kan Du se att utsignalen beror av både insignalen och det tillstånd som maskinen för nävarande befinner sig i. Laboration D163 Sekvensfunktioner i VHDL 6

Uppgift 5 Övningsexempel Starta Galaxy. Skapa ett nytt Projekt under din personliga mapp. Välj New för att börja skriva in en ny VHDL-fil. Skriv in VHDL-koden från typexemplet ovan. Kompilera och Simulera. Programmera en PLD-kapsel. Prova funktionen. Uppgift 6 Automat Realisera sista uppgiften i laboration D162 med VHDL och en PLD-kapsel. 00/00 01 01/10 11/11 10/01 00 00/00 10/01 11/11 11/01 01/00 10 10/11 01/00 11/01 01/10 11 00/10 10/11 00/10 Förutom vad som specificerats i tillståndsdiagrammet ovan, lägg även in en process som skickar aktuellt tillstånd till utgångar - även om specifikationen inte kräver det - så att du lättare kan kontrollera att tillståndsbytena sker på rätt sätt. Redovisa laborationen enl examinationskraven för aktuell kurs, tex såsom specificerats på kursens hemsida. Om inget finns angivet, redovisa skriftligt med förarbete (något slags resonemang om avvägningar och beräkningar som ligger till grund för den lösning man väljer - Obs! skriv inte bara "enl. noteringar i laboration d162" eller nåt annat i den stilen) inkl. kodning av in- och utsignaler, VHDL-kod, simuleringsresultat med ett urval intressanta sekvenser (bl.a. komplett uppräkning och komplett nedräkning), kopplingsschema praktiskt genom att visa upp fungerande koppling för laborationshandledare. Laboration D163 Sekvensfunktioner i VHDL 7