Sunteți pe pagina 1din 18

FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE

DEPARTAMENTUL CALCULATOARE

Proiect VHDL:
Reclamă publicitară
cu animații multiple
-FPGA Basys 3 -

Mai 2019
Cuprins

Specificație proiect...........................................................................................................................2
Enunțul problemei......................................................................................................................2
Informații de bază despre Basys 3............................................................................................2
1. Schema bloc a sistemului..........................................................................................................4
1.1. Cutie neagră.....................................................................................................................4
1.2. Schema bloc......................................................................................................................4
2. Listă componente folosite.........................................................................................................6
2.1. Memoria ROM.................................................................................................................6
2.2. Afișor pe 7 segmente (SSD-Seven Segment Display)....................................................6
2.3. Divizor de frecvență.........................................................................................................9
2.4. Compomenta principală..................................................................................................9
2.5. Multiplexorul 4 : 1.........................................................................................................10
2.6. Registrul de deplasare...................................................................................................11
2.7. Animațiile.......................................................................................................................11
2.8. Compomenta placuței....................................................................................................14
3. Justificarea soluției alese.........................................................................................................15
4. Instrucțiuni de utilizare...........................................................................................................15
5. Posibilități de dezvoltare ulterioară.........................................................................................16
Bibliografie & Webografie.............................................................................................................17

Specificație proiect

1
Enunțul problemei

A9) Să se proiecteze o reclamă publicitară cu animaţii multiple. Se vor folosi


afişajele cu 7 segmente. Textul de afişat va fi format din simboluri ale unui alfabet
disponibil. Reclama va avea mai multe regimuri de funcţionare (minimum 4) ce
vor putea fi selectate de către utilizator, de la comutatoarele plăcuţei cu FPGA. Se
va folosi oscilatorul de cuarţ încorporat în plăcuţa cu FPGA (semnalul de clock
respectiv va trebui desigur să fie divizat). Exemple de regimuri de funcţionare:
„curgerea” scrisului de la dreapta spre stânga, pâlpâire, afişaj literă cu literă etc.

Deoarece pe un afişaj cu 7 segmente nu se pot reprezenta toate literele, se va


crea un alfabet maximal şi mesajele vor fi compuse din simbolurile acelui
alfabet. Mesajul va fi conţinut într-o memorie ROM pentru a putea fi uşor
schimbat. Proiectul va fi realizat de 1 student.

Informații de bază despre Basys 3

Basys3 este un program de dezvoltare digitală complet, gata de utilizat, care


se bazeaza pe cea mai recentă arhitectură de porți programabilă Fieldbus
Programmable (FPGA) Artix-7 ™ de la Xilinx.

FPGA Artix-7 este optimizată pentru o logică de înaltă performanță și oferă


o capacitate mai mare, performanță mai mare și mai multe stări decât modelele
prcedente.

Include:

 33.280 de celule logice în 5.200 de slices

2
 1.800 Kbits de memorie RAM rapidă;
 Viteza clock-ului intern depășește 450MHz;

Caracteristici I / O:

 16 întrerupătoare
 5 butoane
 4 segmente de afișare LED pe 7 segmente
 ieșire VGA de 12 pini.
 un port USB-JTAG pentru programarea și comunicarea FPGA.

Programarea acestei plăcuțe se face în mediul de programare VIVADO Design


Suite, oferit de XILINX, utilizând VHDL ca limbaj de programare.

3
1. Schema bloc a sistemului

1.1.Cutie neagră

Pentru acest automat avem 4 intrări reset, semnalul de tact, schimareCuvant,


schimbareMod și ieșirea se face pe 4 cifre BCD 7 segment.

1.2.Schema bloc

În schema alăturată este prezentată interconetare componentelor folosite în


schema detaliată.

4
Pe baza informațiilor cunoscute s-a realizat reclama cu animații multiple. Am utilizat ca
mediu de simulare Active-HDL , apoi am realizat pe placă proiectul cu ajutorul mediul de
programare VIVADO care permite menţinerea evidenţei fiecărui conexiuni în parte,
monitorizând toate componentele şi respectiv semnalele de tact care sunt legate de compnenta
respectivă.

5
2. Listă componente folosite

2.1. Memoria ROM


