1. Circuitos vlsi (4º curso)
TEMA 5. MÓDULOS ARITMÉTICOS AVANZADOS
Circuitos vlsi
Dr. José Fco. López
Desp. 307, Pab. A
lopez@iuma.ulpgc.es
0 1 0 1 1
0 0 1 0 1
1 0 0 0 0
+
2. Circuitos vlsi (4º curso)
Índice
Introducción
Rutas de procesamiento de datos
El sumador
• El sumador binario: definiciones
• El sumador completo: diseño del circuito
• El sumador binario: consideraciones de diseño lógico
El multiplicador
• Definiciones
• Generador de productos parciales
• Acumulación de productos parciales
El desplazador
• Desplazador de barril
• Desplazador logarítmico
Otros operadores aritméticos
3. Circuitos vlsi (4º curso)
Introducción
Vamos a aprender a utilizar las técnicas estudiadas en capítulos
anteriores para diseñar una serie de circuitos utilizados en las
cadenas de procesamiento de datos de los microprocesadores y
procesadores de señal.
Analizaremos específicamente un conjunto de módulos representati-cos,
como es el caso de sumadores, multiplicadores y desplazadores
Para cada módulo existen múltiples topologías de circuitos, y como
siempre, la elección de una estrategia u otra se basará en un
compromiso área/potencia/retardo.
4. Circuitos vlsi (4º curso)
Rutas de procesamiento de datos
Un procesador digital consta de 4 componentes:
• Ruta de procesamiento de datos
• Memorias
• Unidad de control
• Bloques de entrada/salida
Una ruta de procesamiento de datos típica consta de una interco-nexión
de funciones combinatorias básicas, como operadores
aritméticas (suma, multiplicación, comparación y desplazamiento) o
lógicos (AND, OR y XOR) Registro
Sumador
Desplazador
Multiplicador
bit 3
bit 2
bit 1
bit 0
Datos
entrantes
Datos de
salida
Control
Organización en secciones de bit (bit-slice)
6. Circuitos vlsi (4º curso)
El sumador
La suma es la operación aritmética más comúnmente utilizada y
suele ser el elemento que impone los límites a la velocidad máxima
alcanzada, por lo que es importante realizar un exhaustivo estudio
del mismo.
La optimización de un sumador se puede realizar desde un punto
de vista lógico o circuital:
• Optimización lógica: se basa en reordenar las ecuaciones booleanas
para obtener un circuito más rápido o más pequeño (sumador con
propagación de acarreo, sumador de acarreo anticipado…)
• Optimización circuital: manipula los tamaños de los transistores
y la topología del circuito para optimizar sus características.
7. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
A B
Cout Cin
Full
Adder
S
8. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
A
B 0 1
0
1
0 1
1 0
¡¡¡¡53 transistores!!!!
A
B
Ci
S
Co
9. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
RECORDATORIO
10. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
F=A·B+C·D
11. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
¡¡¡¡42 transistores!!!!
12. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
¡¡¡¡36 transistores!!!!
13. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
A B
Cout Cin
Full
Adder
S
A menudo resulta útil definir S y Cout en función de ciertas señales
intermedias G (generar), P (propagar) y D (descartar)
14. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
G=A×B
D=A’B’
P=AÅB
descartar
descartar
propagar
propagar
propagar
propagar
generar
generar
Co(G,P)=G+P×Ci
S(G,P)=PÅCi
1. G y P dependen de A y B y no
de Ci
2. También podemos determinar
expresiones Co(D,P) y S(D,P)
15. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
Podemos construir un sumador de N bits conectando en cascada
N circuitos sumadores de forma que Co,k-1 se conecte a Ci,k para
K=1,___,N y conectando la primera entrada de acarreo Ci,0 a 0.
A0 B0
FA FA FA FA
S0
A1 B1
S1
A2 B2
S2
A3 B3
S3
Ci,0 Co,0
(= Ci,1)
Co,1 Co,2
Sumador de 4 bits con propagación de acarreo
El retardo del circuito depende del número de etapas lógicas que
haya que recorrer, y estará en función de las señales de entrada
aplicadas (camino crítico)
16. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
A0 B0
FA FA FA FA
S0
A1 B1
S1
A2 B2
S2
A3 B3
S3
Ci,0 Co,0
(= Ci,1)
Co,1 Co,2
tadder = (N-1)tcarry + tsum
El retardo de caso peor se produce cuando un acarreo generado en
la posición del bit menos significativo se propaga a través de todo el
circuito hasta la posición del bit más significativo.
Se extraen dos conclusiones importantes:
• El retardo de propagación de un sumador con propagación de
acarreo es linealmente proporcional a N.
• Es mucho más importante optimizar la ruta del acarreo (tcarry) que
la de la suma (tsum), ya que este último valor tiene menor influencia
sobre en tiempo total del sumador.
17. Circuitos vlsi (4º curso)
El sumador
El sumador binario: definiciones
Propiedad de inversión: Si se invierten todas las entradas de un
sumador completo, se obtienen valores invertidos en todas las
salidas.
A B
Co Ci FA
S
A B
Ci FA Co
S
S(A, B, Ci) = S(A, B, Ci)
Co(A, B, Ci) = Co(A, B, Ci)
Esta propiedad resultará muy útil a la hora de optimizar la velocidad
del sumador con propagación de acarreo.
18. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
Algunas manipulaciones lógicas pueden ayudar a disminuir el número
de transistores a utilizar a la hora de implementar un sumador.
Co=A×B+B×Ci+A×Ci
S=A×B×Ci+C’o(A+B+Ci)
A B
B
A
Ci
Ci A
X
VDD
VDD
A B
Ci A B
B VDD
A
B
¡¡¡¡28 transistores!!!!
Ci
Ci
A
B
A B Ci
Co
VDD
19. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
A B
B
A
Ci
Ci A
X
VDD
VDD
A B
Ci A B
B VDD
A
B
Ci
Ci
A
B
A B Ci
Co
VDD
1. Hay presentes pilas demasiado altas de transistores pMOS en los
circuitos de generación de acarreo y suma.
2. La capacitancia de la señal C’o es muy grande
3. La señal se propaga a través de dos etapas inversoras en el circuito de
generación de acarreo
4. La generación de la suma necesita de una etapa lógica adicional, aunque
eso no es demasiado preocupante
20. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
A B
B
A
Ci
Ci A
X
VDD
VDD
A B
Ci A B
B VDD
A
B
Ci
Ci
A
B
A B Ci
Co
VDD
1. Los transistores nMOS y pMOS conectados a Ci están lo más cerca posible
de la salida de la puerta.
21. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
RECORDATORIO TEMA 3:
Algunas técnicas de diseño para fan-in grande:
• Tamaño del transistor: La solución más obvia consiste en aumentar
el tamaño del transistor, para de esta forma disminuir la resistencia
de los transistores en serie y la constante de relajación. Cuidado,
esto puede hacer que haya más carga a la salida de la puerta
anterior.
• Aumento progresivo del tamaño de los transistores
• Reordenación de las entradas
Camino crítico
1 cargado
M3 CL
1 cargado
C2
C1
In3
In2
In1
M2
M1
0®1
cargado
Camino crítico
0®1 cargado
M3 CL
C2
C1
In1
In2
In3
M2
M1
1
1
descargado
descargado
22. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
Podemos mejorar la velocidad de este circuito utilizando el hecho de
que el numero de etapas inversoras en el camino de generación del
acarreo se puede reducir aprovechando la propiedad de inversión: si
se invierten todas las entradas de una celda de sumador completo,
también se invierten todas las salidas.
A B
B
A
Ci
Ci A
X
VDD
VDD
A B
Ci A B
B VDD
A
B
Ci
Ci
A
B
A B Ci
Co
VDD
Co
23. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
Podemos mejorar la velocidad de este circuito utilizando el hecho de
que el numero de etapas inversoras en el camino de generación del
acarreo se puede reducir aprovechando la propiedad de inversión: si
se invierten todas las entradas de una celda de sumador completo,
también se invierten todas las salidas.
ao bo a1 b1 a2 b2 a3 b3
cccci o
1 3
FA FA FA FA
SSS0 1
2
c2
S3
De esta forma habremos conseguido eliminar un inversor en el camino
crítico de cada sumador (3 inversores en el camino crítico total)
24. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
Co(G,P)=G+P×Ci
S(G,P)=PÅCi
G=A×B
D=A’B’
P=AÅB
VDD
A B
Ci
B
A
A
A B B
Kill
"0"-Propagate
Sumador en
espejo
"1"-Propagate Generate
VDD
A B B
Ci
A B Ci
A
Ci
Ci
A
B
VDD
Co S
1. Eliminado inversor en el acarreo 24 transistors
2. Re-ordenación inteligente de PUN y PDN: cuando D o G están a nivel alto,
C’o toma valor VDD o GND respectivamente. Si P=1, se propaga el valor de
acarreo entrante (en formato invertido) a C’o
25. Circuitos vlsi (4º curso)
El sumador
El sumador completo:
diseño del circuito
VDD
A B
Ci
B
A
A
A B B
Kill
"0"-Propagate
"1"-Propagate Generate
VDD
A B B
Ci
A B Ci
A
Ci
Ci
A
B
VDD
Co S
24 transistors Observaciones:
1. Este sumador tiene sólo 24 transistores
2. Las cadenas nMOS y pMOS son completamente simétricas y hay un máximo
de dos transistores en serie en el circuito de generación de acarreo
3. Los transistores conectados a Ci han sido situados lo más cerca posible de la
salida de la puerta
4. Hay que diseñar bien el layout de forma que la capacitancia del nodo C’o sea
lo mínima posible. La utilización de difusión compartida reduce la capacidad.
26. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
El sumador con propagación de acarreo sólo resulta adecuado para
implementaciones de sumas con longitud de palabra relativamente
pequeña.
• Equipos informáticos de sobremesa: 32 bits
• Servidores: 64 bits
• Mainframes, supercomputadoras o procesadores multimedia (ej.:
el procesador de la consola Sony PlayStation2): 128 bits
27. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
Sumador con puenteo de acarreo
Sólo si Po=P1=P2=P3=1, el acarreo se propagará desde la entrada
hasta la salida.
28. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
29. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
Propagación
de acarreo
Puenteo
de acarreo
30. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
Sumador con selección de acarreo
Anticipa los dos valores posibles de la entrada de acarreo y evalúa
por adelantado el resultado de ambas posibilidades. Una vez conocido
el valor real de la entrada de acarreo, puede seleccionarse fácilmente
el resultado correcto mediante una simple etapa multiplexora.
Setup
"0" Carry Propagation
"1" Carry Propagation
Co,k-1 Multiplexer
Co,k+3
Sum Generation
"0"
"1"
P,G
Carry Vector
31. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
0
1
Bit 0–3 Bit 4–7 Bit 8–11 Bit 12–15
Setup
0-Carry
1-Carry
Multiplexer
Setup
0-Carry
1-Carry
Multiplexer
Setup
Setup
0-Carry 0-Carry
1-Carry
Multiplexer
1-Carry
Multiplexer
Ci,0 Co,3 Co,7 Co,11 Co,15
Sum Generation
S0–3
0
1
Sum Generation
S4–7
0
1
Sum Generation
S8–11
0
1
Sum Generation
S
32. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
Sumador con acarro anticipado
ci+1=gi+pici
ci+2=gi+1+pi+1ci+1
ci+3=gi+2+pi+2ci+2
ci+4=gi+3+pi+3ci+3
33. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
Sumador con acarro anticipado
ci+1=gi+pici
ci+2=gi+1+pi+1ci+1
ci+3=gi+2+pi+2ci+2
ci+4=gi+3+pi+3ci+3
34. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
Sumador con acarro anticipado (16 bits, 1 nivel)
35. Circuitos vlsi (4º curso)
El sumador
El sumador binario: consideraciones
de diseño lógico
Sumador con acarro anticipado (16 bits, 2 niveles)