Proiect 2: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
mFără descriere a modificării
Fără descriere a modificării
 
(Nu s-au afișat 45 de versiuni intermediare efectuate de alți 3 utilizatori)
Linia 1: Linia 1:
'''Proiect 2''' reprezintă disciplina care propune studenților desfăşurarea unei activități de proiectare pentru a realiza implementarea unui sistem digital specific unei aplicații date pe un circuit configurabil FPGA.
'''Proiect 2''' reprezintă disciplina care propune studenților desfăşurarea unei activități de proiectare și implementare a unui sistem digital specific unei aplicații date, pe un circuit configurabil FPGA.


== Scopul activității de proiect ==
== Scopul activității de proiect ==
Activitatea de proiect are ca scop crearea unui cadru organizat, susținut de un îndrumător didactic, în care studenții să aplice cunoştințele dobândite anterior în cadrul cursului "Circuite Integrate Digitale" şi în cadrul laboratorului asociat acestuia pentru a lua decizii raționale asupra diferitelor aspecte ținând de activitatea de proiectare a unui circuit digital ce implementează o funcționalitate specificată.
Activitatea de proiect are ca scop crearea unui cadru organizat, susținut de un îndrumător didactic, în care studenții să aplice cunoştințele dobândite anterior în cadrul cursului "Circuite Integrate Digitale" şi în cadrul laboratorului asociat acestuia pentru a lua decizii raționale asupra diferitelor aspecte ținând de activitatea de proiectare a unui circuit digital ce implementează o funcționalitate specificată. Proiectul dorește să stimuleze următoarele trăsături ale studentilor:
* Gândirea creativă, pentru găsirea de soluții tehnice la probleme specificate din punct de vedere funcțional
* Lucrul în echipă și spiritul organizatoric
* Spiritul antreprenorial și competitivitatea


== Regulile proiectului ==


== Descrierea temei de proiectare ==
# Studenții vor forma echipe de maxim 5 persoane, care vor colabora pentru implementarea temei de proiect.
Temele propuse în cadrul disciplinei Proiect 2 vizează implementarea pe un circuit configurabil FPGA a unui sistem digital specific şi a controller-elor specializate (e.g. keyboard controller, video display controller) care realizează interfațarea acestuia cu dispozitive periferice de intrare (tastatură, mouse) şi cu dispozitive periferice de ieşire (monitor).
# Fiecare echipă va numi un reprezentant, dintre membrii săi, care va fi responsabil cu anumite sarcini organizatorice și de comunicare între echipă și cadrul didactic.
Sistemul digital specific propus pentru temele de proiectare se încadrează în domeniul emulării/simulării proceselor fizice şi a mediului fizic. Alegerea implementării funcționalității date, sub forma unui sistem digital specific sau a unui procesor de complexitate scăzută, este realizată de îndrumătorul didactic, acesta sugerând şi o arhitectură corespunzătoare.
# Tema de proiect va fi divizată de către cadrul didactic în sarcini, ce vor fi prezentate membrilor echipei la fiecare întâlnire de proiect. Astfel, fiecare membru al echipei va realiza minim o sarcină în intervalul dintre două întâlniri de proiect. Alocarea sarcinilor către fiecare coechipier se realizează de către membrii echipei prin consens.
# Membrii echipei vor submite rezolvările sarcinilor alocate printr-un sistem de versionare a codului. Reprezentantul echipei are responsabilitatea de a organiza sistemul de versionare conform indicațiilor cadrului didactic.
# Membrii echipei vor fi notati pentru codul submis înainte de termenul limită (următoarea întâlnire de proiect).  
## Dacă sarcina alocată nu este îndeplinită până la expirarea termenului limită, atunci sarcina poate fi realocată unui alt membru al echipei.
## Dacă a realizat și submis codul aferent sarcinii alocate, un membru al echipei poate cere alocarea unei sarcini suplimentare din lista de sarcini în așteptare
## Îndeplinirea sarcinii va fi demonstrată prin submiterea unui modul de test împreună cu fiecare bloc funcțional implementat.


=== Lista temelor ===
== Descrierea Temei de Proiectare ==
* [[Proiect: Soft Square|Anul universitar 2011-2012]]
Se va proiecta și dezvolta o consolă de jocuri, ce va avea următoarele caracteristici:
 
