Menu
Coddy logo textTech

Contadores con saturación

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

Fundamentals utilizaba un contador envolvente. En cambio, un contador saturado se detiene en un límite, lo que resulta útil para conteos acotados. Añade una guarda explícita a la actualización aritmética y mantén el comportamiento de habilitación y reinicio independiente del límite.

Extracto relevante; las declaraciones y conexiones circundantes se proporcionan en el desafío.

always @(posedge clk) begin
    if(rst) count <= 0;
    else if(en && count != 15) count <= count + 1;
end

El valor máximo se conserva en lugar de volver a cero.

Actualiza explícitamente los límites de protección cuando un contador deba saturarse en lugar de desbordarse.

challenge icon

Desafío

Intermedio

Crea un contador saturado de 4 bits q. El rst síncrono lo pone a cero. Los flancos habilitados incrementan hasta 15 y después mantienen el valor en 15; los flancos deshabilitados también mantienen el valor. El reinicio tiene prioridad. Columnas de salida: q. Todos los controles y datos permanecen estables antes de cada flanco ascendente del reloj; los resultados se observan después.

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 después de que se estabilizan. 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, input rst, input en, output reg [3:0] q);
    // Reemplaza este marcador de posición con tu diseño.
    initial q = 0;
endmodule
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

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

Practica por tu cuenta: Compilador de Verilog online