16 / 63 · Concepto
Sumadores y propagación del acarreo
Derive las ecuaciones del sumador completo y analice función, ancho y retardo del acarreo en cascada.
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Represente una suma de un bit mediante dos bits
La suma de va de 0 a 3 y necesita el bit de suma y el acarreo siguiente . La suma vale 1 con un número impar de unos; el acarreo vale 1 con al menos dos.
Definiendo generación y propagación , resulta , donde es OR. El semisumador es el caso sin acarreo de entrada: suma mediante XOR y acarreo mediante AND.
Cambie las tres entradas y compruebe siempre a+b+cin = sum+2×cout. El acarreo alimenta la posición siguiente y no tiene el mismo peso que sum.
a + b + cin = sum + 2 × cout
Hasta dónde debe propagarse el acarreo
Considere 1111 + 0001 en cuatro bits. El bit 0 genera un acarreo que atraviesa las otras tres posiciones. La suma almacenada es 0000 y el acarreo final, 1. En un sumador ripple-carry, el cálculo de los bits superiores puede esperar al acarreo de las posiciones inferiores.
Desarrollar la expresión permite ver cómo calcular acarreos en paralelo. Los sumadores rápidos combinan generación y propagación por grupos, con compromisos de área y retardo que incluyen fan-in, cableado y biblioteca. El + de RTL no obliga a implementar un único tipo ripple-carry.
Conserve en el diseño el ancho de la suma
logic [3:0] a, b, sum;
logic cin, cout;
logic [4:0] wide_sum;
assign wide_sum = {1'b0, a} + {1'b0, b} + {4'b0000, cin};
assign sum = wide_sum[3:0];
assign cout = wide_sum[4];Cinco bits bastan para . Decida primero si solo necesita los bits bajos, si el acarreo pasa a otra etapa o si necesita saturación. El control didáctico comprueba la tabla de verdadTabla de verdad Tabla que enumera todas las combinaciones posibles de entradas y la salida de cada una. La evolución temporal se comprueba por separado en las formas de onda. Más información de una posición del sumador completo; no mide el retardo del circuito sintetizado.
Cambiar las entradas
Inténtalo tú
En unsigned de 4 bits, calcule suma completa, suma de 4 bits y carry para , , . Si interpreta el mismo circuito como signed, ¿basta carry para detectar overflow?
Leer la explicación
La suma completa es 16, 10000: sum=0000 y carry=1. Como signed, 1001 representa -7, por lo que , dentro del rango. Carry y overflow con signo son condiciones distintas.