*Jocuri ce vor fi implementate: Snake
*Control de la tastatură PS2 (tastatura va fi conectată la placa Nexys2)
*Afisare grafică prin VGA la rezoluția 800x600 (monitorul va fi conectat la placa Nexys2)
*Tabela de scor (folosind afișajul cu 7 segmente de pe placa Nexys2) ce va indica punctele acumulate și nivelul atins
 
[http://wiki.dcae.pub.ro/images/5/54/Proiect2SnakePRD.pdf Cerințe de proiectare]
 
[http://wiki.dcae.pub.ro/images/1/17/Proiect2SnakeArchitecture.pdf Arhitectura Impusă]
 
== [https://docs.google.com/spreadsheets/d/1p8w0kvnU5Es7UJkdlR8HiP32HaWOA5qvm81B-jnQWx8 Status] ==
 
== Resurse Utile ==
 
[http://www.digilentinc.com/data/products/nexys2/nexys2_rm.pdf Manual Nexys 2]
 
[http://tinyvga.com/vga-timing/800x600@72Hz Parametri VGA 800x600@72Hz]
 
[http://www.asic-world.com/verilog/veritut.html Tutorial Verilog]
 
[https://try.github.io Tutorial Git]
 
<!--
== Accesul în laborator ==
Laboratorul A410 este disponibil conform [http://dcae.pub.ro/orar_410.html orarului]. Pentru intervalele orare în care nu se desfășoară laboratoare CID, se pot face programări pentru a lucra în laborator. În mod obișnuit 1-2 posturi de lucru sunt disponibile în timpul fiecărui laborator CID, și pot fi folosite de studenți de la Proiect 2, cu acordul cadrului didactic prezent în laborator.




Linia 42: Linia 76:


== Rezultate de proiect ==
== Rezultate de proiect ==
Implementarea unui sistem digital se realizează prin parcurgerea unor etape succesive de descriere a funcționalității țintă. Punctul de pornire este reprezentat de cerințele clientului, în general expuse într-un limbaj comun, descriptiv care se supune însă deziteratelor de claritate şi concizie. De aceea, pe cât posibil, sunt favorizate descrierile prin formule matematice, tabele cu cerințe cuantizate şi figuri.


=== Specificațiile produsului ===
=== Specificațiile produsului ===
 
Procesul de proiectare a unui sistem digital reprezintă succesiunea de tranziții între descrieri din ce în ce mai detaliate, la fiecare tranziție ponderea descrierii comportamentale scăzând în favoarea descrierilor structurale. Prin specificațiile produsului se înțelege documentul care cuprinde caracteristicile pe care acesta e necesar să le posede pentru a îndeplini cerințele clientului.
 


=== Ghid de utilizare ===
=== Ghid de utilizare ===


=== Diagrama la nivel de blocuri componente ===
[[Fișier:313-103-10-8.png|frame|right|Exemplu de diagramă a blocurilor componente (Referința 1)]]
[[Fișier:313-103-10-8.png|frame|right|Exemplu de diagramă a blocurilor componente (Referința 1)]]


== Domeniul de aplicație ==
=== Diagrama la nivel de blocuri componente ===


=== Controllere video şi Unități de Procesare Grafică ===
Metodologia de proiectare "Top Down" presupune împărțirea sistemului digital în sub-sisteme, echivalentă descompunerii funcției de transfer a sistemului superior în sub-funcții de o complexitate mai redusă. Similar, din analiza specificației sistemului, se deduc specificațiile sub-sistemelor componente.


=== Fizică (elemente de teorie) şi Unități de Procesare Fizică === 
Diagrama la nivel de blocuri componente realizează reprezentarea grafică a structurii unui sistem, în mod tipic folosită pentru a oferi o percepție la nivel superior a implementării funcționalității sistemului.


<br style="clear: both" />
== Domeniul de aplicație ==


== Componente hardware ==
== Componente hardware ==


=== Placa de dezvoltare ===
=== Placa de dezvoltare ===
Placa de dezvoltare pusă la dispoziția studenților pentru verificarea implementării şi pentru prezentarea finală a proiectului este Nexys 2 ([[FPGA Spartan3E]]) produsă de [http://www.digilent.ro Digilent].
Placa de dezvoltare pusă la dispoziția studenților pentru verificarea implementării şi pentru prezentarea finală a proiectului este [[Nexys 2]] produsă de Digilent. Manual de utilizare: [http://www.digilentinc.com/Data/Products/NEXYS2/Nexys2_rm.pdf].


=== Tastatura PS/2 ===
=== Tastatura PS/2 ===
Dispozitivul periferic de intrare impus de cerințele proiectului este o tastatură conectată la placa de dezvoltare prin intermediului portului PS/2 ([[Automate. Tastatura PS2]]).
Dispozitivul periferic de intrare impus de cerințele proiectului este o tastatură conectată la placa de dezvoltare prin intermediului portului PS/2 ([[Automate]], [[Tastatura PS2]]).


=== Dispozitiv VGA ===
=== Dispozitiv VGA ===
Dispozitivul periferic de intrare impus de cerințele proiectului este un monitor LCD conectat la placa de dezvoltare prin intermediul portului VGA.
Dispozitivul periferic de intrare impus de cerințele proiectului este un monitor LCD conectat la placa de dezvoltare prin intermediul portului VGA.


== Referințe ==
== Referințe ==
Linia 74: Linia 113:


2. Xilinx Inc.: [http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/xst.pdf XST User Guide for Virtex-4, Virtex-5, Spartan-3, and Newer CPLD Devices]
2. Xilinx Inc.: [http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/xst.pdf XST User Guide for Virtex-4, Virtex-5, Spartan-3, and Newer CPLD Devices]
-->

Versiunea curentă din 28 aprilie 2015 07:14

Proiect 2 reprezintă disciplina care propune studenților desfăşurarea unei activități de proiectare și implementare a unui sistem digital specific unei aplicații date, pe un circuit configurabil FPGA.

Scopul activității de proiect

Activitatea de proiect are ca scop crearea unui cadru organizat, susținut de un îndrumător didactic, în care studenții să aplice cunoştințele dobândite anterior în cadrul cursului "Circuite Integrate Digitale" şi în cadrul laboratorului asociat acestuia pentru a lua decizii raționale asupra diferitelor aspecte ținând de activitatea de proiectare a unui circuit digital ce implementează o funcționalitate specificată. Proiectul dorește să stimuleze următoarele trăsături ale studentilor:

  • Gândirea creativă, pentru găsirea de soluții tehnice la probleme specificate din punct de vedere funcțional
  • Lucrul în echipă și spiritul organizatoric
  • Spiritul antreprenorial și competitivitatea

Regulile proiectului

  1. Studenții vor forma echipe de maxim 5 persoane, care vor colabora pentru implementarea temei de proiect.
  2. Fiecare echipă va numi un reprezentant, dintre membrii săi, care va fi responsabil cu anumite sarcini organizatorice și de comunicare între echipă și cadrul didactic.
  3. Tema de proiect va fi divizată de către cadrul didactic în sarcini, ce vor fi prezentate membrilor echipei la fiecare întâlnire de proiect. Astfel, fiecare membru al echipei va realiza minim o sarcină în intervalul dintre două întâlniri de proiect. Alocarea sarcinilor către fiecare coechipier se realizează de către membrii echipei prin consens.
  4. Membrii echipei vor submite rezolvările sarcinilor alocate printr-un sistem de versionare a codului. Reprezentantul echipei are responsabilitatea de a organiza sistemul de versionare conform indicațiilor cadrului didactic.
  5. Membrii echipei vor fi notati pentru codul submis înainte de termenul limită (următoarea întâlnire de proiect).
    1. Dacă sarcina alocată nu este îndeplinită până la expirarea termenului limită, atunci sarcina poate fi realocată unui alt membru al echipei.
    2. Dacă a realizat și submis codul aferent sarcinii alocate, un membru al echipei poate cere alocarea unei sarcini suplimentare din lista de sarcini în așteptare
    3. Îndeplinirea sarcinii va fi demonstrată prin submiterea unui modul de test împreună cu fiecare bloc funcțional implementat.

Descrierea Temei de Proiectare

Se va proiecta și dezvolta o consolă de jocuri, ce va avea următoarele caracteristici:

  • Jocuri ce vor fi implementate: Snake
  • Control de la tastatură PS2 (tastatura va fi conectată la placa Nexys2)
  • Afisare grafică prin VGA la rezoluția 800x600 (monitorul va fi conectat la placa Nexys2)
  • Tabela de scor (folosind afișajul cu 7 segmente de pe placa Nexys2) ce va indica punctele acumulate și nivelul atins

Cerințe de proiectare

Arhitectura Impusă

Status

Resurse Utile

Manual Nexys 2

Parametri VGA 800x600@72Hz

Tutorial Verilog

Tutorial Git