Am creeat o memorie ROM pentru a afișa cuvintele. Fiecare cuvânt are maxim 4 litere.
Fiecare literă dispune de o codificare pe câte 5 biți. Pentru a schimba cuvintele pe care dorim
să le afișăm vom utiliza adresele distincte la care sunt memorate și cele 2 comutatoare de pe
placa SW1 și SW0. Bineînteles că pentru utilizator există și opțiune a de modifica conținutul
memoriei și implicit cuvântul ales. Acestea se pot realiza direct în codul VHDL.

2.2.Afișor pe 7 segmente (SSD-Seven Segment Display)


Basys 3 este dotată cu un afișor de 7 segmente pe care se pot afișa 4 caractere.
Ansamblul folosește câte șapte leduri pentru a afișa fiecare simbol în parte, fiecare dintre
ele este activată de un semnal de anod. Semnalele cuplajului sunt ative pe zero logic.
Catozii controlează led-urile care se aprind pentru fiecare caracter cara are semnale de
anod activ.(dacă sunt active mai multe anoduri, atunci se va afișa caracterul pe toate cele
active).

Așadar, afișarea a patru caractere distincte pe afișor necesită implementarea unui


circuit care să trimită aceste simboluri pe semnalele de catod conform cu diagrama de
timp (Fig.1 ) . Reîmprospătarea este calculată în așa fel încât ochiul uman sa nu
înregistreze aprinderea sau stingerea succesivă a fiecarei cifre de pe afișor. Prin urmare se
execută o afișare ciclică a cifrelor(se afișează doar o cifră la un moment dar, deși ochiul
uman nu distige acest aspect.

6
(Fig. 1)

Următoarea schemă relevă implementare circuitului pentru afișare pe afișor.


Intrările sunt 4 semnale pe 4 biți(caracterele care trebuie afișate) și semnalele de tact ale
placutei; ieșirile sunt reprezentete de semnalele de anod și catod, toare active pe zero.

7
În SSD vom codifica alfabetul ce urmează a fi folosit în scriera cuvintelor.

---------------------HEX TO 7 SEG
with HEX SELECT
CAT<= "1111111" when "00000", --SPACE
"0001000" when "00001", --A
"0000011" when "00010", --b
"1000110" when "00011", --C
"0100001" when "00100", --d
"0000110" when "00101", --E
"0001110" when "00110", --F
"0000010" when "00111", --G
"0001001" when "01000", --H
"1111001" when "01001", --I
"1100001" when "01010", --J
"0001111" when "01011", --k
"1000111" when "01100", --L
"1000000" when "01101", --O
"0001100" when "01110", --P
"0101111" when "01111", --r
"0010010" when "10000", --S
"1000001" when "10001", --U
"1100011" when "10010", --v
"0100100" when "10011", --Z
"1111111" when "11111", -- NONE
"1111111" when others;

8
2.3.Divizor de frecvență

Deoarece semnalul de tact al plăcii este extrem de rapid, este irealizabil pentru
ochiul uman să poată observa afișarea cuvintelor. În acest scop vom folosi un divizor al
frecvenței făcunt cu un numărător care numără de 100.000.000 ori clock-ul plăcuței și
abia apoi îl schimbă, timpul dezvoltat dintre cele 2 afișari a devenit de aproape 2 secunde,
făcandu-se o distingere clară a fondului.

2.4.Compomenta principală

Este necasar sa reținem că în entitatea componentei Main o să fie pe


porturile declarate switch-urile pentru cuvintele de publicat, modurile de afișare ale
acestora si o ieșire(output), cu ajutorul căreia vom afișa cuvântul în timp ce se
modifică. Memoria creată si divizorul de frecvență se regăsesc ca și componente in
Main, ulterior fiind portmapate. Printr-un proces se pot modifica afișările pe placă.

9
2.5.Multiplexorul 4 : 1
Multiplexor este practic în alegere animației dorite din cele patru.
Utilizatorul poate alege acesta efectiv prin operarea cu două comutatoare de
două poziții din cele 16 disponibile ale placii FPGA (în cazul nostru SW15 si
SW14).

10
2.6.Registrul de deplasare
Registrul de deplasare are rol în relizarea deplasării literelor textului care
trebuie afișat într-o direcție aleasă de către utilizator.

2.7.Animațiile

1) Static

Prin folosirea stării statice se poate obtine animația dorită., pentru a selecta
animația în discuție se va selecta pe switch-uri 00 logic.

