Hemuppgifter,konstruktion,test och syntes
Hemuppgifter,konstruktion,test och syntes
Hemuppgifter,konstruktion,test och syntes
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