Menu
Coddy logo textTech

Acumular muestras

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

Construye un monitor reutilizable para un flujo de muestras sin signo. Acumularás valores, respetarás los controles de habilitación y borrado, contarás las muestras aceptadas e informarás si se alcanza un umbral. Los cinco pasos mantienen la misma interfaz del módulo y el banco de pruebas bloqueado. Las salidas reservadas adquieren su comportamiento en pasos posteriores.

challenge icon

Desafío

Difícil

Construye un Sample Monitor en cinco pasos. En cada flanco ascendente, rst síncrono borra total; de lo contrario, suma los datos sin signo a total. Usa el registro total de 16 bits. En este primer paso, en y clear no se utilizan, y los escenarios mantienen en=1 y clear=0. count y alarm son salidas reservadas que permanecen en cero. Todos los valores de entrada son conocidos. Los escenarios contienen como máximo 40 flancos, por lo que el 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 proporciona cambios en las entradas e imprime las salidas después de que se estabilizan. Elige un escenario mediante un argumento del simulador como +CASE=1; no se requiere entrada estándar. No agregues 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);
    initial begin total=0;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