2) Afișare secvențială

Prin încărcarea secvențială în registru a caracterelor se poate obtine animația


dorită, astfel încât și cele aprinse anterior sa iși păstreze stare. Pozițiile rămase
neaprinse iau valoarea de 1 logic pe toți catozii, pentru a selecta animația în discuție se
va selecta pe switch-uri 01 logic.

11
3)Pâlpâie

Următorul mod de afișare se comportă astfel; conțiutul cerut este încărcat pe afoșor cu
ajutorul semnalului”appear”. Dacă acest semnal ia valoare de zero, pe placă nu este afișat nimic,
iar când acesta ia valoarea de „1” se va adăuga întreg conținutul pe placuță, pentru a selecta
animația în discuție se va selecta pe switch-uri 10 logic.

12
4) Afișare câte două litere

Pentru ultima animație se procedează aproximativ cum s-a proedat la a doua.


Încărcăm concomitent câte două caractere în registru, celelalte două neputând fi
văzute, pentru ca am atribuit catozilor valoare de 1 logic, pentru a selecta animația în
discuție se va selecta pe switch-uri 11 logic.

13
2.8. Compomenta placuței
Proiectul propriu-zis se relizează in componenta plăcuță. Main-ul si
Afșorul vor fi și ele componente, urmând să fie portmapate. Se execută afișarea
efectivă și finalul tuturor modurilor de afișare codate si prelucrate până atunci
prin urmare se poate pune întregul proiect pe placa FPGA.

14
3. Justificarea soluției alese

În dezvoltarea acestui sistem a fost aleasă metoda cea mai simplă și mai eficace.

 Utilizarea exclusivă a memoriei ROM


 Un singur semnal de tact(al plăcuței divizat)
 Un registru unde se rețin toate afișările fiecărei animații
 Expunerea elegantă pe 7 segmente

Pentru că a afost un proiect complex, acesta a fost conceput, conturat și împărțit


pe componente, fiecare destinată unei operații singulare. Denumirile au fost
alese cât mai simple și mai semnificative pentru a facilita buna cunoaștere și
controlare a codului. Toate aspectele menționate mai sus justifică acestei
rezolvări teoretice și practic folositoare.

4. Instrucțiuni de utilizare

15
La începerea proiectului tuturor switch-urilor pe care le vom utiliza de pe
placă le atribuim valoare de ” 00” logic. Primul cuvânt din memoria ROM este
adăugat și afișat pe 7 segmente, în primul mod de animație – shiftare dreapta

Când vrem sa vedem un alt cuvânt total distinct din memorie, selectăm o
valoare din intervalul 0-3, codificată în binar, de pe sw1 si sw0. Se poate selecta
orice cuvânt,indiferent de oridinea în memorie. Selecția unei animații se poate
face în orice moment prin selecția unuia dintre cele patru modurile de afișare
cărora le-au fost dedicate switch-urile sw15 și sw14 a unei valori din intrvalul
0-3, de asemenea codificate în binar.

În acest mod, în permanență va exista câte un cuvânt afișat într-un


oarecare mod pe afișorul de 7 segmente, fără periclitări cum ar fi oprirea
nemotivată sau simple întreruperi.

5. Posibilități de dezvoltare ulterioară

 Includere unor cuvinte de dimensiune mai mare


 Animații mai laborioase care să capteze mai puternic atenția
 Inserarea mai multor cuvinte pentru a transmite un mesaj mai complex

16
Bibliografie & Webografie

1. Limbajul VHDL, Îndrumător de laborator, O. Creţ, L. Văcariu, Ediţia a 3-a, Ed.


U.T. Press, Cluj-Napoca, 2007.
2. Analiza şi sinteza dispozitivelor numerice, Îndrumător de laborator, L. Văcariu, O.
Creţ, Ediţia a 3-a, Ed. U.T. Press, Cluj-Napoca, 2009.
3. Proiectarea sistemelor numerice folosind tehnologia FPGA, S. Nedevschi, Z.
Baruch, O. Creţ, Ed. Mediamira, Cluj-Napoca, 1999
4. https://en.wikipedia.org/wiki/Seven-segment_display
5. https://www.fpga4student.com/2017/08/vhdl-code-for-clock-divider-on-fpga.html

17

S-ar putea să vă placă și