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.
Desafío
DifícilConstruye 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;
endmoduleTodas las lecciones de Diseño y verificación RTL
1RTL combinacional confiable
Los valores predeterminados evitan los latchesCodificadores de prioridadValidación one-hotDecodificación segura de caseRepaso: enrutador de solicitudes4RTL secuencial controlado
Prioridad de reinicio y habilitaciónContadores con saturaciónPipeline de datos y validaciónDetección de flancos muestreadosRepaso: contador de eventos7Proyecto - Monitor de muestras
Acumular muestrasAceptar muestras habilitadas2Anchos y aritmética con signo
Conservar los bits de acarreoComparaciones con signoDesplazamientos aritméticos a la derechaDesbordamiento y saturaciónRepaso: diferencia con signoPractica por tu cuenta: Compilador de Verilog online