Desbordamiento y saturación
Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 9 de 38.
El desbordamiento con signo significa que el resultado matemático no puede caber en el ancho signed elegido. Se diferencia del acarreo sin signo. En la suma signed, las entradas con el mismo signo producen desbordamiento cuando cambia el signo del resultado. La saturación limita el resultado a un extremo representable en lugar de hacerlo dar la vuelta.
Fragmento relevante; las declaraciones y conexiones circundantes se proporcionan en el desafío.
assign overflow = (a[7] == b[7]) && (sum[7] != a[7]);Las entradas con signos diferentes no pueden provocar un desbordamiento en una suma signed; las entradas con el mismo signo requieren comprobar el signo del resultado.
Comprueba el desbordamiento de signed independientemente del acarreo; amplía antes de implementar la saturación.
Desafío
IntermedioSuma a y b de 8 bits signed. Devuelve el resultado ajustado signed y y overflow=1 únicamente cuando la suma matemática exacta esté fuera del intervalo de -128 a 127. Columnas de salida: y, overflow. Todos los valores de estímulo son valores binarios conocidos.
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 después de que se estabilicen. 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 terminados con un salto de línea.
Pruébalo tú mismo
module dut (input signed [7:0] a, input signed [7:0] b, output signed [7:0] y, output overflow);
// Reemplaza este marcador de posición con tu diseño.
assign y = 0;
assign overflow = 0;
endmoduleEsta 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
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