Diferență între revizuiri ale paginii „Proiect 2”

De la WikiLabs
Jump to navigationJump to search
 
(Nu s-au afișat 55 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.
  
  
 
== Activitatea de proiectare ==
 
== Activitatea de proiectare ==
 +
Activitatea de proiectare se va desfăşura conform unor principii generale aplicabile unei clase cât mai cuprinzătoare de proiecte comerciale:
 +
 +
- timpul alocat realizării şi verificării produsului este limitat, având termene intermediare ("project timeline")
 +
 +
- cerințele produsului final sunt definite de client ("customer requirements")
 +
 +
- în timpul dezvoltării o atenție deosebită se acordă relației cu clientul sau promovării viitorului produs (discuții intermediare, prezentări ale situației, "datasheet", posibila oferire de date interne referitoare la soluții tehnice în condițiile existenței unui Non-Disclosure Agreement)
 +
 +
- produsul final este însoțit de o procedură de închidere / de acceptare ("commissioning", "project closure")
 +
 +
- pentru produsul respectiv se oferă suport, inclusiv sub forma unei documentații corespunzătoare ("datasheet", "application notes", "user manual")
 +
 +
Astfel, pentru această disciplină se va acorda atenția cuvenită şi aspectelor care caracterizează procesele dezvoltării în cadrul unui mediu competițional cu scopul de formare a studenților pentru potențiale proiecte cu obiectiv comercial.
  
 
=== Etapele procesului de dezvoltare ===
 
=== Etapele procesului de dezvoltare ===
 +
Procesul de dezvoltare se realizează conform unui plan predefinit cuprinzând atât sarcinile studenților şi ale indrumătorului didactic, cât şi termenele de predare aferente, reflectând principiile expuse în paragrafele anterioare.
 +
 +
[[File:Sarcini_si_termene.png|frame|center|Planificarea activităților pentru dezvoltarea produsului final în cadrul disciplinei Proiect 2]]
 +
 +
Detalii administrative se regăsesc în "Regulamentul de funcționare a Proiectului 2".
  
 
=== Unelte software ===
 
=== Unelte software ===
Pentru simularea sistemului digital se propune utilizarea programului [[ModelSim]].
+
 
 +
Pentru simularea sistemului digital se propune utilizarea programului [[ModelSim]] produs de [http://www.mentor.com Mentor Graphics].
 +
 
 
Pentru sinteza circuitelor programul disponibil în laborator este [[Tutorial Xilinx ISE|Xilinx ISE]] produs de [http://www.xilinx.com Xilinx].
 
Pentru sinteza circuitelor programul disponibil în laborator este [[Tutorial Xilinx ISE|Xilinx ISE]] produs de [http://www.xilinx.com Xilinx].
  
 
== 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 ===
 +
 +
[[Fișier:313-103-10-8.png|frame|right|Exemplu de diagramă a blocurilor componente (Referința 1)]]
  
 
=== Diagrama la nivel de blocuri componente ===
 
=== Diagrama la nivel de blocuri componente ===
  
 +
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.
  
== Domeniul de aplicație ==
+
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.
  
=== Controllere video şi Unități de Procesare Grafică ===
+
<br style="clear: both" />
 
 
=== Fizică (elemente de teorie) şi Unități de Procesare Fizică === 
 
  
 +
== 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]] 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]]).
  
 
=== 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.
 +
  
  
 
== Referințe ==
 
== Referințe ==
 
1. Gh. Stefan: [http://arh.pub.ro/gstefan/0-BOOK.pdf Loops & Complexity in Digital Systems. Lecture Notes on Digital Design in the Giga-Gate per Chip Era]
 
1. Gh. Stefan: [http://arh.pub.ro/gstefan/0-BOOK.pdf Loops & Complexity in Digital Systems. Lecture Notes on Digital Design in the Giga-Gate per Chip Era]
 +
 +
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