CID Lab Lucrarea 4: Diferență între versiuni

De la WikiLabs
(Cerințe suplimentare (opționale))
Linia 7: Linia 7:
 
* Utilizarea programului de sinteză [[Tutorial Xilinx ISE|Xilinx ISE]]
 
* Utilizarea programului de sinteză [[Tutorial Xilinx ISE|Xilinx ISE]]
 
* [[Memorii ROM]], [[Dispozitiv de IO: Afișajul cu 7 segmente]], [[Circuite secvențiale]], [[Numărătorul]]
 
* [[Memorii ROM]], [[Dispozitiv de IO: Afișajul cu 7 segmente]], [[Circuite secvențiale]], [[Numărătorul]]
* [[Memorii RAM]], [[Circuitul de debounce]]
 
  
 
== Cerințe ==
 
== Cerințe ==
  
[[Fișier:lab4.png|thumb|Schema bloc a circuitului]]
+
* Descrieți în Verilog un numărător pe 32 de biți cu reset asincron.
 
+
* Folosind acest numărător și transcodorul descris în laboratorul 3, descrieți în Verilog un circuit (numit Timer) care să utilizeze afișajul cu 7 segmente pentru a afișa valoarea numărătorului. Decideți care din cei 32 de biți ai numărătorului ar trebui utilizați pentru afișare astfel încât viteza de numărare să fie aproximativ o secundă.
* Descrieți în Verilog o memorie RAM 16x8 cu un port de citire-scriere sincron. Scrieți un modul de test pentru acest circuit scriind anumite adrese cu anumite valori si apoi citindu-le. Simulați memoria RAM în Modelsim.
 
* Modificați modulul de control pentru afișajul cu 7 segmente din lucrarea 3 de laborator, astfel încât acesta să afișeze simbolurile hexazecimale (A,b,C,d,E,F) pentru valorile 10 - 15.
 
* Scrieți un modul de test pentru circuitul de debounce. Simulați acest modul în Modelsim.
 
* Modificați numărătorul de la lucrarea 3 astfel încât să fie pe 4 biți, eliminați portul de reset și adăugați un port '''enable''' care să permită incrementarea doar când acesta este 1.
 
* Folosind modulele anterioare și blocuri de instanțiere, descrieți în Verilog un circuit (numit Top) în care să utilizați un numărător care să dea adresa memoriei, iar numărarea să se facă doar la apăsarea unui buton (folosiți pentru buton un modul de debounce). Legați ieșirea numărătorului la intrarea de adresă a memoriei și la intrarea modulului de control al afișajului (transcodor), portul de date de intrare la switch-uri, portul de date de ieșire la leduri, portul de write-enable (we) la unul din butoane. Sintetizați circuitul în Xilinx ISE și configurați placa de FPGA.
 
  
 +
<!--
 
== Cerințe suplimentare (opționale) ==
 
== Cerințe suplimentare (opționale) ==
 
# Folosind modulul dezvoltat la exercițiul opțional 2 de la lucrarea 3, scrieți un modul care să afișeze prenumele vostru deplasându-se de la dreapta la stânga pe afișajul cu 7 segmente. Sintetizați circuitul și programați placa de FPGA.
 
# Folosind modulul dezvoltat la exercițiul opțional 2 de la lucrarea 3, scrieți un modul care să afișeze prenumele vostru deplasându-se de la dreapta la stânga pe afișajul cu 7 segmente. Sintetizați circuitul și programați placa de FPGA.
Linia 36: Linia 31:
 
#Folosind o memorie RAM, implementați în Verilog o stivă.
 
#Folosind o memorie RAM, implementați în Verilog o stivă.
 
#Folosind o memorie RAM, implementați în Verilog o coadă.
 
#Folosind o memorie RAM, implementați în Verilog o coadă.
 +
-->

Versiunea de la data 30 martie 2014 18:42

Noțiuni și cunoștințe necesare

Cerințe

  • Descrieți în Verilog un numărător pe 32 de biți cu reset asincron.
  • Folosind acest numărător și transcodorul descris în laboratorul 3, descrieți în Verilog un circuit (numit Timer) care să utilizeze afișajul cu 7 segmente pentru a afișa valoarea numărătorului. Decideți care din cei 32 de biți ai numărătorului ar trebui utilizați pentru afișare astfel încât viteza de numărare să fie aproximativ o secundă.