Sunteți pe pagina 1din 10

Facultatea de Automatica și Calculatoare

Simulare Aplicație Tazz

Îndrumător: Studenți: Oșvat Sergiu Șerban


Fleger Dan Grupa: 30215

27.05.2022
Cuprins

1.Rezumat.............................................................................................................................................2
2. Introducere.......................................................................................................................................3
2.1 Obiectivul proiectului................................................................................................................3
3. Fundamentare teoretică..................................................................................................................4
3.1 Utilizarea FPGA-urilor.............................................................................................................4
3.2 Utilizarea modului Bluetooth(UART)......................................................................................5
4. Proiectare și implementare.............................................................................................................6
4.1 Cerințe........................................................................................................................................6
4.2 Organigramă și funcționalitate.................................................................................................7
4.2 Implementarea hardware..........................................................................................................8
5.Concluzii............................................................................................................................................9
6.Bibliografie......................................................................................................................................10

2
1.Rezumat

Proiectul de față realizează o simulare a aplicatiei Tazz prin care un om poate


să își aleagă un fel de mâncare care să îi fie livrat acasă cu posibilitatea de a vedea în
timp real progresul comenzii pe telefon printr-un modul bluetooth. Proiectul este
destinat folosirii pe un FPGA și a fost creat in VHDL.

3
2. Introducere

2.1 FPGA și VHDL

Un FPGA (Field Programmable Gate Array) este un circuit integrat digital


configurabil, de către utilizator, după ce a fost fabricat (spre deosebire de dispozivele
a căror funcție este implementată in procesul de fabricație). FPGA este un tip de
circuit logic programabil. Configurarea FPGA se face, în general, cu ajutorul unui
limbaj de descriere hardware HDL, similar cu cel folosit pentru dispozivele ASIC,
dezvoltându-se recent și compilatoare care traduc instrucțiuni din limbajul C în
limbaje HDL. Un astfel de compilator este Impulse C. FPGA-urile sunt alcătuite din
blocuri logice configurabile (programabile) legate între ele de o serie de conexiuni
configurabile la rândul lor.
VHDL (abrevierea VHSIC HDL) este acronimul folosit pentru Very High
Speed Integrated Circuit Hardware Description Language.
Este vorba despre un limbaj de descriere a hardware-ului (Hardware
Description Language -HDL), destinat descrierii comportamentului și/sau arhitecturii
unui "modul" electronic logic, cu alte cuvinte al unei funcțiuni logice combinatorii
și/sau secvențiale. Alături de Verilog, este cel mai utilizat limbaj de proiectare a
sistemelor electronice digitale. E una din uneltele principale pentru proiectarea
circuitelor integrate moderne, aplicat cu succes în câmpul microprocesoarelor (DSP,
acceleratoare grafice), în telecomunicații (TV, celulare), automobile (navigație,
sisteme de control al stabilității) și altele.

4
3. Fundamentare teoretică

3.1 Utilizarea FPGA-urilor

FPGA-urile pot oferi o serie de avantaje față de o tehnologie ASIC cu funcție


fixă, cum ar fi celulele standard. În mod normal, ASIC-urile necesită luni de fabricare
și costul acestora va fi de mii de dolari pentru a obține dispozitivul. Dar, FPGA-urile
sunt fabricate în mai puțin de o secundă, costul va fi de la câțiva dolari până la o mie
de dolari. Natura flexibilă a FPGA vine la o zonă de cost semnificativă, consum de
energie și întârziere. În comparație cu o celulă ASIC standard, un FPGA necesită o
suprafață de 20 până la 35 de ori mai mare, iar performanța vitezei va fi de 3 până la 4
ori mai lentă decât ASIC. Acest articol descrie despre elementele de bază FPGA și
modulul de arhitectură FPGA care include I / O pad, blocuri logice și matrice de
comutare. FPGA-urile sunt câteva dintre noile zone de trend ale VLSI. Prin urmare,
acestea sunt utilizate în Proiecte bazate pe VLSI pentru studenții de inginerie
electronică .

Cadrele de învățare profundă continuă să evolueze, ceea ce face dificilă


proiectarea hardware-ului personalizat. Dispozitivele reconfigurabile, cum ar fi
matricile de poartă programabile pe câmp (FPGA), fac mai ușoară evoluția hardware-
ului, a cadrelor și a software-ului unul lângă celălalt .
Microsoft a folosit cipuri FPGA pentru a accelera inferența. Aplicarea FPGA la
accelerarea AI a motivat Intel să dobândească Altera cu scopul de a integra FPGA în
procesoarele serverului, care ar putea să accelereze AI, precum și sarcini de scop
general.

3.2 Utilizarea modului Bluetooth(UART)

Un UART este un dispozitiv utilizat pentru comunicarea în serie asincronă.


