Diferență între revizuiri ale paginii „CID Lab Lucrarea 5”
De la WikiLabs
Jump to navigationJump to searchLinia 30: | Linia 30: | ||
*** RD_EN - comanda de citire | *** RD_EN - comanda de citire | ||
*** RD_DATA - datele citite | *** RD_DATA - datele citite | ||
− | * Memoria va fi instanțiată în modulul TOP conform figurii | + | * Memoria va fi instanțiată în modulul TOP conform figurii următoare: |
+ | [[Fișier:Cid_lab6.jpg]] | ||
+ | |||
+ | <syntaxhighlight lang="verilog"> | ||
+ | module memorie_fifo( | ||
+ | input clock, rst, // semnal de ceas si reset | ||
+ | input write_enable, // comanda de scriere | ||
+ | read_enable, // comanda de citire | ||
+ | input [word_width-1 : 0] data_in, // date de intrare, aici pe 4 biti | ||
+ | output [word_width-1 : 0] data_out, // date de iesire, aici pe 4 biti | ||
+ | output reg empty, // semnal de iesire care este activ cand memoria este goala | ||
+ | full, // semnal de iesire care este activ cand memoria este plina | ||
+ | output reg [adr_size:0] fifo_counter //nr locatii folosite, maxim 32 | ||
+ | |||
+ | ); | ||
+ | </syntaxhighlight> | ||
+ | |||
* Scrieți constrângerile necesare pentru a conecta porturile modulului TOP: | * Scrieți constrângerile necesare pentru a conecta porturile modulului TOP: | ||
− | ** DIN la SW7-0, | + | ** DIN la SW7-4, |
+ | ** ADR la SW3-0, | ||
** WEN la BTN3, | ** WEN la BTN3, | ||
** DOUT la LD3-0, | ** DOUT la LD3-0, | ||
** intrarea de ceas la oscilatorul plăcii Nexys 2. | ** intrarea de ceas la oscilatorul plăcii Nexys 2. | ||
− | * | + | * Scrieți memoria RAM cu valorile necesare pentru a produce pe DOUT o secvență de numere indicată de cadrul didactic. |
Versiunea de la data 3 mai 2015 20:57
Noțiuni și cunoștințe necesare
- Logică booleană și sisteme de numerație
- Sintaxă Verilog
- Utilizarea programului de simulare ModelSim
- Introducere în sinteza pe FPGA. Xilinx ISE
- Utilizarea programului de sinteză Xilinx ISE
- Circuite secvențiale
- Memorii RAM
Exemplu
- Se va descrie în Verilog o memorie RAM 16x4b cu un port de citire-scriere sincron.
- Se vor scrie contrâgerile necesare pentru a conecta
- adresa la SW7-4 și data de intrare la SW3-0.
- semnalul de activare a scrierii la unul din butoane (BTN0 ... BTN3).
- ieșirea memoriei la LD3-0.
- intrarea de ceas a memoriei la oscilatorul plăcii Nexys 2.
- Scrieți adresele 3, 6 și 10 cu valorile 2, 1 respectiv 0, apoi citiți-le în aceeași ordine.
Exercițiu
- Descrieți în Verilog o memorie RAM 16x8b cu două porturi:
- Un port sincron de scriere (Write-Only) cu următoarele semnale:
- WR_ADDR - adresa la care se scrie
- WR_EN - comanda de scriere
- WR_DATA - datele scrise
- Un port sincron de citire (Read-Only) cu următoarele semnale:
- RD_ADDR - adresa citită
- RD_EN - comanda de citire
- RD_DATA - datele citite
- Un port sincron de scriere (Write-Only) cu următoarele semnale:
- Memoria va fi instanțiată în modulul TOP conform figurii următoare:
module memorie_fifo(
input clock, rst, // semnal de ceas si reset
input write_enable, // comanda de scriere
read_enable, // comanda de citire
input [word_width-1 : 0] data_in, // date de intrare, aici pe 4 biti
output [word_width-1 : 0] data_out, // date de iesire, aici pe 4 biti
output reg empty, // semnal de iesire care este activ cand memoria este goala
full, // semnal de iesire care este activ cand memoria este plina
output reg [adr_size:0] fifo_counter //nr locatii folosite, maxim 32
);
- Scrieți constrângerile necesare pentru a conecta porturile modulului TOP:
- DIN la SW7-4,
- ADR la SW3-0,
- WEN la BTN3,
- DOUT la LD3-0,
- intrarea de ceas la oscilatorul plăcii Nexys 2.
- Scrieți memoria RAM cu valorile necesare pentru a produce pe DOUT o secvență de numere indicată de cadrul didactic.