LABORATIONSINSTRUKTION



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

F5 Introduktion till digitalteknik

(2B1560, 6B2911) HT08

LABORATIONSINSTRUKTION LABORATION

Sekvensnät i VHDL del 2

Grundläggande digitalteknik

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

DIGITALTEKNIK. Laboration D173. Grundläggande digital logik

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

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

DIGITALTEKNIK. Laboration D172

Konstruktionsmetodik för sekvenskretsar

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

Laboration Kombinatoriska kretsar

D/A- och A/D-omvandlarmodul MOD687-31

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

F5 Introduktion till digitalteknik

VHDL och laborationer i digitalteknik

Laboration Sekvenskretsar

IE1205 Digital Design: F9: Synkrona tillståndsautomater

Installationsanvisning för kursens programvara på egen dator

Exempel på tentamensfrågor Digitalteknik

Försättsblad till skriftlig tentamen vid Linköpings Universitet

LOG/iC2. Introduction

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

LABORATIONSINSTRUKTION

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

IE1204/IE1205 Digital Design

Tentamen i Digitalteknik 5p

Tentamen i Digitalteknik, EITF65

Laboration Kombinatoriska kretsar

Programmerbar logik. Kapitel 4

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

Laborationshandledning

VHDL 1. Programmerbara kretsar

Tentamen i Digital Design

Introduktion till syntesverktyget Altera Max+PlusII

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Digitalteknik: CoolRunner-II CPLD Starter Kit

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

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

Får jag be om ordet!

Föreläsning 1 & 2 INTRODUKTION

Exempel på LAX-uppgifter

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

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

Övningar Dag 2 En första klass

Telefrang Smoke Control System Installationsmanual för Midi- och MaxiSmoke Sida 1 av 12

19. Skriva ut statistik

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Lathund för att arbeta med pdf

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Programmerbar logik och VHDL. Föreläsning 4

Digital elektronik CL0090

LAJKA-GUIDE Bättre än Airdrop Skicka filer mellan OS X och ios

BICT:01 BICT. sv-se. Användarinstruktion Gäller från BICT Utgåva 5. Scania CV AB 2015, Sweden

Systemkonstruktion SERIEKOMMUNIKATION

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

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

Försättsblad till skriftlig tentamen vid Linköpings universitet

Laborationshandledning

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

Säkerhet Användarhandbok

KeyControl Utskrifter och historik

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

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

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Laborationshandledning

Programmeringsguide Picolo Porttelefon

Att komma igång med FirstClass (FC)!

T1-modulen Lektionerna Radioamatörkurs OH6AG OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH

Handbok KMouseTool. Jeff Roush Översättare: Stefan Asserhäll

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Digital- och datorteknik

Installation av. Vitec Online

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator

Eftersom det endast är en fristående strömslinga man påverkar då man trycker på knappen säger man att omkopplaren i bild 1 är en enpolig omkopplare.

LABORATIONSINSTRUKTION DIGITAL REGLERTEKNIK. Lab nr. 3 DIGITAL PI-REGLERING AV FÖRSTA ORDNINGENS PROCESS

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

Editering, Kompilering och Exekvering av Javaprogram

Smartair System. TS1000 Version 4.23

CSN-rapportering, gymnasiet

Handbok Simond. Peter H. Grasch

Flödesmätare digital. Bruksanvisning. för elektriska dieselpumpar typ PREMAxx. Innehåll:

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

Grunderna i stegkodsprogrammering

Introduktion till arv

SÅindex 5 i Microsoft Excel 2010

Marie Andersson, IKT-centrum E-post: (Bb Learn 9.1.8) Wikis i Blackboard

Handbok Artikulate. Andreas Cord-Landwehr Ondrila Gupta Översättare: Stefan Asserhäll

1 Strömmen I skall mätas med en amperemeter. Amperemetern är inställd på området 30 ma. Vad kommer amperemetern att visa?

Datakommunikation med IR-ljus.

LABORATIONSINSTRUKTION

Chapter 3: Using Classes and Objects

HÖGSKOLAN I KALMAR Institutionen för teknik Erik Loxbo LABORATION I PLC-TEKNIK SEKVENSSTYRNING AV TRANSPORTBAND SIMATIC S7 - GRAPH

Tenta i Digitalteknik

Transkript:

Högskolan Dalarna Institutionen för Elektroteknik LABORATION LABORATIONSINSTRUKTION LOG/iC, PLD, kombinatorik, sekvensnät KURS Digitalteknik LAB NR 6 INNEHÅLL. Inledning 2. Prioritetskodare 3. Elektronisk tärning NAMN KOMMENTARER PROGRAM/KURS UTFÖRD GODKÄND

