Sumador con Acarreo Rapido en una GAL22v10 Describimos ahora un proyecto para efectuar la suma de dos números binarios, sin signo, de cuatro bits cada uno que usan la generación del acarreo anticipado en cada una de sus etapas, emulando al integrado 74LS283. La adición de dos números binarios en paralelo implica que todos los bits del sumando y del adenda estén disponibles para computarse al mismo tiempo. Como en todo circuito combinatorio, la señal debe propagarse a través de las compuertas antes de que esté disponible la salida de suma correcta en las patitas de salida. El tiempo total de propagación es igual al retardo de propagación de una compuerta típica multiplicado por el número de niveles de compuertas en el circuito. El tiempo más largo de retardo de propagación en un sumador paralelo es el tiempo que toma al acarreo propagarse a través de los sumadores completos. El tiempo de propagación del acarreo, es un factor limitante en la velocidad con la cual se suman dos números en paralelo. Aun cuando un sumador paralelo, o cualquier otro circuito combinatorio, siempre tendrá cierto valor en sus pines de salida, las salidas no serán correctas a menos que se dé a las señales bastante tiempo para propagarse a través de las compuertas conectadas desde las entradas hasta las salidas. El tiempo de adición es muy crítico pues ya que las demás operaciones aritméticas se hacen de modo sucesivo. Hay varias técnicas para reducir el tiempo de propagación del acarreo en un sumador paralelo. La técnica de más frecuente aplicación es el uso del acarreo anticipado, mismo que ahora se describirá. Figura 1 Circuito sumador completo. Considerar al circuito sumador completo que se exhibe en la figura 1. Si se definen dos nuevas variables binarias: Pi = Ai ⊕ Bi Gi = Ai Bi La suma y el acarreo de salida se pueden expresar ahora como: S i = Pi ⊕ C i C i +1 = Gi + Pi C i Gi es denominado como generador de acarreo y produce un acarreo de salida cuando tanto Ai como Bi son uno, haciendo caso omiso del acarreo de entrada. Pi se denomina propagador de acarreo, puesto que él es el término asociado con la propagación del acarreo de C i a C i + 1 . Ahora se escribe la función de conmutación para el acarreo de salida, en cada etapa y se sustituye para cada C i su valor mediante las ecuaciones previas. Prof. S. Saucedo 1 ICE/2007 C2 C3 = G1 + P1 C1 = G2 + P2 C 2 C4 C5 = G3 + P3 C 3 = G4 + P4 C 4 = G2 + P2 (G1 + P1 C1 ) = G2 + P2 G1 + P2 P1 C1 = G3 + P3 (G2 + P2 C 2 ) = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C1 = G4 + P4 (G3 + P3 C 3 ) = G4 + P4 G3 + P4 P3G2 + P4 P3 P2 G1 + P4 P3 P2 P1 C1 La figura 2 muestra el diagrama esquemático capturado con ABEL-HDL para implementar las fórmulas anteriores y generar los cuatro acarreos que se necesitan para el sumador de cuatro bits. Figura 2 Sumador de 4 bits con acarreo anticipado. La siguiente figura proporciona el listado fuente del file para proponer los vectores de prueba. los quince vectores de prueba fueron aceptados pero deben hacerse pruebas exhaustivas para corroborar a fondo el funcionamiento del diseño. Prof. S. Saucedo 2 ICE/2007 MODULE CARRY TITLE 'LOOK AHEAD CARRY' " ENTRADAS A4..A1,B4..B1,C1 PIN; " SALIDAS C5,S4..S1 PIN ISTYPE 'COM'; A = [A4..A1]; B = [B4..B1]; S = [C5, S4..S1]; TEST_VECTORS ([A,B,C1]-> [2,0,0] -> [2,5,0] -> [6,4,0] -> [7,5,1] -> [6,1,1] -> [5,5,0] -> [11,7,0]-> [4,5,1] -> [6,14,1]-> S) 2; 7; 10; 13; 8; 10; 18; 10; 21; [7,7,1] -> 15; [6,10,0]-> 16; [15,7,1]-> 23; [12,13,0]->25; [11,15,0] -> 26; [14,15,1] -> 30; END Figura 3 Archivo tipo .abv con quince vectores de prueba. Resultado de la Simulación La figura 4 ofrece la respuesta en el tiempo para el mapa de fusibles grabado en la GAL22V10. Notar que ispLEVER starter reporta algunos glitches en la respuesta. Prof. S. Saucedo 3 ICE/2007 Figura 4 Simulación de quince sumas con éxito. Para una referencia excelente ver el texto Diseño Digital de M. Morris Mano, Ed. Prentice Hall, 1987, pp 159-163. Un generador típico de acarreo anticipado es el CI 74182 que se implementa con compuertas AND, OR e INVERSORAS y produce tres acarreos y otras dos salidas: G y P para generar el acarreo C5 = G + P·C1 La figura 5 ilustra a nivel esquemático a bloques el diseño realizado. Prof. S. Saucedo 4 ICE/2007 Figura 5 Sumadores completos de 4 bits con acarreo anticipado. Prof. S. Saucedo 5 ICE/2007