Menu
Coddy logo textTech

Recapitulação — Banco com Duas Leituras

Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 25 de 38.

challenge icon

Desafio

Médio

Implemente quatro palavras de 8 bits com uma escrita sincronizada com o clock e duas saídas de leitura registradas de dados antigos, qa e qb. we escreve em waddr. rst síncrono limpa apenas qa e qb. Caso contrário, re habilita ambas as leituras de raddr_a e raddr_b; leituras desabilitadas mantêm seus valores. Escritas na mesma borda não alteram os valores antigos capturados por essas leituras. Os testes inicializam as palavras antes da leitura. Colunas de saída: qa, qb. Todos os controles e dados permanecem estáveis antes de cada borda ascendente do clock; os resultados são observados depois dela.

Conclua design.v e preserve os nomes e as portas de seu módulo. O testbench.v bloqueado fornece as alterações de entrada e imprime as saídas após sua estabilização. Ele escolhe um cenário usando um argumento do simulador, como +CASE=1; nenhuma entrada padrão é necessária. Não adicione impressão, atrasos ou encerramento da simulação ao design. A saída esperada é uma linha de valores decimais por observação, separados por um espaço e terminando com uma nova linha.

Experimente você mesmo

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);
    // Substitua este placeholder pelo seu design.
    initial qa = 0;
    initial qb = 0;
endmodule

Todas as lições de Design e Verificação RTL

Pratique por conta própria: Compilador de Verilog online