Laboration nr 6 Digitalteknik Innehåll: Syfte: Konstruktion av ett kombinatoriskt resp. sevensiellt nät med hjälp av ett modernt konstruktionshjälpmedel för programmerbar logik. Att få insikt i vad det praktiskt innebär att konstruera med generella logiska byggelement, s.k. PLD. Inledning I denna laboration kommer du att använda en PC-baserad programvara vid namn LOG/iC från det tyska företaget ISDATA. Programpaketet som är mycket användarvänligt, innehåller ett antal moduler vilka tillsammans erbjuder en relativt komplett utvecklingsmiljö för konstruktion av digital logik med hjälp av s.k. PLD-kretsar (Programmable Logic Devices). Den PLD-krets som skall användas vid laborationen har beteckningen PALCE22V och är en elektriskt raderbar CMOS-variant av den mycket vanligt förekommande 22V. LOG/iC Konstruktionsverktyget LOG/iC klarar att: o kontrollera och tolka en funktionell beskrivning av en digital funktion o konvertera den givna beskrivningen till en uppsättning minimerade booleska uttryck o konvertera de booleska uttrycken till en datafil som kan användas för att programmera en PLD o simulera (levandegöra) den av användaren givna beskrivningen Dessutom innehåller verktyget en detaljerad databas över större delen av den programmerbara logik som finns på marknaden. LOG/iC är en generell programvara för PLD-kretsar och den är relativt enkel att använda. Tyvärr har de generella programvarorna inte utvecklats lika fort som de nya kretsarna och numera bör man i stället för LOG/iC använda en dedicerad programvara som är utvecklade för just den PLD man ska arbeta med. Programvaror av denna typ är ofta gratis, men de är begränsade till ett fabrikat. För den PLD som används vid laborationen fungerar LOG/iC alldeles utmärkt. Den variant av LOG/iC som vi använder heter LOG/iC2 Eval och är en utvärderings (evaluation) version av LOG/iC2. Programmet startas från Start/Program/LOG_iC2/LOG_C2 Eval. Lab nr 6 2-2-3/pls

Arbetsgången för ett typiskt arbetspass med LOG/iC kan se ut enligt följande: o Skapa en ny design design new <filnamn>. Svara nej på frågan om hierarkisk editor. o Starta editering av indatafilen <filename>.dcb. I filen beskrivs alla logiska funktioner för konstruktionen. Filen innehåller inga kretsspecifika data. o Starta editering av indatafilen <filename>.ddv. I filen beskrivs alla data som tillhör den PLD som ska användas, dvs PALCE22V i detta fall.. o Kompilera konstruktionsbeskrivningen med execute/optimize eller execute/generate o Kontrollera utresultatet i listfilerna under Outputs. o Rätta ev. fel genom att editera infilen igen, därefter ny kompilering. o Verifiera/simulera beteendet med hjälp av verifieraren, Execute/Simulator. o Skriv ut listfiler på printern. PALCE22VH 22V är beteckningen på en relativt enkel PLD-krets. Beteckningen kommer av att den kan använda upp till 22 insignaler och generera maximalt utsignaler. Summan av ingångarna och utgångarna är begränsad till 22 där av signalerna är dubbelriktade och kan användas som in- eller utgångar). Kretsen som är en PAL, dvs har en programmerbar AND-matris men fast OR-matris, innehåller förutom ren kombinatorik också D-vippor. Värt att notera är att kretsens maximalt utgångar inte är identiskt uppbyggda. I stället för att låta kretsens totalt 2 produkttermer fördelas lika över alla utgångar (2/utgång) så har man valt att låta några av utgångarna få fler än 2 och några färre. Därigenom möjliggör man att även svårare uttryck kan rymmas i kretsen. I praktiken visar det sig att det oftast är någon enstaka signal som kräver många produkttermer. Dessa signaler kan i så fall kopplas till de utgångar som har många produkttermer. I denna lab skall vi använda en variant av 22V, PALCE22CVH från Vantis (Lattice). Den är elektriskt raderbar vilket gör att den mycket lätt kan återanvändas efter en eventuell felprogrammering eller funktionsändring. Studera kretsens datablad! Lab nr 6 2 2-2-3/pls

