20.01.2014 Views

Hemuppgifter,konstruktion,test och syntes

Hemuppgifter,konstruktion,test och syntes

Hemuppgifter,konstruktion,test och syntes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Royal Institute of Technology, KTH, Kista<br />

School of Information and Communication Technology, ICT<br />

Electronic Systems unit, ES<br />

Digital Design, IE1204 (2B1560, 6B2911) HT10<br />

OBS! Mycket studie- <strong>och</strong> LAB- förberedelse måste ske långt<br />

innan laborationstillfället! Börja i god tid förslagsvis med att<br />

från web:en skriva ut all text <strong>och</strong> alla bilder, som Du behöver för<br />

laborationens genomförande.<br />

Uppgifter betecknade med G (Grundnivå) är obligatoriska.<br />

Uppgifter betecknade med H (Högre nivå) kan ge bonus.<br />

Mål:<br />

Utrustning:<br />

Du ska i denna laboration lära Dig att konstruera tillståndsmaskiner.<br />

Vidare kommer du att få en ökad inblick i hur VHDL kan användas vid<br />

digital <strong>konstruktion</strong> för beskrivning, simulering samt <strong>syntes</strong>. Resultatet<br />

programmeras in i en programmerbar logikkrets PLD (Programmable<br />

Logic Device) <strong>och</strong> <strong>test</strong>as.<br />

PLD: GAL16V8 (PALCE16V8, GAL22V10 eller PALCE22V10).<br />

Hemma <strong>och</strong> i LAB-sal: Programvaran Cypress WARP (med<br />

GALAXY <strong>och</strong> Active HDL-sim) [CD:n kan köpas i kårbokhandeln i<br />

Kista]. Om man önskar koppla hemma, kan också kopplingsdäck handlas<br />

där. Lämpliga kretsar för in- <strong>och</strong> utkoppling till digitalkretsar till<br />

laborationerna kan erhållas via institutionen.<br />

På laboratoriet:<br />

Till PC kopplad PLD-programmerare HI-LO<br />

All 11 (ev också ALL 03) med lathundar på kursweb:en.<br />

”Gula kortet med tangentbordstillsats” med ”manual” i pappersform eller<br />

på kursweb:en.<br />

Litteratur: Brown, Vranesic kap 8 Konstruktion av tillståndsmaskin.<br />

Teorisupplement<br />

MDS-diagram<br />

http://www.ict.kth.se/courses/IE1204/HING/Teori/mds.html<br />

Teorisupplement<br />

PLD-arkitektur<br />

../pld_arkitektur.pdf<br />

Brown, Vranesic kap 8.4-8.8 Beskrivning av sekvensnät i VHDL<br />

Web <strong>och</strong> sökmotor<br />

Datablad till GAL16V8 mfl kretsar<br />

Lathund för WARP,<br />

en mera detaljerad beskrivning kan man hitta i<br />

”How To Get Started with WARP6.3”<br />

1


Lathund till PLD-programmerare<br />

www\ict\courses\IE1204\Hemsidan_vt_09\ALL11C2lathund.pdf<br />

Lathund till ”Gula Kortet” Kursweb:en<br />

http://www.ict.kth.se/courses/IE1204/Hemsidan_vt_09/Gula_kortet.pdf<br />

___<br />

