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
Nyckelord (för sökning i databas) Basic Stamp, I/O, LED, 7-segment, LCD, display,
tangentbord, drivrutin, ASCII, givare, Timer, EEPROM
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 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
Digitala logiska kretsar och nät delar man in i kombinatoriska kretsar/nät och sekvenskretsar/nät.
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.
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.
Kommentar
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);
END;
ARCHITECTURE beh_exor OF exor IS
BEGIN
ut <= ((NOT b) AND a) or (b AND (NOT a));
END;
En annan lösning kunde kort och gott vara
ARCHITECTURE beh_exor OF exor IS
BEGIN
ut <= a XOR b;
END;
Uppgift 2 Heladderare
Beskriv en enbits heladderare med insignalerna a0, b0 och Cin samt utsignalerna sum och Cut. med VHDL-kod.
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.)
Uppgift 4
En 4/1 multiplexer ska beskrivas med VHDL-kod. Välj själv benämningar på in och utsignaler.
|