CID Lab Lucrarea 5

De la WikiLabs
Jump to navigationJump to search

Noțiuni și cunoștințe necesare

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
  • Memoria va fi instanțiată în modulul TOP conform figurii următoare:

Cid lab6.jpg

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.