Acesta constă din două linii pentru transmiterea datelor, RX și TX, câte una în fiecare
direcție. Uneori sunt incluse linii suplimentare pentru controlul fluxului de date, cel
mai frecvent RTS (Ready To Send) și CTS (Clear To Send). Viteza de transmisie,
marimea datelor, paritatea și controlul fluxului sunt configurabile și trebuie setate la
fel pentru ambii corespondenți UART.

5
Figura de mai jos arată încadrarea datelor pentru o transmisie. În absența
comunicării, linia este menținută ridicată pentru a indica faptul că aceasta și
transmițătorul nu sunt deteriorate. O tranzacție începe cu un bit de start. Urmează
fluxul de date. Apoi vine un bit paritate opțional, care poate fi configurat la paritate
par, impar, sau nici o paritate. În cele din urmă, un bit de oprire încheie transmisia.

Comunicarea poate fi simplex, semi-duplex sau duplex. În această componentă,


liniile de transmisie și recepție funcționează independent. În timp ce acest lucru face
componenta duplex complet, acesta poate funcționa, de asemenea, fie ca simplex sau
semi-duplex dacă este programată de utilizator pentru a face acest lucru.
Când se apeleaza intrarea tx_ena, datele din tx_data sunt stocate într-un registru
de schimburi interne. În acest moment, bitul parității este, de asemenea, calculat
folosind logica XOR și stocat în același registru de schimbare, împreună cu biții de
pornire și oprire. Pulsul baud permite apoi periodic ceasului sistemului să deplaseze
conținutul registrului la linia tx la rata baud. Ieșirea tx_Busy indică utilizatorului când
transmisia este completă și circuitele sunt gata să accepte date noi pentru a le trimite.
Circuitele de recepție monitorizează intrarea rx la fiecare puls. Dacă detectează
un nivel scăzut de logică, începe să numere și recunoaște un bit de pornire primit
odată ce detectează un număr suficient de intrări scăzute consecutive. În acest
moment, începe să schimbe valoarea liniei rx într-un registru de schimburi la rata de
baud, obținută prin numărarea impulsurilor de “oversampling”.
Odată ce întregul flux de date este mutat în registru, circuitele de primire
verifică paritatea datelor folosind logica XOR. Apoi scot datele primite de pe portul
rx_data și semnalează orice eroare detectată pe portul rx_error. O tranziție “high-low”
pe portul rx_Busy notifica utilizatorul că s-au trimis datele.

6
4. Proiectare și implementare

4.1 Cerințe

Descriere: să se dezvolte o aplicație/sinteza de circuit care va simula o aplicație


prin care se poate comanda mâncare. Utilizatorul va avea acces la un meniu prin care
va plasa comanda ( eventual pe placuță) și în urma confirmării va avea posibilitatea de
a urmări comanda “real-time” pe telefon prin bluetooth.
Cerințe funcționale:
1. Buton de reset, reset total
2. Buton de start, power on/off sau start aplicație/comandă, în urma apăsării
începem deja să ne jucăm cu meniul
3. FSM-uri pentru logica meniului
4. Controller/Interfață bluetooth, protocol de comunicație SPI/UART sau UART
5. Animație logică în caz că s-a plasat o comandă, se va afișa prin bluetooth pe
terminal
Se pot face codificări pe SSD-uri și cu switch-uri să alegem ce vrem, apăsăm pe un
buton pentru confirmare si plasare comandă, începe transmisia pe bluetooth și vedem
în terminal pe telefon “animația”.
Cerințe non-funcționale:
 Implementare pe o placuță nexys 4 sau basys 3
 Utilizare butoane, switch-uri, SSD-uri
 Utilizare modul bluetooth
 Telefon mobil cu bluetooth și aplicație terminal tip bluetooth

7
4.2 Organigramă și funcționalitate

Apăsând butonul de start, utilizatorul ajunge în meniu de unde cu ajutorul switch-


urilor poate să își aleagă mâncarea dorită. În cazul în care utilizatorul se răzgândește,
poate apăsa butonul de reset, stergându-se selecția anterioară. După ce utilizatorul a
decis ce va comanda, la apăsarea butonului de confirmare, se trimit date prin modulul
bluetooth catre telefon unde va vedea o animație a comenzii.

8
4.2 Implementarea hardware

În figura de mai jos se poate observa schema bloc a proiectului, obținută cu


ajutorul programului Vivado.

9
5.Concluzii

Pe baza acestui proiect, se poate continua dezvoltarea pentru extinderea


functionalitatii (implementarea unei interfațe grafice, implementarea unui modul gps,
implementarea mai multor optiuni de mâncare).

6.Bibliografie

1. https://www.xilinx.com/products/silicon-devices/fpga/what-is-an-fpga.html
2. https://forum.digikey.com/t/uart-vhdl/12670
3. https://ro.jf-parede.pt/basics-fpga-architecture
4. https://www.hwlibre.com/ro/fpga/
5. https://www.nandland.com/vhdl/modules/module-uart-serial-port-rs232.html

10

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