elo211: sistemas digitales tomásarredondo vidal 1er...
TRANSCRIPT
8: Multinivel 1
ELO211: Sistemas Digitales
Tomás Arredondo Vidal1er 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 2
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 3
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 4
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 5
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
8: Multinivel 6
A
B
C
D
Z
A
B
C
D
Z
NAND
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
❒ Ejemplo: AND/OR to NAND/NAND
8: Multinivel 7
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
NAND
8: Multinivel 8
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 9
ABC
DE
FG
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-inputAND gate
❍ 10 alambres (7 literales más 3 alambres internos)
8: Multinivel 10
Level 1 Level 2 Level 3 Level 4
originalAND-OR network
A
CD
B
B\C
F
introduction andconservation of
bubblesA
CD
B
B\C
F
redrawn in termsof conventional
NAND gates A
CD
\B
B\C
F
Conversión de lógica multinivel a compuertas NAND
❒ F = A (B + C D) + B C’
8: Multinivel 11
Level 1 Level 2 Level 3 Level 4
A
CD
B
B\C
ForiginalAND-OR network
introduction andconservation of
bubbles A
C
DB
B
\C
F
redrawn in termsof conventional
NOR gates\A
\C\D
B
\BC
F
Conversión de lógica multinivel a compuertas NOR❒ F = A (B + C D) + B C’
8: Multinivel 12
Conversión entre formas
❒ Ejemplo
A
X
BC
D
F
circuito original
A
X
BC
D
F
sumar burbujas dobles para invertirinputs a compuerta OR
\D
A
BC
F
\D
A
X
BC
F\X
insertar inversor para eliminar dobleburbuja en alambre
sumar burbujas dobles para invertir output de AND
X
8: Multinivel 13
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 14
&
&
+2x2 AOI gate
simbolo
&
&
+3x2 AOI gate
simbolo
NAND NAND Invert
implementación posible
AB
CD
Z
AND OR Invert
concepto lógico
AB
CD
Z
Compuertas AND-OR-invert (AOI)❒ Función AOI: tres etapas de lógica, AND, OR, Invertir❍ múltiples compuertas empaquetadas como un bloque
8: Multinivel 15
&
&
+
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:• F = (A’ B’ + A B)’
8: Multinivel 16
cada uno implementado con una compuerta 2x2 AOI
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’)
8: Multinivel 17
high if A0 ≠ B0
low if A0 = B0
if all inputs are lowthen Ai = Bi, i=0,...,3
output Z is high
conservation of bubbles
A0B0
A1B1
A2B2
A3B3
&
&+
&
&+
&
&+
&
&+
NOR Z
Ejemplo del uso del compuertas AOI
❒ Ejemplo: Función de igualdad de 4-bits
8: Multinivel 18
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 19
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 suelentener 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 20
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 razonableya que cuesta saber a ciertas si es optimo
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
❒ 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 22
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
Bx1
x2
A
B
w = f1(A, B)
y = f2(A, B) z(w, y)
8: Multinivel 23
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:
F = (A + B)(C + D) + E
8: Multinivel 24
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 25
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
nodos tiene?
8: Multinivel 26
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 27
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)