Programmeringsutrustningen För att programmera PLD-kretsarna efter en lyckad kompilering i LOG/iC, finns en PC-styrd programmeringsenhet, Micromaster LV48 från ICE Technology. Programmeraren finns installerad till en av PCdatorerna i laborationssalen och den består av en hårdvaruenhet som är ansluten till datorns parallellport. Programvaran är relativt enkel att använda. Programmeraren kan användas till en mängd olika programmerbara kretsar, tex HC, PIC-processorer, minnen, PLDkretsar. o Starta programmet genom att klicka på ikonen för programmeraren o Välj kretsfabrikat, VANTIS o Välj kretstyp, PALCE22VH-25/4 o Läs in programmeringsdata från LOG/iC från filen <namn>.pp2 o Sätt fast kretsen i programmeringsadaptern. OBS! jordpinnens plac. o Starta programmeringen o Avlägsna kretsen o Avsluta programmet Lab nr 6 3 2-2-3/pls

2 Prioritetskodare (kombinatoriskt nät) Konstruera med hjälp av PLD-kretsen PALCE22V en prioritetskodare, 8 till 3, enligt nedanstående figur och beskrivning. 2 3 4 5 6 7 8 22CV PRIENC I7 I6 I5 I4 ACT I3 I2 C4 I C2 I C 23 22 2 2 Beskrivning: Prioritetskodaren skall då en eller flera av dess ingångar aktiveras, går höga, visa binärkoden för den aktiverade ingång som har högst prioritet (I7 högst, I lägst). Binärkoden skall ha positionsvikterna 4, 2,, och presenteras på utgångarna C4-C. Utgången ACT skall indikera när någon ingång är aktiverad. Då ingen ingång är aktiverad (I7-I = ), spelar det ingen roll vilken utsignal som genereras på C4-C, detta indikeras av att signalen ACT=. Arbetsgång: ) Tänk igenom uppgiften 2) Beskriv funktionen med en funktionstabell 3) Skriv två källkodsfiler som beskriver konstruktionen: logic description (filtyp.dcb) med all logisk beskrivning av konstruktionen. device description (filtyp.ddv) med information om PLD:en. 4) Kompilera och åtgärda ev. felutskrifter. 5) Verifiera funktionen med hjälp av funktionsverifieraren 6) Programmera en krets 7) Koppla upp och prova funktionen i praktiken (färdig labuppkoppling finns att tillgå vid labtillfället) Punkt 2-4 görs med hjälp av programpaketet LOG/iC, punkt 5 behöver inte göras. Punkt 6 klaras med programmeringsenheten Micromaster LV48. Redovisning: o Listfiler som ska innehålla minst källkodsfiler och booleska ekvationer för konstruktionen. Innehållet kan väljas med menyalternativet Options/Design Redigera filerna i WORD innan utskriften görs. o Praktisk demonstration av fungerande krets. Lab nr 6 4 2-2-3/pls

3 Elektronisk speltärning (sekvenskrets) Konstruera en elektronisk speltärning beskriven av nedanstående tillståndsgraf. Tärningen utförs som ett synkront sekvensnät av Moore-typ innehållande totalt 7 nyttiga tillstånd S-S7. S är start- eller resettillståndet med utsignalen, dvs alla ögon släckta. S2-S7 utgör de normala räknetillstånden för tärningen. Asynkr. reset S GO S2 S7 6 S3 2 S6 S4 5 S5 4 3 Då insignalen GO aktiveras skall tärningen räkna modulo-6 enligt tillståndsgrafen ovan tills GO deaktiveras varvid tärningen stannar och visar värdet av tärningskastet. Resultatpresentationen sker med 7 st. lysdioder arrangerade som ögonen på en tärning enligt figuren nedan. Tabellen anger hur resp. LED skall aktiveras beroende av tärningsvärdet. L L5 LLLLLLL 234567 L2 L4 L6 2 3 L3 L7 4 5 6 Eftersom tillståndsgrafen innehåller totalt 7 nyttiga tillstånd kan vi realisera nätet med 3 st tillståndsvariabler, bitar. Lab nr 6 5 2-2-3/pls