GF1 Vad har OE för uppgift i GAL-kretsen? (Se datablad tex länken<br />

http://www.ee.washington.edu/stores/DataSheets/pld/pal16v8.pdf )<br />

___<br />

GF2 På vilken pinne hos PLD:n sitter OE ?<br />

GF3<br />

GF4<br />

GF5<br />

Vad behöver man göra för att koppla ut tillståndsregistrets utgångar till<br />

yttervärlden?<br />

På vilka pinnar hos 16V8 skall 5 V, GND respektive klockan kopplas in?<br />

Upp-eller-ned-räknare<br />

Konstruera en 2-bitars modulo-3 binärräknare som är försedd med två<br />

styrsignaler U <strong>och</strong> E. Signalen U styr så att U=1 ger uppräkning <strong>och</strong> U=0<br />

ger nedräkning. E står för Enable, som möjliggör räknande för 1 <strong>och</strong> ingen<br />

ändring för 0.<br />

Analysera uppgiften genom att bland annat rita tillståndsdiagrammet för<br />

räknaren. Rita också om detta till ett MDS-diagram. Dessa ska kunna visas<br />

upp för LAB-läraren vid laborationens början.<br />

GF6<br />

VHDL-kod<br />

Skriv VHDL-kod för räknaren. Målkretsen vid WARP-programmeringen<br />

är en GAL16V8 eller en PALCE16V8, i undantagsfall en 22V10. Följ<br />

”Lathunden för WARP” <strong>och</strong> läroboken, vilka kan ge tips.<br />

Tips: Tänk efter i vilken process som U respektive E bäst påverkar<br />

<strong>konstruktion</strong>en med enklaste VHDL-kod.!<br />

Skriv in programmet i GALAXY <strong>och</strong> spara filen med extension .vhd .<br />

Kompilera programmet i GALAXY (rätta till eventuella syntaxfel <strong>och</strong><br />

kompilera igen). Simulera med Active HDL-sim. När allt ser ut att ha<br />

lyckats, kan det vara dags att skriva ut dokumentationen (VHDL-kod,<br />

rapportfil, simuleringsdiagram <strong>och</strong> .jed-fil). Dokumentationen skall kunna<br />

redovisas i början av LAB-tillfället. Kanske behöver korrigeringar ske vid<br />

laborationstillfället. Slutligen skall förberedelseuppgifterna inklusive .vhdfilutskrift<br />

<strong>och</strong> simulerings-vågformerna lämnas in till LAB-läraren.<br />

2


HF1 Kodlåset<br />

Ett kodlås skall konstrueras. Efter 3 tryckningar i enlighet med rätt kod på<br />

ett enkelt tangentbord skall UT-signalen till dörrlåset ligga hög under 16<br />

klocksignaler (tex 16 sekunder, under vilka dörren går att öppna). På<br />

klockpulsen därefter skall dörren låsas igen.<br />

Insignalerna är förutom klockan: signalerna från tangentbordet, dvs 4<br />

radsignaler <strong>och</strong> 3 kolumnsignaler. Se figuren.<br />

Tangentbordet är konstruerat så att då spänning kopplats till det <strong>och</strong> en<br />

tangent trycks ner, spänningssätts en rad- <strong>och</strong> en kolumnsignal.<br />

OBS! Om varje tangent får en egen variabel, är det stor risk, att<br />

<strong>konstruktion</strong>en inte får plats i PLD:n.<br />

Rita tillståndsdiagrammet för kodlåset, som det är beskrivet ovan.<br />

Figuren på nästa sida visar en skiss att utgå från.<br />

3


HF2<br />

VHDL-kod<br />

Skriv VHDL-kod för kodlåset. Målkretsen vid WARP-programmeringen<br />

är en GAL16V8 eller en PALCE16V8, i undantagsfall en 22V10. Följ<br />

”Lathunden för WARP”. Skriv in programmet i GALAXY <strong>och</strong> spara filen<br />

med extension .vhd .<br />

Tänk på att tillstånden (tex S2) kan ändras, bara när en klockpuls kommer.<br />

Har man tryckt ned en tangent, så kommer man till nästa tillstånd (tex S3).<br />

Där kan det komma flera klockpulser innan man släpper upp tangenten,<br />

men man skall vara kvar i det nya tillståndet (tex S3) ända tills tangenten<br />

släpps upp <strong>och</strong> man kommer till ett 3:e tillstånd (tex S4). På liknande sätt<br />

kan flera klockpulser hinna komma i det 3:e tillståndet innan nästa<br />

tryckning görs, etc.<br />

Kompilera programmet i GALAXY <strong>och</strong> simulera det med Active HDLsim.<br />

När allt ser ut att ha lyckats, kan det vara dags att skriva ut den<br />

dokumentationen (VHDL-kod, rapportfil, simuleringsdiagram <strong>och</strong> .jedfil),<br />

vars innehåll skall kunna redovisas i början av LAB-tillfället.<br />

Eventuellt behöver korrigeringar göras under laborationen. För<br />

godkännande av laborationen skall de slutliga förberedelseuppgifterna,<br />

.vhd-koden <strong>och</strong> simulerings-vågformerna lämnas in.<br />

4


GL1 Implementering av räknaren i en PLD<br />

Programmera din PLD i en HI-LO-All-11- programmerare, kopplad till en<br />

PC. Flytta över din .jed-fil till denna PC via nätet, diskett eller usb-minne.<br />

Följ ”Lathund för att använda HI-LO-SYSTEMS”.<br />

GL2 Bekanta dig med det ”Gula Kortet”<br />

Studera lathunden för det ”Gula Kortet”. Koppla in<br />

spänningsförsörjningen på 10 V. Då kommer potentialen 5 V att finnas<br />

stabiliserad vid alla + <strong>och</strong> 0 V vid alla – på kortet. Se figur i ”Gula<br />

Kortets” lathund. Lås fast PLD:n i en IC-hållare <strong>och</strong> identifiera<br />

kontakthålen, som motsvarar varje ben hos PLD:n.<br />

Testa oscillatorn <strong>och</strong> manuell klockning hos ”Gula Kortet”. Undersök hur<br />

olika lägen (L, H, S) hos kortets vippströmställare påverkar klocksignalen.<br />

Klockpulserna skall kopplas in på ett bestämt ben på PLD:n. Orientera dig<br />

om var på kortet insignalerna kan switchas från tangentbordet till PLD:s<br />

ingångar <strong>och</strong> var PLD:ns utgångar kan indikeras med lysdioder (LED).<br />

GL3 Testa den programmerade PLD:n<br />

Koppla ”Gula Kortets” klockingång <strong>och</strong> switch-ingångar till PLD:ns<br />

motsvarande ingångar. Koppla PLD:ns registerutgångar till lysdioder.<br />

___<br />

Glöm inte att till PLD:n koppla in matningsspänning, OE <strong>och</strong><br />

klockpulser!<br />

Visa att kodlåset fungerar med Din krets. Redovisa även simuleringen av<br />

den slutliga VHDL-koden för LAB-läraren.<br />

5


HL1 Implementering av kodlåset i en PLD<br />

Programmera din PLD i en HI-LO-All-11- programmerare, kopplad till en<br />

PC. Flytta över din .jed-fil till denna PC via nätet, diskett eller usb-minne.<br />

Följ ”Lathund för att använda HI-LO-SYSTEMS”.<br />

HL2 Bekanta dig med det ”Gula Kortet” <strong>och</strong> tangentbordet<br />

Studera lathunden för det ”Gula Kortet”. Koppla in det som i G-uppgiften<br />

ovan. Se figur i ”Gula Kortets” lathund. Tangentbordets rader <strong>och</strong><br />

kolumner kan kopplas till LED-indikatorn på kortet. Med hjälp av dessa<br />

<strong>och</strong> av knapptryckningar kan varje rad- <strong>och</strong> kolumnsignal identifieras.<br />

Lås fast PLD:n i IC-hållaren <strong>och</strong> identifiera kontakthålen, som motsvarar<br />

varje ben hos PLD:n.<br />

Testa oscillatorn <strong>och</strong> manuell klockning hos ”Gula Kortet”. Undersök hur<br />

olika lägen (L, H, S) hos kortets vippströmställare påverkar klocksignalen<br />

Klockpulserna skall kopplas in på ett bestämt ben på PLD:n.<br />

HL3 Testa den programmerade PLD:n<br />

Koppla tangentbordssignalerna från flatkabelkontakten på ”Gula Kortet”<br />

till PLD:ns motsvarande ingångar. Koppla PLD:ns registerutgångar till<br />

lysdioder.<br />

Visa att kodlåset fungerar med Din krets. Redovisa även simuleringen av<br />

den slutliga VHDL-koden för LAB-läraren.<br />

6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!