1. Scopul lucrrii Prezentarea structurii unui circuit integrat programabil CPLD (Complex Programmable Logic Device) de ultim generaie i implementarea unor sisteme numerice prin programarea circuitului, folosind un calculator PC performant i un produs software dedicat acestei aplicaii.
2. Aparate necesare - calculator compatibil Pentium, minim 500MHz, minim 128MB RAM - mediul de programare ISE (Integrated Software Environment)-versiunea 6.1i, furnizat de firma Xilinx, instalat pe o platform Windows 2000 (SP2 sau SP3) sau XP. Programul poate fi instalat i pe sistemele de operare Linux sau Solaris. - modulul Digilab XCRP, echipat cu circuitul integrat XCR3064XL. - alimentator de reea pentru modulul Digilab XCRP. - cablu de conectare a modulului cu calculatorul pe portul paralel.
3. Consideraii teoretice Un circuit CPLD este format dintr-un ansamblu de circuite PLD separate, realizate pe acelai cip i nsoite de o structur de interconectare programabil care folosete cu eficien maxim suprafaa cipului. Circuitul integrat CPLD de tipul XCR3064XL, fabricat de firma Xilinx, conine 64 macrocelule programabile (o macrocelul conine pori programabile, multiplexoare i un bistabil) i 1500 pori logice care pot fi utilizate pentru configurarea structurii numerice pe care o dorim. Circuitul se alimenteaz cu o tensiune redus de 3,3V, avnd un consum de curent nesemnificativ la joas frecven, dar care poate atinge 30mA la frecvena maxim posibil de circa 200MHz. Modulul Digilab XCRP, furnizat de firma Digilent, conine un circuit integrat XCR3064XL montat n soclu. Capsula are 44 pini, 4 dintre ei fiind conectai la Vcc, 3 la GND, iar 5 sunt destinai semnalelor de programare, conform standardului JTAG IEEE 1149.1. Restul pinilor ajung la un conector de expansiune prin care putem cupla alte circuite externe, dar i la dispozitive intrare-ieire amplasate pe plac: exist 4 butoane cu revenire (pushbuttons) i 8 comutatoare cu meninere (slide switches) prin care se pot aplica intrri numerice circuitului, dar i 8 LED-uri i nc 2 cifre de afiaj cu 7 segmente pe care putem vizualiza ieirile numerice ale circuitului. Mai exist i o intrare de ceas (CLOCK) pe care se aplic semnalul generat de un oscilator local cu trigger Schmidt, semnal a crui frecven poate fi ajustat cu ajutorul unui poteniometru multitur n limitele 0,5Hz 4KHz. Alte informaii despre modulul Digilab XCRP, inclusiv schemele electrice complete i conexiunile circuitului CPLD cu dispozitivele intrare-ieire amplasate pe plac, se gsesc n anexa de la sfritul lucrrii. 2
Fig.3.1 Interfaa programului Project Navigator
Lansarea n execuie a mediului ISE se face prin programul Project Navigator, care prezint starea proiectului aflat n lucru prin cele 4 ferestre care se pot vedea i n exemplul din figura 3.1: o fereastr care permite listarea fiierelor surs ale proiectului, o fereastr care indic diverse procese parcurse n elaborarea proiectului aici s-a cerut vizualizarea modelului VHDL, model care apare n fereastra din dreapta i o consol care furnizeaz informaii despre buna desfurare a procesului curent.
Fig.3.2 Editorul grafic de scheme logice Xilinx ECS 3 Sursa proiectului poate fi un fiier *.sch, care conine schema logic a circuitului, editat n fereastra Xilinx ECS (vezi figura 3.2), sau un fiier *.vhf, care conine modelul VHDL al circuitului. n figura 3.2 s-a prezentat coninutul fiierului laborator.sch, care reprezint schema logic a proiectului ce urmeaz s fie implementat n circuitul integrat XCR3064XL, prin programarea conexiunilor necesare din structur. Dup cum se poate observa din figura 3.2, simbolurile logice sunt grupate pe categorii (Counter, Decoder, Flip_Flop, Latch etc.). Categoria Logic conine diferite tipuri de pori logice: and2 este poart I cu 2 intrri, iar and2b1 este tot poart I cu 2 intrri, dar una din intrri este inversat. Selecia simbolului dorit din list i poziionarea lui pe suprafaa de lucru se face cu ajutorul mouse-ului, iar interconectarea intrrilor/ieirilor se face cu opiunea Add din meniul principal, urmat de Wire. Dup salvarea schemei ntr-un fiier *.sch, se alege din lista de procese opiunea Check Design Rules i, dac nu sunt erori de interconectare, atunci se iniiaz i procesul View VHDL Functional Model, care verific sintaxa limbajului prin compilarea sursei *.vhf . Urmtorul proces din list este Create Timing Constraints. El trebuie iniiat, dar dac nu avem probleme speciale de timing, atunci putem s nu completm nimic n fereastra respectiv. Urmeaz Assign Package Pins, un proces foarte important, care atribuie fiecrui semnal de intrare/ieire din schem cte un pin disponibil. Procesul lanseaz interfaa Xilinx PACE, reprezentat n figura 3.3. Fereastra din dreapta indic configuraia pinilor circuitului integrat (vedere de sus), iar fereastra din stnga ofer lista semnalelor de intrare/ieire din circuit. Conectarea acestor semnale la pinii circuitului se face manual, n conformitate cu specificaiile plcii Digilent XCRP date n anex (tabelul 3 de la pagina 7/7). CLK este intrarea de ceas, SW1, SW2 i BTN1 sunt intrri numerice, LD1 LD8 sunt cele 8 ieiri numerice pentru LED-uri, iar AA AG sunt ieirile pentru segmentele afioarelor. .
Fig. 3.3 Asignarea pinilor circuitului integrat cu ajutorul lui Xilinx PACE 4
Fig. 3.4 Vizualizarea conexiunilor dintre blocurile componente cu Xilinx ChipViewer
Semnalele CIFRA1 i CIFRA2 sunt ieiri n contratimp, destinate activrii alternative a celor dou cifre de afiaj cu 7 segmente, pentru multiplexarea n timp a informaiei afiate. Procesul Fitter Report furnizeaz informaii asupra alocrii resurselor disponibile pentru implementarea proiectului nostru. Astfel, din cele 64 macrocelule disponibile n circuitul integrat XCR3064XL se folosesc 43, adic un procent de 67%, din cei 224 termeni produs (mintermeni) se folosesc 87, adic un procent de 39%, din cele 64 bistabile (registers) existente n macrocelule se folosesc numai 28, adic 44%, iar din cei 32 pini liberi ai capsulei circuitului integrat se folosesc 21, adic 66%. Raportul furnizeaz i alte informaii legate de timpii de propagare, puterea consumat sau ecuaiile funciilor binare implementate. Pentru exemplul considerat de noi, raportul are 10 pagini. Prima pagin a raportului este dat la pagina 8. Procesul View Fitted Design lanseaz Xilinx ChipViewer, care permite vizualizarea conexiunilor dintre diverse blocuri componente ale circuitului integrat. Se pot vedea conexiunile fiecrui pin n parte cu blocurile din structur, conexiunile tuturor intrrilor sau conexiunile tuturor ieirilor. Ecranul din figura 3.4 arat 3 ferestre deschise: lista semnalelor, gruparea pinilor dup categorii (de alimentare, de programare a cipului, de intrare, de ieire), interconectarea intrrii SW1 cu alte blocuri din circuit i interconectarea blocurilor interne. Se poate simula funcionarea circuitului, pentru a stabili dac funcioneaz aa cum dorim, folosind un simulator propriu integrat sau programul ModelSim de la firma Mentor. Ultimul proces necesar pentru programarea circuitului integrat este Configure Device (iMPACT), care programeaz circuitul amplasat pe placa Digilent, conectat la calculator printr-un cablu paralel JTAG. Dup generarea fiierului JEDEC pentru proiectul nostru, se stabilesc opiunile de programare i circuitul se configureaz conform schemei dorite. Mesajul Programming Succeeded garanteaz succesul programrii. Din pcate, aceast operaie poate fi repetat numai de circa 1000 ori. 5 4. Modul de lucru 4.1. Se studiaz modulul Digilab XCRP i Digilab XCRP Reference Manual din anex, identificnd amplasarea subansamblelor descrise n figura 1. Se studiaz descrierea funcional a modulului i conectarea lui la portul paralel n vederea programrii. Se studiaz funcionarea oscilatorului, modul de conectare la circuitul integrat CPLD a comutatoarelor numerice de la intrri, a LED-urilor de la ieiri, precum i afiarea prin multiplexare n timp a celor dou cifre ale afiajului cu 7 segmente. Se urmrete alocarea pinilor pentru interconectarea circuitului integrat XCR3064XL la elementele de circuit de mai sus, urmrind tabelul 3 de la pagina 7/7 i schemele electrice ale modulului Digilab XCRP.
4.2. Se lanseaz n execuie Project Navigator, se alege un fiier *.sch din proiectul curent i se vizualizeaz schema logic n editorul de scheme. Se parcurg i celelalte procese discutate la punctul 3, fr a reprograma circuitul integrat.
4.3. Se verific funcionarea automatului finit cu o intrare, descris n lucrarea de laborator Automate finite. Organigrama care descrie funcionarea circuitului este dat n figura 4.1, iar schema logic, implementat cu bistabile D i multiplexoare aa cum a fost programat n CPLD, este dat n figura 4.2.
A B C X X Y1=1 Y2=0 Y1 = 1 Y2 = 0 Y 1 = 1 Y1=1 / Y2=0 Y1 = 1 Y2 = 0 Y2 = 0 Y1 = 0 Y1 = 0 Y2 = 1 0 1 0 1 Q1Q2 00 11 01
Fig. 4.1 Organigrama care descrie funcionarea automatului finit
Fig. 4.2 Schema logic a automatului finit cu o intrare 6 Observm c multiplexoarele mai au n plus o intrare de ENABLE, notat cu E i care se conecteaz la 1 logic. Semnalul de intrare X se aplic prin butonul cu revenire BT1, iar starea sistemului Q 1 Q 2 este afiat pe LED-urile verzi LD1 i LD4, n timp ce ieirile sunt afiate pe LED-urile roii LD7 i LD8. Poziiile comutatoarelor cu meninere sunt SW1 = 0 i SW2 = 0 .
4.4. Se verific funcionarea semaforului, care este un automat finit fr intrri. Este destinat semaforizrii unei intersecii simple, fr sincronizare cu semnal de la alte intersecii. Grupul de LED-uri LD1-LD3 este destinat unui sens de deplasare, iar grupul LD4-LD6 este destinat celuilalt sens, perpendicular pe primul. Schema logic a circuitului aa cum a fost programat n CPLD, este dat n figura 4.3. Semnalul de ceas CLK este aplicat numrtoarelor de divizare numai dac intrarea SW2 = 1. Numrtorul CB2RE conine 2 bistabile i divizeaz frecvena ceasului de 4 ori. Semnalul rezultat este aplicat numrtorului CB4CE care conine 4 bistabile. Fiind necesare numai 12 stri, la apariia combinaiei Q 3 Q 2 Q 1 Q 0 = 1100 pe ieiri, se aplic un semnal de RESET pe intrarea de resetare asincron a numrtorului. Primele 4 stri comand rou pe o direcie (LD3) i verde pe cealalt (LD4). Urmtoarea stare determin plpirea culorii verzi. Urmeaz o alt stare pentru galben (LD2 i LD5) pentru ambele direcii. Alte 4 stri comand verde pe prima direcie (LD1) i rou pe cealalt (LD6). Din nou urmeaz plpirea culorii verzi pentru cealalt direcie i galben pentru ambele direcii. Decodorul cu pori de la ieire este destinat generrii funciilor binare care comand aprinderea sau stingerea LED-urilor. Cele 2 multiplexoare prin care se aplic semnale LED-urilor verzi LD1 i LD4 au fost introduse pentru c am avut nevoie de aceste LED-uri i pentru circuitul descris la punctul 4.3.
Fig. 4.3 Schema logic a semaforului
4.5. Se verific funcionarea numrtorului cresctor cu 2 cifre BCD, care este i el un automat finit fr intrri. Schema logic a circuitului aa cum a fost programat n CPLD, este dat n figura 4.4. Circuitul funcioneaz atunci cnd SW1 = 0. Dac SW1 = 1, atunci numrtoarele sunt resetate i afiajul indic 00. Semnalul de ceas CLK este divizat prin 2 cu ajutorul bistabilului FD, ale crui ieiri complementare se aplic ieirilor CIFRA1 i CIFRA2. O jumtate din timp este aprins prima cifr a afiajului, iar n cealalt jumtate din timp este aprins a doua . 7
Fig. 4.4 Schema logic a numrtorului cresctor cu dou cifre BCD
cifr. Frecvena suficient de mare a ceasului comparativ cu persistena pe retin a imaginii creaz iluzia afirii simultane a celor dou cifre, dei ele sunt afiate pe rnd, procedeu care se numete multiplexare n timp (vezi pagina 5/7 din anex). V putei convinge de acest lucru micornd frecvena ceasului din poteniometrul multitur. Frecvena mare a ceasului este divizat n continuare de 1024 ori, folosind un numrtor cu 8 bistabile, cu simbolul CB8RE, i unul cu 2 bistabile, cu simbolul CB2RE, conectate n cascad. Semnalul rezultat este cel care se aplic celor dou numrtoare BCD de tipul CD4CE, care numr n sens cresctor. Ieirile acestor numrtoare se aplic pe rnd, prin multiplexare, unui decodificator BCD-7segmente realizat cu pori, pentru c aceast funcie nu exist n biblioteca de simboluri a programului folosit de noi.
4.6. ncercai s realizai un proiect nou, construind o nou schem logic ntr-un fiier *.sch i s parcurgei toate procesele necesare implementrii n CPLD. nainte de lansarea procesului Configure Device (iMPACT) cerei acordul cadrului didactic pentru reprogramarea circuitului XCR3064XL.