8-Sintesis Multinivel

Anuncio
ELO211: Sistemas Digitales
Tomás Arredondo Vidal
1er Semestre – 2008
Este material está basado en:
❒ textos y material de apoyo:
Contemporary Logic Design 1st / 2nd edition. Gaetano
Borriello and Randy Katz. Prentice Hall, 1994, 2005
❒ material del curso ELO211 del Prof. Leopoldo Silva
❒ material en el sitio http://es.wikipedia.org
8: Multinivel
1
8-Síntesis Multinivel
8.1 Lógica de dos niveles con NOR y NAND
8.2 Lógica multinivel
8.3 Compuertas AND, OR, INVERT (AOI)
8.4 Introducción a síntesis multinivel
8: Multinivel
2
Lógica de dos niveles con NOR
❒ AND con inputs invertidos es un NOR
❍
de Morgan’s:
A’ • B’ = (A + B)’
❒ Circuito de dos niveles NOR-NOR
❍
❍
inputs invertidos no se cuentan
en un circuito típico se invierte una vez y se distribuye la
señal
8: Multinivel
3
Lógica de dos niveles con NAND
❒ OR con inputs invertidos es compuerta NAND
❍
de Morgan’s:
A’ + B’ = (A • B)’
❒ Circuito NAND-NAND de dos niveles
❍
❍
inputs invertidos no se cuentan
en un circuito típico se invierte una vez y se distribuye la
señal
8: Multinivel
4
Lógica de dos niveles con NAND y
NOR
❒ Circuitos NAND-NAND y NOR-NOR
❍
❍
de Morgan’s law: (A + B)’ = A’ • B’
escrito de otra forma: A + B = (A’ • B’)’
(A • B)’ = A’ + B’
(A • B) = (A’ + B’)’
❒ En otras palabras
❍
❍
❍
❍
NOR es lo mismo que AND con inputs invertidos
OR es lo mismo que NAND con inputs invertidos
AND es lo mismo que NOR con inputs invertidos
NAND es lo mismo que OR con inputs invertidos
8: Multinivel
5
Conversión entre formas
❒ Convertir entre circuitos de ANDs y ORs a
circuitos de NANDs y NORs
❍ introducir inversiones apropiadas (“burbujas”)
❒ Cada burbuja tiene que tener un burbuja
correspondiente
❍ conservación de inversiones
❍ no se altera la lógica de la función
❒ Ejemplo: AND/OR to NAND/NAND
A
A
B
B
NAND
Z
NAND
C
C
D
D
Z
NAND
8: Multinivel
6
Conversión entre formas (continuado)
❒ Ejemplo: verificar equivalencia
A
A
B
B
NAND
Z
C
D
NAND
Z
C
D
NAND
Z = [ (A • B)’ • (C • D)’ ]’
= [ (A’ + B’) • (C’ + D’) ]’
= [ (A’ + B’)’ + (C’ + D’)’ ]
= (A • B) + (C • D) ➼
8: Multinivel
7
8-Síntesis Multinivel
8.1 Lógica de dos niveles con NOR y NAND
8.2 Lógica multinivel
8.3 Compuertas AND, OR, INVERT (AOI)
8.4 Introducción a síntesis multinivel
8: Multinivel
8
Lógica Multinivel
❒ x=ADF + AEF + BDF + BEF + CDF + CEF + G
❍
❍
❍
forma reducida de suma de productos (no es canónica)
6 x 3-input AND + 1 x 7-input OR (puede que ni siquiera
exista!)
25 alambres (19 literales más 6 alambres internos)
❒ x = (A + B + C) (D + E) F + G
❍
❍
❍
forma factorizada – no escrita como suma de productos
1 x 3-input OR gate, 2 x 2-input OR gates, 1 x 3-input
AND gate
10 alambres (7 literales más 3 alambres internos)
A
B
C
X
D
E
F
G
8: Multinivel
9
Conversión de lógica multinivel a
compuertas NAND
❒ F = A (B + C D) + B C’
Level 1
Level 2
Level 3
Level 4
C
D
original
AND-OR
network
F
B
A
B
\C
C
D
introduction and
conservation of
bubbles
redrawn in terms
of conventional
NAND gates
F
B
A
B
\C
C
D
F
\B
A
B
\C
8: Multinivel
10
Conversión de lógica multinivel a
compuertas NOR
❒ F = A (B + C D) + B C’
original
AND-OR
network
Level 1
C
D
B
A
B
\C
Level 2
Level 3
Level 4
F
C
introduction and
conservation of
bubbles
D
B
A
F
B
\C
\C
\D
redrawn in terms
of conventional
NOR gates
F
B
\A
\B
C
8: Multinivel
11
Conversión entre formas
❒ Ejemplo
A
A
B
C
D
B
C
D
F
X
F
X
sumar burbujas dobles para invertir
inputs a compuerta OR
circuito original
A
A
X
B
C
\D
F
X
sumar burbujas dobles para
invertir output de AND
B
C
\D
F
\X
insertar inversor para eliminar doble
burbuja en alambre
8: Multinivel
12
8-Síntesis Multinivel
8.1 Lógica de dos niveles con NOR y NAND
8.2 Lógica multinivel
8.3 Compuertas AND, OR, INVERT (AOI)
8.4 Introducción a síntesis multinivel
8: Multinivel
13
Compuertas AND-OR-invert (AOI)
❒ Función AOI: tres etapas de lógica, AND,
OR, Invertir
❍
múltiples compuertas empaquetadas como un
bloque
implementación posible
concepto lógico
A
B
Z
C
D
AND
OR
2x2 AOI gate
simbolo
Z
C
D
NAND
Invert
&
+
&
A
B
NAND
3x2 AOI gate
simbolo
Invert
&
+
&
8: Multinivel
14
Conversión a formas AOI
❒ Procedimiento para poner en forma AOI
❍ calcular complemento de la función en forma
suma de productos
❍ agrupar los 0s en el mapa de Karnaugh
❒ Ejemplo: Implementar XOR
❍ A xor B = A’ B + A B’
A’
❍ AOI form:
&
•
F = (A’ B’ + A B)’
B’
A
+
F
&
B
8: Multinivel
15
Ejemplo del uso del compuertas AOI
❒ Ejemplo:
❍
❍
❍
❍
❍
❍
F = A B + A C’ + B C’
F = (A’ B’ + A’ C + B’ C)’
Implementado con compuerta AOI de 3x2-inputs
F = (A + B) (A + C’) (B + C’)
F = [(A’ + B’) (A’ + C) (B’ + C)]’
Implementado con compuerta AOI de 3x2-inputs
❒ Ejemplo: Función de igualdad de 4-bits
❍
Z = (A0 B0 + A0’ B0’)(A1 B1 + A1’ B1’)(A2 B2 + A2’ B2’)(A3 B3 +
A3’ B3’)
cada uno implementado con una compuerta 2x2 AOI
8: Multinivel
16
Ejemplo del uso del compuertas AOI
❒ Ejemplo: Función de igualdad de 4-bits
A0
B0
high if A0 ≠ B0
low if A0 = B0
&
+
&
A1
B1
&
conservation of bubbles
+
&
NOR
A2
B2
&
+
&
A3
B3
Z
if all inputs are low
then Ai = Bi, i=0,...,3
output Z is high
&
+
&
8: Multinivel
17
8-Síntesis Multinivel
8.1 Lógica de dos niveles con NOR y NAND
8.2 Lógica multinivel
8.3 Compuertas AND, OR, INVERT (AOI)
8.4 Introducción a síntesis multinivel
8: Multinivel
18
Introducción: Síntesis Multinivel
❒ La minimización como suma de productos o producto de sumas es
un proceso de síntesis lógica en dos niveles.
❒ Estos tienen un mínimo retardo para la propagación de los
cambios entre las entradas y salidas pero a un costo de tener
compuertas con gran numero de entradas
❒ Estas requieren mayor superficie para ubicar los transistores
por lo cual típicamente los diseños de sistemas complejos suelen
tener mas de dos niveles
❒ Los dispositivos FPGA basado en interconexión de pequeñas
celdas estándar se presta para implementación de lógica
multinivel
8: Multinivel
19
Introducción: Síntesis Multinivel
❒ Un circuito optimo de dos niveles usa el menor numero
❒
❒
❒
❒
❒
de términos de productos y literales
Se entiende por optimización multinivel al proceso de
encontrar factores lógicos que sean comunes, lo cual
reduce el fan-in pero aumenta el numero de niveles
En muchas tecnologías fan-ins de mas de cuatro son
raros o no existentes es por eso que hay mucho interés
en optimización (o síntesis) multinivel
No es tan fácil definir un circuito optimo para
implementaciones de multinivel.
Es el que tiene el mínimo numero de compuertas,
retardo, fan-ins o literales?
El objetivo es sintetizar una implementación razonable
8: Multinivel
20
ya que cuesta saber a ciertas si es optimo
Introducción: Síntesis Multinivel
❒ Se modelan las ecuaciones usando una red lógica
❒
❒
❒
❒
boolana en la cual los componentes conectados (nodos)
tienen como outputs funciones booleanas
Usando transformaciones locales se trata de reducir el
área y el tiempo de propagación del nodo o bien a
mapear la función del nodo a determinada interconexión
de celdas básicas
Se intentan cambios (operaciones) y se aceptan si es
que logran disminuir el costo del circuito (red o grafo).
En caso contrario se intenta otra modificación y esto se
repite hasta lograr reducciones en el costo
La operaciones usadas tienen analogías con la
multiplicación y división de polinomios (ver texto).
8: Multinivel
21
Introducción: Síntesis Multinivel
❒ Se modelan las ecuaciones usando una red lógica
boolana en la cual los componentes conectados (nodos)
tienen como outputs funciones booleanas
w = f1(A, B)
A
x1
B
x2
A
B
y = f2(A, B)
z(w, y)
8: Multinivel
22
Introducción: Síntesis Multinivel
❒ Hay cinco operaciones básicas para manipular redes
multinivel: factorizar, descomposición, extracción,
substitución y colapsar
❒ Factorizar toma una expresión en dos niveles y la reexpresa como una función multinivel sin introducir
subfunciones. Puede ser mucho mas compacta que la
cobertura mínima dada por la suma de implicantes primos.
❒ Ejemplo: La función F usa 9 literales y 5 compuertas
F = AC + AD + BC + BD + E
Factorizando el numero de literales se reduce a 5 y las
compuertas a 4:
F = (A + B)(C + D) + E
8: Multinivel
23
Introducción: Síntesis Multinivel
❒ Descomposición toma una expresión booleana y la
remplaza por nuevas expresiones mas simples. Se aplica
a funciones que ya han sido factorizadas.
❒ Ejemplo: La función F usa 12 literales y 9 compuertas
F = ABC + ABD + A’C’D’ + B’C’D’
Factorizando:
F = (AB)(C + D) + (A’ + B’)(C’D’) = (AB)(C+D) + (AB)’(C+D)’
Decomponiendo el grafo en tres funciones mas simples:
F = XY + X’Y’
X = AB
Y=C+D
La función final tiene 8 literales y requiere 7
compuertas. Tiene tres nodos en su representación en
el grafo.
8: Multinivel
24
Introducción: Síntesis Multinivel
❒ Extracción toma una colección de expresiones booleanas y
determina sub-expresiones comunes para ser reutilizados.
❒ Requiere que las funciones se expresen como factores y
que los factores comunes se extraigan
❒ Ejemplo: Las funciones F, G y H (contienen 11 literales y
8 compuertas).
F = (A+B)CD + E
G = (A + B)E’
H = CDE
Se extraen sub-funciones comunes (divisores primarios):
X = (A + B) e Y = (CD)
Las funciones se pueden expresar como:
F = XY + E G=XE’
H=YE
X=A+B
Y=CD
Esta función tiene 11 literales y solo 7 compuertas. Cuantos
8: Multinivel
25
nodos tiene?
Introducción: Síntesis Multinivel
❒ Substitución substituye una función G en otra función F y
re-expresa F en términos de G.
❒ Ejemplo: La función F (4 literales y 2 compuertas).
F = A + BCD
Si se tiene la función G = A + BC y se substituye en F:
F = A + BCD = G(A + D)
(simplificando)
Esta función (F) tiene 3 literales y 2 compuertas.
Esto es ventajoso solo si podemos usar G en otra función
ya que tiene 3 literales y una compuerta.
❒ Una vez que se determinan sub-expresiones comunes se
pueden usar para expresar las funciones originales como
funciones factorizadas usando las sub-expresiones.
8: Multinivel
26
Introducción: Síntesis Multinivel
❒ Colapsar es la operación reversa de substitución. Puede
ser usada para reducir el numero de niveles para
satisfacer un requerimiento temporal.
❒ Ejemplo: Colapsar G de vuelta en F
F = A + BCD = G(A + D)
F = (A + BC) (A + D)
F = AA + AD + ABC + BCD
F = A + BCD
❒ Esto es ventajoso si no podemos usar G en otra función.
❒ Muchas veces se tiene que limpiar el grafo usando
operaciones ya que los resultados de otras operaciones lo
requieren (e.g. si es que G ya no es usado en otra función)
8: Multinivel
27
Resumen de lógica multinivel
❒ Ventajas
❍ circuitos puede ser mas pequeños
❍ compuertas tienen menor fan-in
❍ circuitos pueden ser mas rápido
❒ Desventajas
❍ mas difícil diseñar
❍ herramientas para la optimización no son tan
buenas como para dos niveles
❍ análisis es mas complejo
8: Multinivel
28
Descargar