Eftersom det verkar behövas 7 st utsignaler kan vi inte direkt plocka dessa utsignaler från tillståndsvippornas utgångar. Istället behövs en utgångskombinatorik som kan generera L-L7. Att göra på ovanstående sätt vore ett slöseri med utgångsanslutningar på kretsen 22CV. Tre st. utgångar ockuperas ju av de tre tillståndsvipporna vilka internt återkopplas till AND-OR matrisen igen för att där bilda utgångsfunktionerna för L-L7 vilka i sin tur ockuperar 7 st. utgångspinnar. Totalt utgångsanslutningar går åt. Ett annat och troligen bättre alternativ vore att öka antalet tillståndsbitar till 7. Eftersom utsignalkombinationerna är unika kan vi med 7 tillståndsbitar koda i detta fall 7 st. nyttiga tillståndskombinationer så att resp. tillståndsbit direkt motsvarar en av utsignalerna. Utsignalerna kan därigenom tas direkt från vippornas utgångar och vi behöver ingen utgångskombinatorik. Totalt 7 utgångsanslutningar går åt. Att införa 7 tillståndsbitar medför dock att vi får 2 7 =28 möjliga tillstånd. Eftersom det endast behövdes 7 st nyttiga tillstånd har vi nu fått 2 st onödiga tillstånd på halsen. Dessa extra tillstånd måste för säkerhets skull tas om hand, specificeras, vilket p.g.a. av den stora mängden inte är alldeles enkelt, inte ens med ett utvecklingshjälpmedel som LOG/iC. Oberoende av om man väljer alt. eller alt. 2 ovan, kommer LOG/iC att i sin resultatlistning påpeka att de tre utsignalerna L7, L6, L5 var för sig är identiska med utsignalerna L, L2, L3. Studera utsignaltabellen på föregående sida och övertyga dig om att så är fallet. Utskriften från LOG/iC blir: IDENTICAL FUNCTIONS: -------------------- L5.D = L3.D (.D anger D-vippans D-ingång) L6.D = L2.D L7.D = L.D Det tredje och troligen det bästa alternativet borde vara att i likhet med alternativ 2 koda tillstånden så att utsignalerna kan tas direkt från resp. tillståndsbit. Med endast 4 väsentliga utsignaler (L-L4) får vi således totalt 6 möjliga tillstånd varav nu endast 9 st. onödiga. Totalt 4 utgångsanslutningar går åt. Innan vi nu rusar iväg och kodar detta tredje alternativ bör vi tänka efter hur insignalen GO egentligen är beskaffad. Vi kan på goda grunder utgå från att den inte är synkroniserad med klockan utan att den istället kan förändras i vilket tidsögonblick som helst, d.v.s. den är asynkron. Denna asynkrona signal styr via ett kombinatoriskt nät nästa tillstånd, d.v.s. påverkar hur samtliga tillståndsvippor kommer att stå efter aktiv klockflank. Lab nr 6 6 2-2-3/pls

Eftersom signalen inte är klocksynkron kan det mycket väl hända att setup- eller hold-tiden för någon eller några av tillståndsvipporna inte uppfylls. Detta kan i så fall leda till att maskinen kommer att hoppa mellan tillstånden på ett helt ospecificerat sätt. Genom att synkronisera insignalen i ett inledande vippelement kan vi undvika detta problem. Uppgift: Utgå från alternativ 3 och låt de 9 extra tillstånden alla ovillkorligt leda tillbaka till tillstånd S. Insignalen GO skall anses vara asynkron och skall således klockas i ett inledande vippelement innan den ansluts till sekvensnätet. Tips: eftersom signalen GO är aktivt låg kan det vara lämpligt att ge den namnet GON i LOG/iC-beskrivningen (N anger att den är aktiv på låg nivå). Klockning av en signal i en D-vippa kan i LOG/iC anges på följande sätt: *BOOLEAN-EQUATIONS CLGON:=GON; OBS! Den nya signalen CLGON måste deklareras som en variabel (utgång). Eftersom en D-vippa tas i anspråk för synkroniseringen och varje D-vippa är knuten till en egen kapselpinne måste vi också ange vilken pinne som skall reserveras för denna vippa. Detta görs under *PINS CLGON = 8. Gör upp en konstruktionsbeskrivning till LOG/iC med en pintilldelning enligt figuren nedan. Kompilera och verifiera funktionen med verifieringsverktyget. Observera att både den asynkrona reseten och klocksignalen måste definieras. Den asynkrona reseten kan deklareras under BOOLEAN- EQUATIONS med L.RS = RES. Klocksignalen behöver egentligen inte definieras eftersom stift på 22CV-kretsarna är konstant ansluten till klockingångarna på alla D-vipporna. För att tydliggöra funktionen bör man skriva L.CLK = CLK. CLK RES GO 22CV DIE C 2 RES L 7 3 6 GO L2 5 L3 4 L4 Lab nr 6 7 2-2-3/pls

Programmera en krets samt provkör den i praktiken på en i förväg redan iordningsställd testuppkoppling (finns vid labtillfället). Observera att den givna pintilldelningen måste följas. Redovisa resultatlistningen från LOG/iC på samma sätt som den första uppgiften samt demonstrera kretsen i full aktion med hjälp av den färdiga labuppkopplingen. Lab nr 6 8 2-2-3/pls