Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
LABORATOR nr. 3
Introducere n limbajul de programare VHDL. Prezentarea sistemului de dezvoltare Cyclone III Starter Kit. Mediul de programare Quartus II.
1. Scopul laboratorului
n acest laborator se vor prezenta elementele fundamentale legate de limbajul de descriere hardware VHDL: scurt istoric, definiii, avantaje i dezavantaje, principalele caracteristici.
2. Consideraii teoretice
2.1. VHDL scurt istoric
La ora actual exist dou limbaje foarte importante de descriere a hardware-ului, care au fiecare susintorii lor aprigi; unul dintre ele se numete VHDL iar cellalt Verilog. VHDL este prescurtarea a dou prescurtri: Vhsic HDL, unde VHSIC nseamn ``Very High Speed Integrated Circuits''. Verilog vine de la ``VERifying LOGic'', dar limbajul este folosit nu numai pentru a simula i verifica circuite logice (cum a fost conceput iniial, i dup cum arat numele su), ci i pentru a le proiecta i implementa (sintez hardware hardware synthesis). Cele dou limbaje sunt relativ similare ca putere de expresie, dar incompatibile ntre ele. Sunt de asemenea destul de diferite de celelalte limbaje obinuite de programare: n limbajele HDL programatorul exprim un circuit ca o colecie de sub-circuite care opereaz n paralel (paralelismul este explicit n program). Variabilele sunt semnale electrice, iar operaiile descriu unitile funcionale. Nu exist funcii recursive, structuri de date complicate sau manipulare dinamic a memoriei (malloc/new/free). VHDL nu este un limbaj de programare ci un limbaj de descriere a sistemelor electronice hardware pornind de la structura lor modular i de la interconexiunile dintre acestea. El a fost definit i integrat n rndul instrumentelor de CAD (Computer-Aided Design) din domeniul electronicii, pentru a introduce o metodologie riguroas de proiectare n ciclul de dezvoltare al sistemelor hardware. VHDL a devenit un limbaj industrial standardizat, utilizat pentru descrierea hardware de la nivelul abstract pn la nivelul concret. VHDL a fost rapid asimilat ca un mediu universal de comunicaie n proiectare. Toi productorii de staii de lucru i de software CAE (Computer-Aided Engineering) i standardizeaz produsele pentru a avea intrri i ieiri standard VHDL. Aceste produse includ software pentru simulare, sintez i trasare de cablaj imprimat. Limbajul provine din programul VHSIC (Very High Speed Integrated Circuit) iniiat de Departamentul Aprrii din Statele Unite ale Amercii n 1980. n faa importantei creteri a complexitii sistemelor electronice i mai ales a costurilor de ntreinere rezultante, s-a fcut simit nevoia apariiei unui limbaj modern i standardizat.
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR Efortul de standardizare a fost ealonat ntre anii 1983 i 1987 sub egida DOD (Departamentul Aprrii al S.U.A). De atunci, VHDL este supervizat de grupul american VASG (VHDL Analysis and Standardisation Group), care face la rndul lui parte din IEEE.
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR Obiectivul unui limbaj de progamare l constituie descrierea unei execuii a unui program, n vreme ce un limbaj precum VHDL are ca obiectiv descrierea structurii hardware a unui sistem. Partea de hardware are o structur fix a crei stare logic evolueaz n decursul timpului. Aceast evoluie face parte din descrierea VHDL a sistemului. Se poate spune c un program VHDL are o structur fix i o execuie evolutiv. Deosebirea esenial const n faptul c programul este secvenial, n vreme ce descrierea hardware este concurent. Aceasta este o problem de interpretare a codului: este posibil s se dea o descriere hardware cu ajutorul unui limbaj de programare modificnd semantica limbajului. O deosebire major ntre un limbaj de programare i un limbaj de descriere pur structural este separarea elementelor lor constructive de baz: sub-programul n cazul limbajului algoritmic, i componenta n cazul limbajului de descriere. Sub-programul este apelat la un anumit moment dat, i ndeplinete misiunea, apoi este oarecum uitat. Componenta exist n sine, cci o descriere hardware la nivel structural este n afara timpului. Componentele unui sistem exist n mod static i funcioneaz n mod concurent. De fapt, timpul nu intervine dect n partea flux de date (sau comportamental ) a unui asemenea limbaj, care permite scrierea unei instruciuni de genul: lui A i se atribuie valoarea 0, apoi, dup 10 ns, valoarea 1, apoi dup nc 5 ns valoarea 0 etc.
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR realizarea unei componente a produsului foarte trziu n cadrul ciclului de proiectare fr a genera o adevrat catastrof (cum era cazul pn la apariia acestui gen de limbaj).
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR configuraie VHDL, ultima categorie de unitate de proiectare care poate fi gsit ntr-o bibliotec VHDL.
VHDL nu face deosebirea dintre literele mari i mici: SALUT este identic cu salut sau SaluT.
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR VHDL manipuleaz o mare diversitate de obiecte: semnale, pachete, procese etc., desemnate prin numele lor. Regulile de denumire sunt aceleai pentru toate aceste obiecte: numele lor este alctuit dintr-o serie de caractere alfanumerice (cele 26 de litere ale alfabetului), numerice (cele 10 cifre zecimale) sau din caracterul _. Sunt excluse caracterele ASCII speciale; primul caracter trebuie s fie o liter; caracterul _ nu are voie s se afle la sfritul unui nume, nici s apar de dou ori consecutiv; numele nu are voie s fie un cuvnt VHDL rezervat; lungimea oricrui nume nu poate depi o linie. Aceast toleran permite atribuirea de nume explicite, preferate de obicei n locul abrevierilor. Caracterul _ este adeseori utilizat ca separator pentru numele compuse. n VHDL exist cuvinte cheie ce nu pot fi utilizate ca identificatori: abs all assert body component downto entity function guarded inertial library map next of others postponed pure reject rol signal sra to units wait xnor acces and attribute buffer configuration else exit generate if inout linkage mod nor on out procedure range rem ror shared srl transport until when xor after architecture begin bus constant elsif file generic impure is literal nand not open package process record report select sla subtype type use while alias array block case disconnect end for group in label loop new null or port proctected register return severity sll then unaffected variable with
Literalii sunt valori explicite atribuite diferitelor obiecte: constante, variabile, atribute etc. Notaia lor difer n funcie de tipul obiectelor crora li se aplic: numere ntregi zecimale: este cazul cel mai simplu, folosindu-se notaia zecimal obinuit, fr simboluri suplimentare. De exemplu, 22 sau 1971. Exist posibilitatea includerii caracterului _ pentru ameliorarea lizibilitii, fr nicio alt consecin: 1_999_234 este identic cu 1999234. Caractere: se scriu ntre apostrofuri simple: A, %, f, (spaiu). Caracterele acceptate sunt cele din setul ASCII. Atenie, literele mari i cele mici sunt diferite atunci cnd este vorba despre valori literale: D nu este identic cu d. iruri de caractere: se scriu ntre ghilimele. Iat cteva exemple: salut, Salut (aceste dou valori literale sunt diferite), 1001, E*. Un ir de caractere se poate 6
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR obine prin concatenarea mai multor iruri cu ajutorul operatorului &: Totul & este & minunat este echivalent cu Totul este minunat. Aceast posibilitate permite ndeosebi utilizarea mai multor linii pentru definirea unui ir, de exemplu: Totul & este & minunat; Operaia de concatenare n sine nu adaug niciun spaiu va trebui deci urmrit cu atenie prezena spaiilor n irurile care urmeaz s fie concatenate. Biii: se utilizeaz notaia caracterelor. Biii pot avea ca valori numai 0 i 1. Tipul STD_LOGIC utilizeaz n plus valorile U, X, H, L, W, Z i -. Vectori de bii: utilizeaz notaia irurilor de caractere, constituite din simbolurile 0 i 1: de exemplu, 10011010. Sistemul de numeraie implicit este cel binar, dar este posibil utilizarea notaiei octale sau hexazecimale prin prefixarea irului: O127, X01AC. Spaiile nu sunt semnificative, cu excepia apariiei lor n valorile literale i n cazurile de separarea a identificatorilor. Ele nu sunt necesare ntre identificatori i simboluri. Urmtoarele dou linii sunt corecte i echivalente: A <= B and C; A<= B and C ;
O instruciune se poate ntinde pe mai multe linii, att timp ct sfritul de linie nu este plasat n mijlocul unui identificator, al unui simbol de operator sau al unui literal. A <= B when C = 0 else D; Se poate scrie i: A <= B when C = 0 else D; Sfritul unei instruciuni este semnalat de prezena caracterului ;.
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR Limita descompunerii ierarhice poate depinde de numrul de intrri i de ieiri ale componentelor terminale, precum i de dimensiunea i de complexitatea codului fiecrei componente. Acest criteriu se reduce aadar la izolarea corect a funcionalitilor, astfel nct acestea s fie pe ct posibil independente unele fa de celelalte. Un alt criteriu de descompunere local l poate constitui separarea ntre partea de control i cea de prelucrare a datelor, numit i cale de date (data path). Felul n care se va face n cele din urm descompunerea depinde la modul esenial de experiena proiectantului i de familiarizarea sa cu problema de rezolvat.
Fig. 1. Sistemul de dezvoltare Altera Cyclone III Starter Kit Circuitul FPGA Altera Cyclone III EP3C25F324 conine urmtoarele elemente: 25K de elemente logice (LE), 66 blocuri de memorie M9K (0,6 Mbit), 16 blocuri de multiplicare de 18x18, 4 PLL-uri i 214 pini de I/O. Sistemul de management al ceasului are un oscilator de 50 MHz, din care 8
UNIVERSITATEA TEFAN CEL MARE SUCEAVA FACULTATEA DE INGINERIE ELECTRIC I TIINA CALCULATOARELOR se obin, cu ajutorul PLL-urilor, ceasul pentru memoria DDR, pentru memoria SSRAM i pentru memoria FLASH. Conectorul HSMC asigur tensiuni de 12V i 3,3V pentru plcile de extensie i ofer pn la 84 pini de I/O pentru comunicaii. Pentru interfaa cu utilizatorul, sistemul de dezvoltare ofer 4 LED-uri programabile de ctre utilizator, 2 LED-uri specifice plcii, buton pentru reset, buton pentru reconfigurare i 4 butoane de uz general.
4. Desfurarea lucrrii
3.1. Se va descrca de pe internet mediul de dezvoltare Quartus II i se va instala pe calculatoare, apoi se va lansa n execuie. 3.2. Se va urmri tutorialul mediului de dezvoltare Quartus II. 3.3. Se va consulta documentaia on-line referitoare la utilizarea editorului, a simulatorului i a compilatorului de fiiere VHDL. 3.4. Se va consulta on-line documentaia sistemului de dezvoltare cu FPGA Altera Cyclone III Starter Kit.