Menu
Coddy logo textTech

Contar muestras aceptadas

Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 34 de 38.

challenge icon

Desafío

Difícil

Construye un monitor de muestras en cinco pasos. Realiza un seguimiento de las muestras aceptadas en count: incrementa count en cada flanco de en que no esté reiniciando ni borrando, saturándose en 15. rst o clear reinicia count y total. Las muestras aceptadas con valor cero también incrementan count. Conserva todo lo de los pasos anteriores, incluidos su testbench y el comportamiento de salida anterior. Todos los valores de entrada son conocidos. Los escenarios contienen como máximo 40 flancos, por lo que total cabe en 16 bits. El testbench fijo imprime total para los escenarios 1-9, total y count para los escenarios 10-12, y total, count y alarm para los escenarios 13-15. Solo se evalúan los escenarios habilitados para este paso.

Completa design.v y conserva sus nombres de módulo y puertos. El testbench.v bloqueado proporciona los cambios de entrada e imprime las salidas una vez estabilizadas. Elige un escenario mediante un argumento del simulador como +CASE=1; no se requiere entrada estándar. No añadas impresiones, retardos ni terminación de la simulación al diseño. La salida esperada es una fila de valores decimales por observación, separados por un espacio y terminada con un salto de línea.

Pruébalo tú mismo

module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    always @(posedge clk)begin
        if(rst)total<=0;else if(clear)total<=0;else if(en)total<=total+data;
        count<=0;
    end
    assign alarm=0;
endmodule

Todas las lecciones de Diseño y verificación RTL

Practica por tu cuenta: Compilador de Verilog online