Activar una alarma de umbral
Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 35 de 38.
Desafío
DifícilConstruye un Sample Monitor en cinco pasos. Activa la alarma combinacional siempre que total sea mayor o igual que el límite sin signo, incluida la igualdad. La alarma refleja el total actualizado después de cada flanco y sigue los cambios de limit. limit=0 hace que la alarma esté activa incluso cuando total=0. Conserva todo el comportamiento de acumulación, habilitación, borrado y conteo. Mantén todo lo de los pasos anteriores, incluido su banco de pruebas y el comportamiento de salida previo. 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 banco de pruebas 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 los nombres de sus módulos y puertos. El testbench.v bloqueado proporciona los cambios de entrada e imprime las salidas una vez estabilizadas. Selecciona 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 || clear)begin total<=0;count<=0;end
else if(en)begin
total<=total+data;
if(count!=15)count<=count+4'd1;
end
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