Royal Institute of Technology, KTH, Kista School of Information and Communication Technology, ICT Department of Electronics, Computer and Software, ECS Digital Design, IE1204 (2B1560, 6B2911) HT08 OBS! Mycket studie- och LAB- förberedelse måste ske långt innan laborationstillfället! Börja i god tid förslagsvis med att från web:en skriva ut all text och alla bilder, som Du behöver för laborationens genomförande. Uppgifter betecknade med G (Grundnivå) är obligatoriska. Uppgifter betecknade med H (Högre nivå) kan ge bonus. Mål: Du ska i denna laboration lära Dig att konstruera tillståndsmaskiner. Vidare kommer du att få en ökad inblick i hur VHDL kan användas vid digital konstruktion för beskrivning, simulering samt syntes. Resultatet programmeras in i en programmerbar logikkrets PLD (Programmable Logic Device) och testas. Utrustning: PLD: GAL16V8 (PALCE16V8, GAL22V10 eller PALCE22V10). Hemma och i LAB-sal: Programvaran Cypress WARP (med GALAXY och Active HDL-sim) [CD:n kan köpas i kårbokhandeln i Kista]. Om man önskar koppla hemma, kan också kopplingsdäck handlas där. Lämpliga kretsar för in- och utkoppling till digitalkretsar till laborationerna kan erhållas via institutionen. På laboratoriet: Till PC kopplad PLD-programmerare HI-LO All 11 (ev också ALL 03) med lathundar på kursweb:en. Gula kortet med tangentbordstillsats med manual i pappersform eller på kursweb:en. Litteratur: Hemert kap 5.1-5.7 Konstruktion av tillståndsmaskin. Teorisupplement till kap 5 MDS-diagram http://www.ict.kth.se/courses/ie1204/hing/teori/mds.html Teorisupplement till kap 8 PLD-arkitektur under http://www.ict.kth.se/courses/ie1204/hing/teori/index.htm Hemert kap (9.1-)9.3 Beskrivning av sekvensnät i VHDL Web och sökmotor Datablad till GAL16V8 mfl kretsar Lathund för WARP, en mera detaljerad beskrivning kan man hitta i 1
How To Get Started with WARP6.3 och Lathund till PLD-programmerare under http://www.ict.kth.se/courses/ie1204/hing/labpm/index.html Lathund till Gula Kortet Kursweb:en http://www.ict.kth.se/courses/2b1560/hemsidan_ht_08/lab.htm GF1 Vad har OE för uppgift i GAL-kretsen? (Se datablad tex under http://www.ict.kth.se/courses/ie1204/hing/labpm/index.html ) GF2 På vilken pinne hos PLD:n sitter OE? GF3 GF4 GF5 Vad behöver man göra för att koppla ut tillståndsregistrets utgångar till yttervärlden? På vilka pinnar hos 16V8 skall 5 V, GND respektive klockan kopplas in? Upp-eller-ned-räknare Konstruera en 2-bitars modulo-3 binärräknare som är försedd med två styrsignaler U och E. Signalen U styr så att U=1 ger uppräkning och U=0 ger nedräkning. E står för Enable, som möjliggör räknande för 1 och ingen ändring för 0. Analysera uppgiften genom att bland annat rita tillståndsdiagrammet för räknaren. Rita också om detta till ett MDS-diagram. Dessa ska kunna visas upp för LAB-läraren vid laborationens början. GF6 VHDL-kod Skriv VHDL-kod för räknaren. Målkretsen vid WARP-programmeringen är en GAL16V8 eller en PALCE16V8, i undantagsfall en 22V10. Följ Lathunden för WARP och läroboken, vilka kan ge tips. Tips: Tänk efter i vilken process som U respektive E bäst påverkar konstruktionen med enklaste VHDL-kod.! Skriv in programmet i GALAXY och spara filen med extension.vhd. Kompilera programmet i GALAXY (rätta till eventuella syntaxfel och kompilera igen). Simulera med Active HDL-sim. När allt ser ut att ha lyckats, kan det vara dags att skriva ut dokumentationen (VHDL-kod, rapportfil, simuleringsdiagram och.jed-fil). Dokumentationen skall kunna redovisas i början av LAB-tillfället. Kanske behöver korrigeringar ske vid laborationstillfället. Slutligen skall förberedelseuppgifterna inklusive.vhdfilutskrift och simulerings-vågformerna lämnas in till LAB-läraren. 2
HF1 Kodlåset Ett kodlås skall konstrueras. Efter 3 tryckningar i enlighet med rätt kod på ett enkelt tangentbord skall UT-signalen till dörrlåset ligga hög under 16 klocksignaler (tex 16 sekunder, under vilka dörren går att öppna). På klockpulsen därefter skall dörren låsas igen. Insignalerna är förutom klockan: signalerna från tangentbordet, dvs 4 radsignaler och 3 kolumnsignaler. Se figuren. Tangentbordet är konstruerat så att då spänning kopplats till det och en tangent trycks ner, spänningssätts en rad- och en kolumnsignal. OBS! Om varje tangent får en egen variabel, är det stor risk, att konstruktionen inte får plats i PLD:n. Rita tillståndsdiagrammet för kodlåset, som det är beskrivet ovan. Figuren på nästa sida visar en skiss att utgå från. 3
HF2 VHDL-kod Skriv VHDL-kod för kodlåset. Målkretsen vid WARP-programmeringen är en GAL16V8 eller en PALCE16V8, i undantagsfall en 22V10. Följ Lathunden för WARP. Skriv in programmet i GALAXY och spara filen med extension.vhd. Tänk på att tillstånden (tex S2) kan ändras, bara när en klockpuls kommer. Har man tryckt ned en tangent, så kommer man till nästa tillstånd (tex S3). Där kan det komma flera klockpulser innan man släpper upp tangenten, men man skall vara kvar i det nya tillståndet (tex S3) ända tills tangenten släpps upp och man kommer till ett 3:e tillstånd (tex S4). På liknande sätt kan flera klockpulser hinna komma i det 3:e tillståndet innan nästa tryckning görs, etc. Kompilera programmet i GALAXY och simulera det med Active HDLsim. När allt ser ut att ha lyckats, kan det vara dags att skriva ut den dokumentationen (VHDL-kod, rapportfil, simuleringsdiagram och.jedfil), vars innehåll skall kunna redovisas i början av LAB-tillfället. Eventuellt behöver korrigeringar göras under laborationen. För godkännande av laborationen skall de slutliga förberedelseuppgifterna,.vhd-koden och simulerings-vågformerna lämnas in. 4
GL1 Implementering av räknaren i en PLD Programmera din PLD i en HI-LO-All-11- programmerare, kopplad till en PC. Flytta över din.jed-fil till denna PC via nätet, diskett eller usb-minne. Följ Lathund för att använda HI-LO-SYSTEMS. GL2 Bekanta dig med det Gula Kortet Studera lathunden för det Gula Kortet. Koppla in spänningsförsörjningen på 10 V. Då kommer potentialen 5 V att finnas stabiliserad vid alla + och 0 V vid alla på kortet. Se figur i Gula Kortets lathund. Lås fast PLD:n i en IC-hållare och identifiera kontakthålen, som motsvarar varje ben hos PLD:n. Testa oscillatorn och manuell klockning hos Gula Kortet. Undersök hur olika lägen (L, H, S) hos kortets vippströmställare påverkar klocksignalen. Klockpulserna skall kopplas in på ett bestämt ben på PLD:n. Orientera dig om var på kortet insignalerna kan switchas från tangentbordet till PLD:s ingångar och var PLD:ns utgångar kan indikeras med lysdioder (LED). GL3 Testa den programmerade PLD:n Koppla Gula Kortets klockingång och switch-ingångar till PLD:ns motsvarande ingångar. Koppla PLD:ns registerutgångar till lysdioder. Glöm inte att till PLD:n koppla in matningsspänning, OE och klockpulser! Visa att kodlåset fungerar med Din krets. Redovisa även simuleringen av den slutliga VHDL-koden för LAB-läraren. 5
HL1 Implementering av kodlåset i en PLD Programmera din PLD i en HI-LO-All-11- programmerare, kopplad till en PC. Flytta över din.jed-fil till denna PC via nätet, diskett eller usb-minne. Följ Lathund för att använda HI-LO-SYSTEMS. HL2 Bekanta dig med det Gula Kortet och tangentbordet Studera lathunden för det Gula Kortet. Koppla in det som i G-uppgiften ovan. Se figur i Gula Kortets lathund. Tangentbordets rader och kolumner kan kopplas till LED-indikatorn på kortet. Med hjälp av dessa och av knapptryckningar kan varje rad- och kolumnsignal identifieras. Lås fast PLD:n i IC-hållaren och identifiera kontakthålen, som motsvarar varje ben hos PLD:n. Testa oscillatorn och manuell klockning hos Gula Kortet. Undersök hur olika lägen (L, H, S) hos kortets vippströmställare påverkar klocksignalen Klockpulserna skall kopplas in på ett bestämt ben på PLD:n. HL3 Testa den programmerade PLD:n Koppla tangentbordssignalerna från flatkabelkontakten på Gula Kortet till PLD:ns motsvarande ingångar. Koppla PLD:ns registerutgångar till lysdioder. Visa att kodlåset fungerar med Din krets. Redovisa även simuleringen av den slutliga VHDL-koden för LAB-läraren. 6