Menu
Coddy logo textTech

Borrar la ventana actual

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

challenge icon

Desafío

Difícil

Construye un Sample Monitor en cinco pasos. Añade clear síncrono con prioridad después de rst y antes de en. clear reinicia total sin aceptar data en ese flanco, incluso cuando en=1. Mantén el comportamiento de reset y enable. Mantén todo de los pasos anteriores, incluyendo 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 califican los escenarios habilitados para este paso.

Completa design.v y conserva sus nombres de módulo y puertos. El testbench.v bloqueado suministra los cambios de entrada e imprime las salidas después de que se estabilicen. Elige un escenario usando un argumento del simulador como +CASE=1; no se requiere entrada estándar. No añadas impresión, retardos ni terminación de simulación al diseño. La salida esperada es una fila de valores decimales por observación, separados por un espacio y terminando 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(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