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.
Desafio
MédioImplemente 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;
endmoduleTodas as lições de Design e Verificação RTL
1RTL Combinacional Confiável
Valores padrão evitam latchesCodificadores de prioridadeValidação One-HotDecodificação segura de caseRecapitulação - Roteador de requisições4RTL Sequencial Controlado
Prioridade de Reset e EnableContadores SaturantesPipeline de Dados e ValidDetecção de Bordas AmostradasRecapitulação - Contador de Eventos7Projeto - Monitor de Amostras
Acumular AmostrasAceitar Amostras Habilitadas2Larguras e Aritmética com Sinal
Preservando Bits de CarryComparações com SinalDeslocamentos Aritméticos à DireitaOverflow e SaturaçãoRecapitulação — Diferença com Sinal5Memória e Tabelas de Consulta
Tabelas ROM CombinacionaisArmazenamento em Matriz de RegistradoresPortas de Leitura RegistradasEncaminhamento entre Leitura e EscritaRecapitulação — Banco com Duas LeiturasPratique por conta própria: Compilador de Verilog online