CID Lab Lucrarea 5: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
Fără descriere a modificării
Fără descriere a modificării
Linia 3: Linia 3:
* [[Introducere. Verilog HDL și ModelSim|Logică booleană și sisteme de numerație]]
* [[Introducere. Verilog HDL și ModelSim|Logică booleană și sisteme de numerație]]
* Sintaxă [[Verilog]]
* Sintaxă [[Verilog]]
* Utilizarea programului de simulare [[ModelSim]]
* [[Introducere în sinteza pe FPGA. Xilinx ISE]]
* [[Introducere în sinteza pe FPGA. Xilinx ISE]]
* Utilizarea programului de sinteză [[Tutorial Xilinx ISE|Xilinx ISE]]
* Utilizarea programului de sinteză [[Tutorial Xilinx ISE|Xilinx ISE]]
* [[Circuite secvențiale]], [[Numărătorul]]
* [[Circuite secvențiale]]
* [[Generator de impulsuri cu factor de umplere variabil]]
* [[Memorii RAM]]


== Exemplu ==
== Exemplu ==


Realizați un circuit care să aprindă LD7 cu o intensitate variabilă, controlată de o valoare setată cu ajutorul switch-urilor SW7-SW0, folosind un generator de semnal cu factor de umplere variabil, bazat pe un numărător de 8 biți. Numărătorul va fi descris ca modul Verilog separat, și va fi instanțiat în generatorul de semnal.
* Se va descrie în Verilog o memorie RAM 16x4b cu un port de citire-scriere sincron.
 
* Legați adresa la SW7-4 și data de intrare la SW3-0.
== Exercițiu ==
* Legati semnalul de activare a scrierii la unul din butoane (BTN0 ... BTN3).
 
* Legați ieșirea memoriei la LD3-0.
Realizați un circuit care instanțiază 8 generatoare de semnal cu factor de umplere variabilă pentru a forma o rampă de intensitate pe LD7-LD0, cu următoarele caracteristici:
* Scrieți adresele 3 6 și 10 cu valorile 2, 1 respectiv 0, apoi citiți-le în aceeași ordine.
* Intensitatea LD0, notată I<sub>LD0</sub> este determinată de SW7-SW0
* Intensitățile LD0-7 respectă una din următoarele relații (cadrul didactiv va atribui fiecăruia din studenți una din relațiile de mai jos):
*# I<sub>LD0</sub> &lt; I<sub>LD1</sub> &lt; I<sub>LD2</sub> &lt; I<sub>LD3</sub> &lt; I<sub>LD4</sub> &lt; I<sub>LD5</sub> &lt; I<sub>LD6</sub> &lt; I<sub>LD7</sub>
*# I<sub>LD0</sub> &gt; I<sub>LD1</sub> &lt; I<sub>LD2</sub> &lt; I<sub>LD3</sub> &lt; I<sub>LD4</sub> &lt; I<sub>LD5</sub> &lt; I<sub>LD6</sub> &lt; I<sub>LD7</sub>
*# I<sub>LD0</sub> &gt; I<sub>LD1</sub> &gt; I<sub>LD2</sub> &lt; I<sub>LD3</sub> &lt; I<sub>LD4</sub> &lt; I<sub>LD5</sub> &lt; I<sub>LD6</sub> &lt; I<sub>LD7</sub>
*# I<sub>LD0</sub> &gt; I<sub>LD1</sub> &gt; I<sub>LD2</sub> &gt; I<sub>LD3</sub> &lt; I<sub>LD4</sub> &lt; I<sub>LD5</sub> &lt; I<sub>LD6</sub> &lt; I<sub>LD7</sub>
*# I<sub>LD0</sub> &gt; I<sub>LD1</sub> &gt; I<sub>LD2</sub> &gt; I<sub>LD3</sub> &gt; I<sub>LD4</sub> &lt; I<sub>LD5</sub> &lt; I<sub>LD6</sub> &lt; I<sub>LD7</sub>
*# I<sub>LD0</sub> &gt; I<sub>LD1</sub> &gt; I<sub>LD2</sub> &gt; I<sub>LD3</sub> &gt; I<sub>LD4</sub> &gt; I<sub>LD5</sub> &lt; I<sub>LD6</sub> &lt; I<sub>LD7</sub>
*# I<sub>LD0</sub> &gt; I<sub>LD1</sub> &gt; I<sub>LD2</sub> &gt; I<sub>LD3</sub> &gt; I<sub>LD4</sub> &gt; I<sub>LD5</sub> &gt; I<sub>LD6</sub> &lt; I<sub>LD7</sub>
*# I<sub>LD0</sub> &gt; I<sub>LD1</sub> &gt; I<sub>LD2</sub> &gt; I<sub>LD3</sub> &gt; I<sub>LD4</sub> &gt; I<sub>LD5</sub> &gt; I<sub>LD6</sub> &gt; I<sub>LD7</sub>
 
== Exercițiu Bonus ==
 
Realizați un circuit care să stingă apoi să aprindă un led treptat, folosind un generator de factor de umplere variabil.

Versiunea de la data 3 mai 2015 18:46

Noțiuni și cunoștințe necesare

Exemplu

  • Se va descrie în Verilog o memorie RAM 16x4b cu un port de citire-scriere sincron.
  • Legați adresa la SW7-4 și data de intrare la SW3-0.
  • Legati semnalul de activare a scrierii la unul din butoane (BTN0 ... BTN3).
  • Legați ieșirea memoriei la LD3-0.
  • Scrieți adresele 3 6 și 10 cu valorile 2, 1 respectiv 0, apoi citiți-le în aceeași ordine.