Apéndice 7 Uso de abc Un Sistema para síntesis secuencial y verificación 7.1. Introducción En las primeras etapas de un diseño digital se requiere obtener la estructura del sistema en términos de componentes de hardware. Se denomina síntesis lógica al proceso de generar un circuito en términos de compuertas y flip-flops; en esta etapa suele efectuarse una minimización del número de transistores que se emplearán (optimización espacial). Luego es necesario efectuar minimizaciones de los retardos (optimización temporal), para esto se requiere efectuar transformaciones de la red booleana de tal modo que la implementación final satisfaga los requerimientos. A medida que aumenta el tamaño del sistema estas técnicas no pueden aplicarse manualmente y resultan indispensables herramientas computacionales. Abc es un programa interactivo para la síntesis y optimización de circuitos combinacionales, secuenciales sincrónicos. Pueden describirse funciones booleanas mediante: ecuaciones (.eqn), tablas de verdad o matrices de cobertura (.pla), redes lógicas booleanas (.blif). Los circuitos secuenciales pueden almacenarse como máquinas de estados finitos describiendo el diagrama de estados (.kiss) o mediante una red booleana formada por compuertas lógicas y elementos de memoria (blif sincrónicos). Las funciones pueden ser manipuladas escribiendo comandos en forma interactiva o empleando archivos de comandos (scripts). El comando help despliega las órdenes disponibles. 7.2. Síntesis de sistemas combinacionales. 7.2.1. Descripción en formato pla. Se asume el tipo fd para la descripción de la tabla. En la parte de las salidas un 1 indica que el cubo pertenece al conjunto on-set; Un - indica que el producto pertenece al conjunto de condiciones superfluas; y un 0 indica que el cubo no tiene significado para la salida dada. Cada salida se representa por un nodo lógico. Sólo están soportadas PLA binarias, esto indica que se ignoran los cubos don t-care. El Ejemplo 5.5, se tiene la siguiente función Booleana, descrita por sus mintérminos: 1
2 Sistemas Digitales f(a, b, c, d) = m(0, 1, 3, 8, 9, 11, 13, 14) La cual puede describirse por el archivo ej5_5.pla: # f(a, b, c, d) = Suma de m(0, 1, 3, 8, 9, 11, 13, 14).i 4.o 1.ilb a b c d.ob f.p 8 0000 1 0001 1 0011 1 1000 1 1001 1 1011 1 1101 1 1110 1.e Dentro de abc, el comando: read_pla./ej/ej5_5.pla Ingresa la descripción de la red, asumiendo que el archivo se encuentra en un subdirectorio, de nombre ej, desde la ubicación desde donde se invoca a abc. print_kmap f Imprime el mapa de Karnaugh de la salida f. c d \ a b 0 0 1 1 0 1 1 0 00 1 1 01 1 1 1 11 1 1 10 1 sop Convierte las funciones de los nodos, de las representaciones internas, en suma de productos. write_pla./ej/ej5_5ip.pla
Apéndice 7. Uso de abc 3 Escribe en el subdirectorio ej, un archivo con los implicantes primos, en formato pla..i 4.o 1.ilb a b c d.ob f.p 4 1110 1 1-01 1-00- 1-0-1 1.e Donde se advierte que de los 8 productos (mintérminos en el ejemplo) la minimización reduce la red lógica a 4 cubos o productos. Forma minimizada que puede leerse según: f(a,b,c,d) = abcd +ac'd+b d+b c write_eqn./ej/ej5_5.eqn Produce el archivo en formato eqn de Synopsys. Las ecuaciones se entregan en sus formas factorizadas. INORDER = a b c d; OUTORDER = f; f = (a * ((!c * d) + (b * c *!d))) + (!b * (!c + d)); El commando: print_fact Entrega las formas factorizadas en la consola. Existen una serie de comandos de escritura en archivos. Genera archivos blif y también en Verilog. write_verilog./ej/ej5_5.verilog Produce un modulo estructural, con las formas factorizadas de la red lógica. module unknown ( a, b, c, d, f ); input a, b, c, d; output f; assign f = (a & ((~c & d) (b & c & ~d))) (~b & (~c d)); endmodule Es preciso cambiarle el nombre al módulo de unknown (desconocido) a ej5_5, si se desea emplearlo. El comando empty, borra las redes almacenadas en la memoria. Pueden ingresarse las descripciones eqn, blif, o verilog de redes combinacionales y proceder a la minimización, de manera similar a la mostrada.
4 Sistemas Digitales Referencias http://www.eecs.berkeley.edu/~alanmi/abc/
Apéndice 7. Uso de abc 5 Índice general. APÉNDICE 7... 1 USO DE ABC... 1 UN SISTEMA PARA SÍNTESIS SECUENCIAL Y VERIFICACIÓN... 1 7.1. INTRODUCCIÓN... 1 7.2. SÍNTESIS DE SISTEMAS COMBINACIONALES.... 1 7.2.1. Descripción en formato pla.... 1 REFERENCIAS... 4 ÍNDICE GENERAL.... 5 ÍNDICE DE FIGURAS.... 6
6 Sistemas Digitales Índice de figuras. No se encuentran elementos de tabla de ilustraciones.