Acarreo anticipado

Anuncio
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
Descargar