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-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)
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
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
Lógica de dos niveles con NAND y
NOR
❒ Circuitos NAND-NAND y NOR-NOR
❍ de Morgan’s law: (A + B)’ = A’ • B’ (A • B)’ = A’ + B’ ❍ escrito de otra forma: 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
A B C Z A B C Z NAND NAND
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
Z = [ (A • B)’ • (C • D)’ ]’ = [ (A’ + B’) • (C’ + D’) ]’ = [ (A’ + B’)’ + (C’ + D’)’ ] = (A • B) + (C • D) ➼
Conversión entre formas (continuado)
❒
Ejemplo: verificar equivalencia
A B C D Z A B C D Z NAND NAND NAND8-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)
A B C D E F X
Lógica Multinivel
❒ x = A D F + A E F + B D F + B E F + C D F + C E F + 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
Level 1 Level 2 Level 3 Level 4 original AND-OR network A C D B B \C F introduction and conservation of bubbles A C D B B \C F redrawn in terms of conventional NAND gates A C D \B B F
Conversión de lógica multinivel a
compuertas NAND
Level 1 Level 2 Level 3 Level 4 A C D B B \C F original AND-OR network introduction and conservation of bubbles A C D B B \C F redrawn in terms of conventional NOR gates \A \C \D B \B C F
Conversión de lógica multinivel a
compuertas NOR
Conversión entre formas
❒Ejemplo
A X B C D F circuito original A X B C D Fsumar burbujas dobles para invertir inputs a compuerta OR \D A B C F \D A X B C \X F
insertar inversor para eliminar doble burbuja en alambre
sumar burbujas dobles para invertir output de AND
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)
& & + 2x2 AOI gate simbolo & & + 3x2 AOI gate simbolo
NAND NAND Invert
implementación posible A B C D Z AND OR Invert concepto lógico A B C D Z
Compuertas AND-OR-invert (AOI)
❒
Función AOI: tres etapas de lógica, AND,
OR, Invertir
❍ múltiples compuertas empaquetadas como un bloque
& & + A’ B’ A B F
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’ ❍ AOI form:
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 +
high if A0 ≠ B0 low if A0 = B0
if all inputs are low
then Ai = Bi, i=0,...,3 output Z is high conservation of bubbles A0 B0 A1 B1 A2 B2 A3 B3 & & + & & + & & + & & + NOR Z
Ejemplo del uso del compuertas AOI
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)
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
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,
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
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
A B x1 x2 A B w = f1(A, B) y = f2(A, B) z(w, y)
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
re-expresa 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:
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
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
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
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)
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