Menu
Coddy logo textTech

Riepilogo - Banco a doppia lettura

Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 25 di 38.

challenge icon

Sfida

Medio

Implementa quattro parole da 8 bit con una scrittura sincronizzata sul clock e due uscite di lettura registrate con i dati precedenti, qa e qb. we scrive all’indirizzo waddr. rst sincrono azzera solo qa e qb. Altrimenti re abilita entrambe le letture da raddr_a e raddr_b; le letture disabilitate mantengono il valore. Le scritture sullo stesso fronte di clock non modificano i valori precedenti acquisiti da queste letture. I test inizializzano le parole prima di leggerle. Colonne di output: qa, qb. Tutti i segnali di controllo e i dati sono stabili prima di ogni fronte di salita del clock; i risultati vengono osservati in seguito.

Completa design.v e mantieni invariati i nomi dei moduli e le porte. Il testbench.v bloccato fornisce le variazioni degli ingressi e stampa le uscite dopo che si sono stabilizzate. Sceglie uno scenario usando un argomento del simulatore come +CASE=1; non è richiesto alcun input standard. Non aggiungere stampe, ritardi o terminazioni della simulazione al design. L’output previsto consiste in una riga di valori decimali per ogni osservazione, separati da uno spazio e terminati da un carattere di nuova riga.

Provalo tu

module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr_a, input [1:0] raddr_b, input [7:0] data, output reg [7:0] qa, output reg [7:0] qb);
    // Sostituisci questo segnaposto con il tuo progetto.
    initial qa = 0;
    initial qb = 0;
endmodule

Tutte le lezioni di Progettazione e verifica RTL

Esercitati da solo: Compilatore Verilog online