ELO211: Sistemas Digitales Tomás rredondo Vidal 1er Semestre 2008 Este material está basado en: textos y material de apoyo: ontemporary Logic Design 1 st / 2 nd edition. Gaetano orriello 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 NND 8.2 Lógica multinivel 8.3 ompuertas ND, OR, INVERT (OI) 8.4 Introducción a síntesis multinivel 8: Multinivel 2
Lógica de dos niveles con NOR ND con inputs invertidos es un NOR de Morgan s: = ( + ) ircuito 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 NND OR con inputs invertidos es compuerta NND de Morgan s: + = ( ) ircuito NND-NND 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 NND y NOR ircuitos NND-NND y NOR-NOR de Morgan s law: ( + ) = ( ) = + escrito de otra forma: + = ( ) ( ) = ( + ) En otras palabras NOR es lo mismo que ND con inputs invertidos OR es lo mismo que NND con inputs invertidos ND es lo mismo que NOR con inputs invertidos NND es lo mismo que OR con inputs invertidos 8: Multinivel 5
onversión entre formas onvertir entre circuitos de NDs y ORs a circuitos de NNDs y NORs introducir inversiones apropiadas ( burbujas ) ada burbuja tiene que tener un burbuja correspondiente conservación de inversiones no se altera la lógica de la función Ejemplo: ND/OR to NND/NND D Z D NND NND NND Z 8: Multinivel 6
onversión entre formas (continuado) Ejemplo: verificar equivalencia D Z D NND NND NND Z Z = [ ( ) ( D) ] = [ ( + ) ( + D ) ] = [ ( + ) + ( + D ) ] = ( ) + ( D) 8: Multinivel 7
8-Síntesis Multinivel 8.1 Lógica de dos niveles con NOR y NND 8.2 Lógica multinivel 8.3 ompuertas ND, OR, INVERT (OI) 8.4 Introducción a síntesis multinivel 8: Multinivel 8
Lógica Multinivel x = D F + E F + D F + E F + D F + E F + G forma reducida de suma de productos (no es canónica) 6 x 3-input ND + 1 x 7-input OR (puede que ni siquiera exista!) 25 alambres (19 literales más 6 alambres internos) x = ( + + ) (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 ND gate 10 alambres (7 literales más 3 alambres internos) D E F G X 8: Multinivel 9
onversión de lógica multinivel a compuertas NND F = ( + D) + original ND-OR network D \ Level 1 Level 2 Level 3 Level 4 F introduction and conservation of bubbles D \ F redrawn in terms of conventional NND gates D \ \ F 8: Multinivel 10
onversión de lógica multinivel a compuertas NOR F = ( + D) + introduction and conservation of bubbles original ND-OR network D \ D \ Level 1 Level 2 Level 3 Level 4 F F redrawn in terms of conventional NOR gates \ \D \ \ F 8: Multinivel 11
onversión entre formas Ejemplo D X F D X F circuito original sumar burbujas dobles para invertir inputs a compuerta OR \D X F \D X \X F sumar burbujas dobles para invertir output de ND 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 NND 8.2 Lógica multinivel 8.3 ompuertas ND, OR, INVERT (OI) 8.4 Introducción a síntesis multinivel 8: Multinivel 13
ompuertas ND-OR-invert (OI) Función OI: tres etapas de lógica, ND, OR, Invertir múltiples compuertas empaquetadas como un bloque concepto lógico implementación posible D Z D Z ND OR Invert NND NND Invert 2x2 OI gate simbolo & & + 3x2 OI gate simbolo & & + 8: Multinivel 14
onversión a formas OI Procedimiento para poner en forma OI calcular complemento de la función en forma suma de productos agrupar los 0s en el mapa de Karnaugh Ejemplo: Implementar XOR xor = + OI form: F = ( + ) & & + F 8: Multinivel 15
Ejemplo del uso del compuertas OI Ejemplo: F = + + F = ( + + ) Implementado con compuerta OI de 3x2-inputs F = ( + ) ( + ) ( + ) F = [( + ) ( + ) ( + )] Implementado con compuerta OI de 3x2-inputs Ejemplo: Función de igualdad de 4-bits Z = (0 0 + 0 0 )(1 1 + 1 1 )(2 2 + 2 2 )(3 3 + 3 3 ) cada uno implementado con una compuerta 2x2 OI 8: Multinivel 16
Ejemplo del uso del compuertas OI Ejemplo: Función de igualdad de 4-bits 0 0 & & + high if 0 0 low if 0 = 0 1 1 & & + conservation of bubbles 2 2 & & + NOR Z if all inputs are low then i = i, i=0,...,3 output Z is high 3 3 & & + 8: Multinivel 17
8-Síntesis Multinivel 8.1 Lógica de dos niveles con NOR y NND 8.2 Lógica multinivel 8.3 ompuertas ND, OR, INVERT (OI) 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 FPG 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 ya que cuesta saber a ciertas si es optimo 8: Multinivel 20
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(, ) x1 x2 y = f2(, ) 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 = + D + + D + E Factorizando el numero de literales se reduce a 5 y las compuertas a 4: F = ( + )( + 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 = + D + D + D Factorizando: F = ()( + D) + ( + )( D ) = ()(+D) + () (+D) Decomponiendo el grafo en tres funciones mas simples: F = XY + X Y X = Y = + 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 = (+)D + E G = ( + )E H = DE Se extraen sub-funciones comunes (divisores primarios): X = ( + ) e Y = (D) Las funciones se pueden expresar como: F = XY + E G=XE H=YE X=+ Y=D Esta función tiene 11 literales y solo 7 compuertas. uantos nodos tiene? 8: Multinivel 25
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 = + D Si se tiene la función G = + y se substituye en F: F = + D = G( + 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 olapsar es la operación reversa de substitución. Puede ser usada para reducir el numero de niveles para satisfacer un requerimiento temporal. Ejemplo: olapsar G de vuelta en F F = + D = G( + D) F = ( + ) ( + D) F = + D + + D F = + D 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