Conservar los bits de acarreo
Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 6 de 38.
El ancho de la señal determina qué bits se pueden representar. Haz explícita la intención aritmética extendiendo los operandos antes de una operación. Sumar dos valores sin signo de 8 bits puede requerir nueve bits para el resultado; asignar solo ocho bits conserva los ocho bits inferiores y pierde el acarreo.
Extracto relevante; las declaraciones y conexiones circundantes se proporcionan en el desafío.
wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};Cada operando tiene explícitamente nueve bits de ancho, lo que coincide con la suma completa.
Elige el ancho de resultado requerido y amplía los operandos antes de la aritmética.
Desafío
IntermedioSuma los valores sin signo de 8 bits a y b sin perder el acarreo. Devuelve la suma completa de 9 bits en total. Extiende explícitamente ambos operandos a nueve bits. Columnas de salida: total. Todos los valores de estímulo son valores binarios conocidos.
Completa design.v y conserva los nombres de los módulos y los 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 ninguna 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 [7:0] a, input [7:0] b, output [8:0] total);
// Reemplaza este marcador de posición con tu diseño.
assign total = 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