SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe...

51
SaablertadtremQo SlvERSlDAD AUTONOMA METROPOLITANA-IZTAPALAPA Departamento de IngenierSa Eldctrica Area de Ingeniersa Electrdnica MINIMIZACION DE CIRCUITOS COMBINATORIOS DE SALIDA MULTIPLE Y REALIZACION CON COMPUERTAS UNIVERSALES Guzmdn Ldpez Miguel A. RES'UMEN El diseño de sistemas digitales presenta posibilidades de ser automatizado, al menos en algunos de los algoritmos que - utiliza. Un programa para computadora puede servir como una herramienta de diseño, con aplicaciones diddcticas o de desa- rrollo. Se presentala descripcidn de un sistema desarrollado en el Departamento de Ingenierla Eldlctrica de la Unidad Iztapalapa, para servir como herramienta d.e diseño de circuitos combinatorios de salida multiple y realizacibn utilizando compuertas univer- sales. El sistema se compone de dos programas que funcionan independientemente, pero que pueden comunicarse para comple - tar un diseño. Los programas se encuentran disponibles para computadores personales. Informe Tecnico No. 2 3 noviembre de 1987

Transcript of SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe...

Page 1: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

SaablertadtremQo

SlvERSlDAD AUTONOMA METROPOLITANA-IZTAPALAPA

Departamento de IngenierSa Eldctrica Area de Ingeniersa Electrdnica

MINIMIZACION DE CIRCUITOS COMBINATORIOS DE SALIDA MULTIPLE Y

REALIZACION CON COMPUERTAS UNIVERSALES

Guzmdn Ldpez Miguel A.

RES'UMEN

El diseño de sistemas digitales presenta posibilidades de ser automatizado, al menos en algunos de los algoritmos que - utiliza. Un programa para computadora puede servir como una herramienta de diseño, con aplicaciones diddcticas o de desa- rrollo.

Se presenta la descripcidn de un sistema desarrollado en el Departamento de Ingenierla Eldlctrica de la Unidad Iztapalapa, para servir como herramienta d.e diseño de circuitos combinatorios de salida multiple y realizacibn utilizando compuertas univer- sales.

El sistema se compone de dos programas que funcionan independientemente, pero que pueden comunicarse para comple - tar un diseño. Los programas se encuentran disponibles para computadores personales.

Informe Tecnico No. 2 3 noviembre de 1987

Page 2: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

I N I C E

CAPITULO i

METODOLOGIA

MAPAS DE KARNAUGH 1.1

METODO DE QUINE-MCCLUSKEY i . 2

REALIZACION CON COMPUERTAS UNIVERSALES 1.5

CAPITULO 2

REALIZACION

EL PROGRAMA DE MINIMIZACION 2.1

EL PROGRAMA DE REALIZACSON CON LOGICA NAND 2.3

AREA DE DATOS 2.4

POSIBILIDADES DE EXPANSION 2.5

CAPITULO 3

EJEMPLOS

EJEMPLO 4 3.4

EJEMPLO 2 3.5

APENDICE A

PROGRAMA DE MINIMIZACION DE CIRCUITOS DE SALIDA MULTIPLE

APENDICE B

PROGRAMA DE REALIZACION CON COMPUERTAS UNIVERSALES

APENDICE C

REFERENCIAS BIBLIOGRAFICAS

Page 3: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

I N T R O D U C C I O N

Page 4: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

Este trabaJo presenta la realization de dos programas que son

una herramienta para el diseno automatizado de circuitos

digitales combinatorios. El primero de los programas lleva a cabo

la minimizacr6n di3 circuitos de sallda mQltiple, mediante el

metodo de Qulne-McCluskey. El segundo de los programas obtiene

las conexiones del circuito, usando compuertas universales NAND

de dos entradas. Ambos programas se produjeron para utilizarse en

computadoras personales y se escribieron en Turbo Pascal.

Estos programas representan una buena ayuda para el diseno de

sistemas digitales a nivel de realizacibn de sistemas o con fines

didilcticos. En especial, en el area de la ensefianza del diseno

lbgico, permiten verificar e l trabaJo realizado de manera manual

y tambien pueden aprovecharse como medio para obtener opciones de

diseno para eleccibn del disenador.

A pesar de que este siste3a se encuentra en una etapa muy

simple, se puede utilizar en los cursos de sistemas digitales de

las licenciaturas c8C l a Universrdad, como un producto terminado,

ademas de servlr cono base para el desarrollo de un sistema mas

completo.

Page 5: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

C A , P I T U L ’ O i M E T O D O L O G I A

Page 6: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

En todo disetlo, siempre se desea obtener aquel que, siendo

el mas sencillo, pueda efectuar el trabajo esperado. Esto es, se

trata de obtener la representaci6n mínima ( o menos costosa) de un

diseno. En el caso de circuitos 16gicos combinacionales, esto

irnpllca obtener la representaci6n en minitCrminos o maxiterrninos

que contenga el menor nlllmero de literales.

Cuando se trabaJa con expresiones booleanas, es posible

efectuar alguna simplificaci6n aplicando el algebra de Boole, sin

embargo, frecuentemente, la manipulaci6n de expresiones es

compleja y el encontrar una linea directa de ataque requiere de

ingenio y de suerte. Esto se debe, fundamentalmente, a que no

exlsten reglas precisas ni un algoritmo concreto a seguir en la

rnanipulaci6n algebraica. Sin embargo, hay dos metodos

sistematicos para minimizar funciones booleanas:

- Mapas de Karnaugh - Metodo tabular de Quine-McClusBey

MAPAS DE KARNAUGH

El mapa de Karnaugh es uno de los medios mas poderosos en el

repertorio del disenador 16gico. La importancia del mapa no se

basa en la aplicacion de algdn teorema maravilloso, sino en la

utílizaciOn de la capacidad de la mente humana para reconocer

patrones en representaciones pict6ricas de datos. El mapa de

Karnaugh se puede considerar ya sea como una forma pict6rica de

tabla de verdad o como una extensi6n de los mapas de Venn, donde

cada casilla representa un subconjuto del espacio de variables.

El mapa de Karnaugh es una tabla, donde las casillas

- i . í -

Page 7: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

adyacentes corresponden a una combination de variables, las

cuales difieren a lo mas en que una de las variables aparece

negada en una combinaclon y no negada en otra.

L a mi.n.imizaci6n se realiza asociando aquellas casillas, adya-

centes, en el mapa que tengan el mismo valor (O 6 I), donde se

considera que el extremo superior de la tabla es adyacente al

inferior y el izquierdo es adyacente al derecho. Los terminos

correspondientes a dichas casillas difieren en variables que se

pueden eliminar, ya que se tiene el mismo valor de la funci6n

independientemente del valor de dichas variables.

k

METOM) DE QUINE-MCCLUSKEY

Una variable binaria puede representarse mediante dos puntos en

los extremos de una recta finita. Esto se amplia para representar

los cuatro valores de dos variables logicas mediante los cuatro

vCrtices de un cuadrado, los ocho valores de tres variables por

los vertices de un cubo, y así para cubos de mas dimensiones.

En general, se dice que las diferentes combinaciones de n

variables se representan como Puntos en el espacio-n y que la

colecci6n de todos los puntos posibles forman los vCrtices de un

cubo-n o hipercubo de Boole.

Para representar funciones en el cubo-n, se establece una

correspondencia uno a uno entre los terminos de n variables y los

vertices del cubo-n.

Se dice que dos cubos-O de una funci6n (terminos) forman un

cubo-I si difieren so10 en una coordenada. De modo similar, se

dice que un conjunto de cuatro cubos-O, cuyas coordenadas son

- 1.2 -

Page 8: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

iguales en todas sus variables excepto en dos, forman un cubo-2

de la funciOn.

Cuando todos los vertices (cubos-O) de un cubo-k estan en el

conjunto de los vertices que componen un cubo mayor, se dice que

el cubo mas pequeno esta contenido o cubierto por el cubo mayor.

El mapa de Karnaugh presenta ciertas desventajas, primero, se

trata btisicamente de un metoldo de prueba y error, que no ofrece

ninguna garantla de producir la mejor realizacibn. En seguno

lugar, su dependencia de l a capacidad intuitiva del ser humano

para reconocer patrones, hace que sea inadecuado para una

computadora digital.

El metodo tabular, basado principalmente en el trabajo de,

W. V. Quine y E. J. McCluskey, ayuda a corregir estas deficiencias.

Este es un procedimiento organizado ingeniosamente para efectuar

una bttsqueda exhaustiva de todas las combinaciones de cubos-O

(miniterminos) en cubos de mayor dimensidn y luego seleccionar la

combinacidn mínima de cubos requerida para realizar, la funcion.

El punto de partida del m'etodo es la lista de miniterminos de

la funcien a minimizar.

El primer paso consiste en convertir todos los miniterminos a

su forma binaria y luego se cuenta el nllrnero de unos en dicha

representaci6n. A continuaci6n se ordena la lista de miniterminos

en forma creciente y clasificados, tambien crecientemente, por el

n~el'0 de unos en su representacibn binaria. Cada clase difiere

de otra adyacente en que una de sus variables esta negada en la

otra clase.

Una vez que se han agrupado l o s miniterminos, se compara cada

uno de cada clase con aquel los; de la clase siguiente, si los dos

- i . 3 -

Page 9: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

miniterminos son iguales en todas sus variables excepto en una,

se marcan como cubiertos y se anota un nuevo cubo-í, que tiene

las mismas variables que aquellos cubos-O que cubre excepto en la

variable en que difieren y que en el cubo-i se elimina.

Una vez que se agotan todos los grupos de cubos-O, el

siguiente paso consiste en tratar de combinar cubos-i, para

obtener cubos-2, en este caso, dos cubos-í se combinan si todas

sus variables son iguales, excepto una y, ademas, las variables

eliminadas en su formacion son las mismas.

El proceso se contintla para formar cubos de mayor dimension,

hasta que ya no sea posible una combinacibn de cubos.

Los cubos-k que no fueron cubiertos por un cubo mayor, que se

denominan implicantes primos, se separan.

Un metodo alterno para obtener los implicantes primos consiste

en maneJar las representaciones decimales de los miniterminos, y

en este caso, la combinacion de dos cubos-k es posible 3610 si la

diferencia entre la representacien decimal de los cubos-O menores

de cada cubo-k es una potencia de dos (lo cual indica que

difieren exactamente en una sola variable).

Cada cubo-IC esta representado en una realizacion de suma de

productos por medio de un termino de productos de n - k

literales, donde n es el ntlmero de literales distintas que apare-

cen en la funcion. Por lo tanto, cualquier conjunto de cubos-ir,

que contenga todos los cubos-O (miniterminos) de la funcion,

proporcionara3 una realizacion de suma de productos. En esta etapa

se cuenta con una lista de todos los cubos-k de la funcion. Para

completar el disetio, se debe seleccionar un conjunto de cubos-k

Page 10: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

que contenga todos los cubos.-O y que conduzca a una reallzacibn

minima de suma de productos. Tal conjunto debe constar de un

subconjunto de los implicantes primos.

Para determinar los implicantes primos de clrcuitos de salida

mOItiple, se debe obtener una lista de todos los mlniterminos que

aparecen en cualquiera de lais funciones, ordendndolos de manera

"??ciente y clasificandolos por el nllmero de unos en su

rekresentaci6n binaria.

S e trata de combinar 10:: cubos para formar cubos de mayor

dAmenSibn, practicamente en la misma forma que para una sola

funcibn, pero con algunas diferencias importantes:

No se pueden combinar dos cubos, a menos que pertenezcan

por lo menos a una funci6n en coman. Es decir, un cubo de una

funci6n no se puede combinar con cubos de otra funci6n.

Cuando se combinan dos cubos, el cubo resultante pertenece

a las funcionés comunes en los cubos que se combinan.

Un cubo se considera combinado o cubierto s610 si las

funciones a las que pertenece el cubo mayor son las mismas que

las del cubo menor.

REALIZACION CON COMPUERTAS UNIVERSALES.

Existen ciertas compuertas que pueden utilizarse para que

funcionen como cualquier otro tipo de compuerta, estas son: NAND

(conjuncibn negada) y NOR (disyunci6n negada). A partir de una

compuerta NAND se pueden obtener:

Un inversor, aplicando la misma funci6n a las entradas de

la compuerta.

Una compuerta AND, negando la salida de la NAND.

- 1 . 5 -

Page 11: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

Una compuerta OR, negando las entradas de la compuerta

NAND.

De tal forma que estas ConIpuertas, conocidas como compuertas

universales, pueden utilizarse para reemplazar a cualquiera otra.

Los circuitos digitales se construyen frecuentemente con com-

puertas universales, ya que estas son mas faciles de fabricar con

componentes electr6nicos y son las compuertas basicas utilizadas

en todas las familias de circuitos 16gicos integrados. Una

ventaja adicional, al utilizar un solo tipo de compuertas, con-

siste en la reduccilbn del desperdicio de a l g m nllunero de compo-

nentes de cada tipo que se utilicen y, ademas, solamente se

requiere proveerse de una clase de compuerta, que puede utilizar-

se en cualquier parte del circuito ha construirse. ,/”

, ./’

/’ ,/

- 1 . 6 -

Page 12: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

C A P I T U L O 2 R E A L I Z A C I O N

Page 13: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

El sistema se compone de dos programas, uno que minimiza las

expresiones para hasta ocho funciones de hasta doce varlables y

otro que obtiene la realizacidn en 16gica NAND de las expresiones

(de hasta doce variables).

Se eligi6 tener dos programas por separado, debido a las

siguientes razones:

1 ) Se tienen dos funciones distintas a realizar: minimizar

funciones booleanas y realizar funciones en 16gica NAM), que

son independientes.

2 ) Se requiere un gran espacio de almacenamiento para los

datos y este no se ocupa de manera simultiinea, de tal forma

que se puede aprovechar mejor el espacio disponible en la

memoria (64K bytes para Turbo-Pascal) si se separan las

Areas de datos de los prlogramas.

3 ) El sistema resultante se compone de dos m6dulos pequefios

y simples.

Los dos programas que componen el sistema fueron escrltos en

Turbo Pascal, para utilizarse en computadoras personales, Para

manejar la memoria secundaria (archivos en discos flexibles) se

utili26 el paquete de acceso .indizado para archivos llamado Turbo

Access.

EL PROGRAMA DE MINIMIZACION.

Este representa cada cubo-K con un registro, cuyos campos son:

prim-cubo, seg-cubo

cubos que se combinar) para formar el cubo-k y en caso de

los cubos-O el minitermino que representa.

Page 14: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

num-unos

el ntlmero de unos en la representacion binaria del

minitermino menor que cubre el cubo-k.

dlferencia

variables que se han (?lirninado.

peso

nomero de miniterminos que cubre el cubo-K.

f unc

funciones a las que pc?rtenece el cubo-K.

cubierto

funciones en las que se ha cubierto el cubo-K.

Todos los cubos estan en un arreglo [i.. NUMCUBOS], donde

NUMCUBOS tiene un valor mtkxinlo de unos 4500 (limite impuesto por

los 64K bytes de memoria para datos que proporciona Turbo

Pascal). Es posible asignar un espacio mayor para los cubos s1 se

utilizan dispositivos de memoria secundaria para su manejo.

Los implicantes primos se manejan en un archivo indizado y

cada uno se representa de manera decimal.

Los implicantes primos seleccionados en la representaci6n

mínima se encuentran en un archivo secuencial, guardando la

representacion decimal del implicante.

En cuanto se concluye la selecci6n de implicantes prlmos, se

genera un archivo por cada funciOn realizada, con la representa-

ci6n de los productos que utiliza el programa de realizacidn

NAND. Los nombres de los archivos incluyen el rimero de la

funci6n que representan y cada uno de sus registros corresponde a

un Producto de la suma que representa la funcibn.

- 2 . 2 -

Page 15: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

El programa cuenta con dos procedlmlentos yrlnclpales:

obten-cubos, que genera todos los cubos-k, combinando

parejas de cubos de menor grado.

selecci4n-mínima, que selecciona los cubos que cubren el

mayor nlhmero de miniterminos con el menor costo posible,

El procedimlento obten-cubos lee los cubos-O (miniterminos) de

las funciones, genera todos los cubos-I< posibles, combinando

parejas de cubos de clases adyacentes, en los cuales se pueda

eliminar una variable y que pertenezcan al menos a una funci6n en

coman y para los cuales las variables eliminadas sean las mismas.

El procedimientos selecci6n-minima abre el archivo de impli-

cantes primos (indizado), escribe en el todos aquellos cubos que

no fueron cubiertos y busca iterativamente el cubo que cubre el

mayor nllmero de minitermino%, al seleccionar el cubo de mayor

grado, se marcan los miniterminos cubiertos por C1, pero tomando

en consideracibn las funciones en que no se cubren. Por Oltimo,

produce los archivos secuenciales de comunicacidn con el programa

de realizacibn NAND y despliega resultados.

EL PROQRAMA DE REALIZACION corq LOGICA NAND.

Los circuitos integrados considerados en el desarrollo del

programa son los 7400 de 16gica TTL, que tienen cuatro compuertas

NAND de dos entradas.

Este programa representa cada funclbn a realizar mediante un

archivo secuencia1 que lee un arreglo de productos (en su repre-

sentaci6n interna), cada producto se representa, a su vez, como

un registro con: namero de Variables en el producto y un arreglo

de variables de la funcibn, dionde cada una de ellas es un entero

- 2 . 3 -

Page 16: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

posltivo o negativo, s l la variable esta negada.

Cada compuerta NAND se representa mediante un registro que

tiene dos expresiones booleanas, que pueden ser una variable (en

cuyo caso es un entero positivo o negativo, con magnitud entre i

y el ntmero mhximo de variables) o el ntunero de identlficacion de

una compuerta NAND, en la cual se obtiene la funci6n parcial

requerida. b

La funci6n prlncipal realiza una suma de terminos, aplicando

un arreglo arbolado de compuertas OR de dos entradas para obtener

una compuerta de cualquier ntunero de entradas. Cuando s610 queda

un termino, se obtiene la realizaci6n del producto con una

compuerta AND de cualquier nllmero de entradas, utilizando un

arreglo arbolado de compuertas de dos entradas.

Los pares de expresiones booleanas de entrada a cada compuerta

NAND se mantienen como Indices del archivo de compuertas y se

pueden hacer baswedas de los pares para reutilizar la salida de

una compuerta, cuando se requiere la misma funci6n parcial en mhs

de una realizacibn.

AREA DE DATOS.

Una de las dificultades mas importantes en la realizacidn

conslsti6 en la restriccldn de area para datos impuesta por el

compllador de Turbo Pascal (a,unque es cla o w e esta restriccibn

existe a pesar de que en vez de 64K Bytes sean 256K para datos).

Se pretendion buscar, inicialmente, una memoria con gran disponl-

bilidad de espacio: memoria secundarla, esyecificamente discos

flexibles, con capacidad maxima de 360K (se podrla pensar tambien

f

- 2 . 4 -

Page 17: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

lento al' sistema, ' pero se trat6't.de reducir .el niunero de accesos

al disco, teniendo archivos indizados para realizar btlsquedas y

escribiendo o leyendo datos que, por su naturaleza, son poco

numerosos. Una posibilidad para acelerar el acceso a los archi-

vos, que se encuentra disponible para computador& del tipo P C ,

es e,¡ uso de RAMDISK, es decir, un discossimulado en memoria, que

proporciona almacenamiento de rapid0 acceso en grandes canti-

dades, pero conserva el funcionamiento. planteado para discos

magneticos. .& ::,..id

; . . . ' <

.. . ' 4 ,

, c ? , .,

I

.t

s.. :_, . '., ,

. ._ .E. I ,

. .

' ! I ,

POSIB1,LIDADES DE EXPANSION

Es posible modificar los limites del programa, para que acepte

diferente, ntlmero de funciones y variables. Los límites milximos

. .

I

son :

Nilmero de variables (NUMVARI hasta 15, debido al nilmero de

bits que utiliza Turbo-Pascal para representar enteros. E

Nhmero de funciones (NUMFIJNC) hasta 15 , por 'la representacidn

de enteros. 8

Namero. total de cubos obtenidos (NUMCUBOS), alrededor de,. 5000,

pero se requiere de una modificaci6n al programa para que una

variable comparta el grado (le1 cubo y las funciones en que esta

cubierto (peso y cubierto).

Nilmero maximo de 'compuertas (MAXCOMP), . esta limitado por el

ntlmero maxim0 de registros que soporta la utileria da? .acceso

indizado (en el cas'o de Turbo Access es de 64K,). . .

Nilmero maxlmo de productos por funci6n (MAXPROD), es de unos

400 (restringido por el 'area de datos en memoria)

- 2 . 5 - h

Page 18: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

EL PAQUETE DE ACCESO INDIZADlO DE ARCHIVOS.

El paquete Turbo Access consta de cuatro archivos:

ACCESS. BOX

GETKEY. BOX

ADDKEY. BOX

DELKEY. BOX

Estos contienen las r u t i n a s para crear , abr ir y cerrar los

archivos de datos y de indices, leer , agregar y borrar regis tros

de datos.

Turbo-Access maneja catda archivo indizado mediante dos

a r c h i v o s f i s i c o s : uno con los datos y otro cop los indices a los

datos, ordenados en un hrbol-B.

Para cualquier adicibn o borrado de un reg is t ro , es prec i so

operar sobre los archivos de datos tanto como en los de indices.

Las l laves se restrlngen a cadenas de caracteres, pero es

posible codif icar un entero (?n una cadena de dos caracteres y así

u t i 1 izar enteros como 11 aves.

- 2 . 6 -

Page 19: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

C A P I T U L O 3 E J E M P L O S

Page 20: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

EJEMPLO i :

(Teoría de Conmutacibn y Diseno LOgico, Hill & Peterson,

Secc. 7. 5 , p. 1 8 2 1

Supongase que se desea una realizacibn mínima de suma de

productos para las funciones:

fi( A, B, C, D ) = m( 2 , 4, 10, 1 1 , 1 2 , 1 3 )

f2( A, B, C, I) 1 = m( e,, 5 , 10, 1 1 , 1 3 1

f3( A, B, C, D 1 = m( i , , 2 , 3 , 10, i t , 1 2 )

Primero, se hace una lista con los minittrminos de las fun-

ciones, ordenandolos crecientemente, clasificados por el ntunero

de unos que tiene e indicando a que funciones pertenecen:

m F1 F2 F3

1 1

2 1 1

4 1 I

3 1

5 1

"""""""-"-.-""""""""-

i o 1 1 1

1 2 i i

1 1 1 i 1

13 I i

I

"""""""""."""""""""

Se ejecuta el programa de reducciOn y se introduce:

Ntunero de varltables : 4

Nllmero de funciones : 3 .

N m e r o de miniterminos : 9

- 3. i -

Page 21: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

Y luego se introduce la tabla anterior.

AI terminar el programa, se tendrll la selecci6n minima.

Posteriormente, se eJecuta el programa de realizaci6n con

compuertas NAND, que pedirll el rimero de funciones (3) y el

ntunero de variables (4).

Esto completa la obtention de la realizaci6n en 16gica NAND de

dos entradas de las tres funclones.

_ " " " " - S E L E C C I O N " " _ " " _

Fi F2 F3 : B -C D

F3 : B -C

Fi -B C D

F2 A -B C

Fi F2 -A -B C -D

Fi F3 : -A B -C

F3 : A -C -D

Fi F3 : -A -B C D *

REALIZACION NAND DOS ENTRADAS LOGICA TTL

REALIZADO POR: GUZMAN LOPEZ MIGUEL ANGEL SEPTIEMBRE / , 1 9 8 7

Fi = CHIP: 7 PIN: i i

F2 = CHIP: 9 PIN: 6

F3 z CHIP: i i PIN: i i

- 3 . 2 -

Page 22: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

R E

CHIP: i

CHIP: i

CHIP: i

CHIP: i

CHIP: 2

CHIP: 2

CHIP: 2

CHIP: 2

CHIP: 3

CHIP: 3

CHIP: 3

CHIP: 3

CHIP: 4

S U L

PIN: 3

PIN: 6

PIN: 8

PIN: 1 i

PIN: 3

PIN: 6

PIN: 8

PIN: i i

PIN: 3

PIN: 6

PIN: 8

PIN: i 1

PIN: 3

T A D O S :

ENTRADAS C , C

ENTRADAS I3 , CHIP :

ENTRADAS CHIP: 1

ENTRADAS I) , CHIP:

ENTRADAS 13 , B

ENTRADAS C , CHIP :

ENTRADAS CHIP: 2

ENTRADAS I) , CHIP :

ENTRADAS CHIP: i

ENTRADAS A , A

ENTRADAS CHIP: 2

ENTRADAS I3 , D

ENTRADAS C , CHIP :

i PIN: 3

PIN: 6 , CHIP: i PIN: 6

i PIN: 8

2 PIN: 3

PIN: 6 , CHIP: 2 PIN: 6

2 PIN: 8

PIN: i i , CHIP: 2 PIN: i i

PIN: 3 , CHIP:' 3 PIN,: 6

3 PIN: i i

CHIP: 4 PIN: 6 ENTRADAS CHIP: 3 PIN: 8 , C'HIP: 3 PIN: 8

CHIP: 4 PIN: 8 ENTRADAS CHIP: 4 PIN: 3 , CHIP: 4 PIN: 3

CHIP: 4 PIN: i i ENTRADAS CHIP: 4 PIN: 6 , CHIP: 4 PIN: 8

CHIP: 5 PIN: 3 ENTRADAS CHIP: 3 PIN: 3 , CHIP: 3 PIN: 3

CHIP: 5 PIN: 6 ENTRADAS CHIP: 4 PIN: t i , CHIP: 5 PIN: 3

CHIP: 5 PIN: 8 ENTRADAS 16 , CHIP: 3 PIN: 6

CHIP: 5 PIN: i i ENTRADAS CHIP: 5 PIN: 8, CHIP: 5 PIN: 8

CHIP: 6 PIN: 3 ENTRADAS CHIP: i PIN: 3 , CHIP: 5 PIN: i i

CHIP: 6 PIN: 6 ENTRADAS C , D

CHIP: 6 PIN: 8 ENTRADAS CHIP: 6 PIN: 6 , CHIP: 6 PIN: 6

CHIP: 6 PIN: i i ENTRADAS CHIP: 4 PIN: 6 , CHIP: 6 PIN: 8

CHIP: 7 PIN: 3 ENTRADAS CHIP: 6 PIN: 3 , CHIP: 6 PIN: i i I

CHIP: 7 PIN: 6 ENTRADAS CHIP: 5 PIN: 6 , CHIP: 5 PIN: 6

CHIP: 7 PIN: 8 ENTRADAS CHIP: 7 PIN: 3, CHIP: 7 PIN: 3

- 3 . 3 -

Page 23: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

CHIP: 7 PIN: i i ENTRADAS CHIP: 7 PIN: 6 , CHIP: 7 PIN: 8

CHIP: 8 PIN: 3 ENTRADAS A. ,. CHIP: 2 PIN: 3

CHIP: 8 PIN: 6 ENTRADAS CHIP: 8 PIN: 3 , CHIP: 8 PIN: 3

CHIP: 8 PIN: 8 ENTRADAS C , CHIP: 8 PIN: 6

CHIP: 8 PIN: i i ENTRADAS CHIP: i PIN: i i , CHIP: 8 PIN: 8

CHIP: 9 PIN: 3 ENTRADAS CHIP: 8 PIN: i i , CHIP: 6 PIN: i i

CHIP: 9 PIN: 6 ENTRADAS CHIP: 4 PIN: t i , CHIP: 9 PIN: 3

CHIP: 9 PIN: 8 ENTRADAS CHIP:. i PIN: 6 , CHIP: 1 PIN: i i

CHIP: 9 PIN: i i ENTRADAS CHIP: 9 PIN: 8, CHIP: 9 PIN: 8

CHIP: 10 PIN: 3 ENTRADAS CHIP: 6 PIN: 3 , CHIP: 9 PIN: i t

CH1P:iO PIN: 6 ENTRADAS A , CHIP: i PIN: 3

CHIP:í0 PIN: 8 ENTRADAS CHIP:í0 PIN: 6 , CH1P:iO PIN: 6

CH1P:iO P1N:ii ENTRADAS CHIP: 3 PIN: i i , CH1P:iO PIN: 8

CHIP: i f PIN: 3 ENTRADAS (CHIP: 6 PIN: i i , CHIP: 10 PIN: i i

CHIP: i i , PIN: 6 ENTRADAS (CHIP: 10 PIN: 3, CHIP: 10 PIN: 3

CH1P:'ii PIN: 8 ENTRADAS (CH1P:ii PIN: 3 , CHIP: i i PIN: 3

CHIP: i i PIN: 1 1 ENTRADAS CHIP: t i PIN: 6 , CHIP: i i PIN: 8

EVALUACION DE LAS FUNCIONES OBTENIDAS:

D: i C: í B: O A: 43 FZ = O

D: 1 C: i B: O A: O F3 = i

a - 3 . 4 -

Page 24: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

l.

EJEMPLO 2:

(Teoría de Conmutacidn y Diseno Ldgico, Hill 81 Peterson,

Secc. 7 . 5, P. 182 1

Se desea obtener un decodificador BCD a 7 segmentos, se supone

que si no se dh un dIgito BCD, en la salida se tienen todos 10s

segmentos apagados.

Dígito Decimal Fi F2 F 3 F4 F5 F6 F7

O O i i i i i i

I

4

5

6

1

8

9

; 0 0 i 1 0 0 0

i i o i i o i

i i i i i o o

i o i i o i o

i i i o i i o

i i i o o i i

o o i i i o o i i i i i i i

i o i i i i o

Primero, se hace una lista de con los miniterminos de las

funciones, ordenandolos. crecientemente, clasificados por el

ntlmero de unos que tiene e indicando a qut funciones pertenecen:

- 3 . 5 -

Page 25: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

Dígito Decimal Fi F2 F3 F4 F 5 F6 F7

O o i i i i i i

i o o i i o o o "~""""""""-.""-""""""""-

2 i i o í i o i

e , i O l í O i O

8 i i i i i i i

3 i i i i i o o .....................

5 i i i o i í o

6 i i i o o i í

9 i O l i i i 0

7 o o i i i o o .....................

Se eJecuta el programa de reducci6n y se introduce:

Nlhmero de variables : 4

Ntunero de funciones : 7

Nilmero de minittrminos : i0

Y luego se introduce la tabla anterior.

Al terminar el programa, se tendra la selecci6n mínima,

Posteriormente, se ejecuta el programa de realizaci6n con

compuertas NAND, que pedir'& el nllrnero de funciones ( 7 ) y el

nlhmero de variables ( 4 ) .

Esto completa la obtenci6n de la realizaci6n en ldgica NAND de

dos entradas del decodificador.

- 3.6 -

Page 26: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

" " - " " * S E L E C C I O N

F2 F3 F4 F5 F6 F7 :

F1 F2 F4 F5

F1 F3 F4 F5 F6

F1 F3 F6

Fi F2 F3 F5 F6

F3 F4 F5

Fi F2 F7 :

F3 F4

F3 F4 F6

-A -B -C

B -C -D

-B -C D

-A C -D

A -B C

A B -D

-A B -D

-B -C

-A -B -D

- " " " " _

-D

REALIZACION NAND DOS ENTRADAS LOGICA TTL

REALIZADO POR: GUZMAN LOPEZ MIGUEL ANGEL SEPTIEMBRE / 1987

F1 = CHIP: 7 PIN: 1 1

F2 = CHIP: 9 PIN: 6

F3 = CHIP: 13 PIN: 3

F4 = CHIP: 13 PIN: 11

F5 = CHIP: 14 PIN: 6

F6 = CHIP: 15 PIN: 1 i

F7 = CHIP: 16 PIN: 3

R E S U L T A D O S :

CHIP: 1 PIN: 3 ENTRADAS C , C

CHIP: 1 PIN: 6 ENTRADAS B , CHIP: 1 PIN: 3

CHIP: i PIN: 8 ENTRADAS CHIP: 1 PIN: 6 , CHIP: i PIN: 6

- 3.7 -

Page 27: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

CHIP: 1

CHIP: 2

CHIP: 2

CHIP: 2

CHIP: 2

CHIP: 3

CHIP: 3

CHIP: 3

CHIP: 3

CHIP: 4

CHIP: 4

CHIP: 4

CHIP: 4

CHIP: 5

CHIP: 5

CHIP: 5

CHIP: 5

CHIP: 6

CHIP: 6

CHIP: 6

CHIP: 6

CHIP: 7

CHIP: 7

CHIP: 7

CHIP: 7

CHIP: 8

CHIP: 8

CHIP: 8

FIN: 1 i

PIN: 3

PIN: 6

PIN: 8

PIN: 1 i

PIN: 3

PIN: 6

PIN: 8

PIN: í i

PIN: 3

PIN: 6

PIN: 8

PIN: í í

PIN: 3

PIN: 6

PIN: 8

PIN: í í

PIN: 3

PIN: 6

PIN: 8

PIN: 1 1

PIN: 3

PIN: 6

PIN: 8

PIN: 11

PIN: 3

PIN: 6

PIN: 8

ENTHADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTHADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

D , D

CHIP: i PIN: 8 , CHIP:

€ 3 , B

CHIP: i PIN: 3 , CHIP:

CHIP: 2 PIN: 8 , CHIP:

D , CHIP: 2 PIN: i i

CHIP: 2 PIN: 3 , CHIP:

A , A

C , CHIP: 3 PIN: 8

CHIP: 3 PIN: i i , CHIP:

CHIP: i PIN: i i , CHIP:

CHIP: 3 PIN: 6 , CHIP:

CHIP: 4 PIN: 6 , CHIP:

A , CHIP: 2 PIN: 6

C , CHIP: í PIN: i i

CHIP: 5 PIN: 3 , CHIP:

CHIP: 5 PIN: 6 , CHIP:

CHIP: 5 PIN: 8 , CHIP:

B , CHIP: 3 PIN: 8

1

2

2

3

3

4

3

4

5

5

5

CHIP: 6

CHIP: 1

CHIP: 6

CHIP: 4

CHIP: 7

CHIP: 7

CHIP: 2

CHIP: 8

CHIP: i

PIN: 6 , CHIP: 6

PIN: i i , CHIP: 6

PIN: 3 , CHIP: 6

PIN: i i , CHIP: 4

PIN: 3 , CHIP: 7

PIN: 6 , CHIP: 7

PIN: 6 , CHIP: 3

PIN: 3 , CHIP: 8

PIN: 3 , CHIP: 8

PIN: 1 I

PIN: 6

PIN: 8

PIN: 3

PIN: í i

PIN: 3

PIN: 6

PIN: 8

PIN: 3

PIN: 6

PIN: i i

PIN: 6

PIN: 8

PIN: i i

FIN: i 1

PIN: 3

PIN: 8

PIN: 8

PIN: 3

PIN: 6

- 3 . 8 -

Page 28: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

CHIP: 8

CHIP: 9

CHIP: 9

CHIP: 9

CHIP: 9

CHIP: 10

CHIP: io

CHIP: 10

CHIP: 10

CHIP: i i

CHIP: f i

CHIP: i i

CHIP: i i

CHIP: i 2

CHIP: f 2

CHIP: 12

CHIP: 12

CHIP: i 3

CHIP: i 3

CHIP: 1 3

CHIP: i 3

CHIP: 14

CHIP: 14

CHIP: i4

CHIP: 14

CHIP: i 5

CHIP: 15

PIN: I i

PIN: 3

PIN: 6

PIN: 8

PIN: 1 i

PIN: 3

PIN: 6

PIN: 8

PIN: 1 1

PIN: 3

PIN: 6

PIN: 8

PIN: i i

PIN: 3

PIN: 6

PIN: 8

PIN: I i

PIN: 3

PIN: 6

PIN: 8

PIN: i i

PIN: 3

PIN: 6

PIN: 8

PIN: 1 1

PIN: 3

PIN: 6

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADA§

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

ENTRADAS

CHIP: 2

CHIP: 8

CHIP: 7

CHIP: 3

CHIP: 4

CHIP: 9

CHIP: 9

CHIP: ; O

,A , B

CHIP: 10

CHIP: i

CHIP: 2

CHIP: i

CHIP: i i

CHIP: i i

CHIP: 10

CHIP: 12

CHIP: 12

CHIP: 3

CHIP: 1 3

CHIP: i 2

CHIP: 6

CHIP: 14

CHIP: í 3

CHIP: 4

CHIP: 6

CHIP: 14

PIN: 3 ,

PIN: í i ,

PIN: 8 ,

PIN: 3 ,

PIN: 6 ,

PIN: 8 ,

PIN: 1 1 ,

PIN: 3 ,

PIN: i i ,

PIN: i i ,

PIN: 8 ,

PIN: 1 i ,

PIN: 8 ,

PIN: i i ,

PIN: 8 ,

PIN: 6 ,

PIN: 8 ,

FIN: 3 ,

PIN: 6 ,

PIN: i f ,

PIN: 3 ,

PIN: 3 ,

PIN: 8 ,

PIN: 6 ,

PIN: 3 ,

PIN: i 1 ,

CHIP: 8

CHIP: 8

CHIP: 9

CHIP: 8

CHIP: 6

CHIP: 9

CHIP: 9

CHIP: i O

CHIP: i o

CHIP: i i

CHIP: i 1

CHIP: 8

CHIP: i i

CHIP: i2

CHIP: 10

CHIP: 12

CHIP: 1 2

(:HIP: 9

CHIP: 1 3

CHIP: i 3

CHIP: 1 i

CHIP: 14

CHIP: 14

CHIP: í O

CHIP: I i

CHIP: 14

PIN: 8

PIN: i i

PIN: 3

PIN: 8

PIN: 3

PIN: 8

PIN: i i

PIN: 6

PIN: i i

PIN: 3

PIN: 6

PIN: 6

PIN: 8

PIN: 3

PIN: 8

PIN: 6

PIN: i i

PIN: 3

PIN: 6

PIN: 8

PIN: 6

PIN: 3

PIN: 6

PIN: 3

PIN: i i

PIN: i I

- 3 . 9 -

Page 29: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

CHIP:í5 PIN: 8 ENTRADAS CHIP:í5 PIN: 3 , CHIY:I5 Y 1 N : 3

CHIP:í5 PIN: í i ENTRADAS CHIP: 15 PIN: 6, CHIP:í5 PIN: 8

CHIP: 16 PIN: 3 ENTRADAS CHIP: 6 PIN: i i , CHIP: 8 PIN: 8

- 3. í o -

Page 30: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

A P E N D I C E A

CIRCWTIOS DE SALIDA MULTIPLE A DE MINIMIZACION DE

Page 31: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

PROGRAM Cubos; I

MINIMIZA HASTA NUMFUNC FUIICIONES ]"OR EL METODO DE QUINE-MCKLUSKY

REALIZADO FOR: GuzMAlv LOPEZ MIbXJlL ANGEL SEPTIEMERE/l987

USA TRES ARCHIVOS DE TRABAJO CiW ESTAN ABIERTOS SI"L,T-. AL FINAL DEL FROGRAMA SE B O R W ESTOS Y SE PROWCEN TANTOS ARCHIVOS DE SALIDA COMO FUNCIONES SE MINIMICEN (ESTOS ARCHI- VOS SE ABREN UNO A LA VEZ)

1

CONST WAR= 12; NuMFuNc=8; r4uKmKx W O O ; ArchReduc='REWC.DAT';

TYPE tipo-cubo= RECORD

pr m-cubo, f cubos que se combinan 1 seg-cubo, nun-unos, f numero de unos en el minltermino 1 d if erenc la, i diferencia entre los cubos-O menores 1 peso, f numero de cubos4 que cubre 1 f unc, f funclones a la que pertenece 1 noopc, f funciones en las que no es opcional 1 cubierto: integer; f funclones ya cubiertas 1

E N D ; tlpo-arrprod=ARRAY[l. .WAR] OF -WAR. .MAR; tipo-prod=RECORD

1 ong i tud: O . . MAR; componente: t ipo-arrprod

END;

VAR cubo: ARRAY [ 1 . . NUMWl3OS] OF t 1 po-cubo; indice-cubos, f numero de cubos-n obtenldos 1 nun-rnrni: integer; f nimero de minlterminos en 1 as funciones 1 reduccion: FILE OF integer; Fi lePtr : FILE; tot-var : integer; tot-func : Integer;

PROCEDURE resultados; f

ESCRIBE LOS TERMINOS RESULTAIjO TANTO EN ARCHIVOS PARA PASAR DATOS AL PROGRAMA DE CONVERSION A LOGICA NAND CaMo EN FORMATO LEGIBLE.

1 VAR nun-cubo, ind, cont-var, dif, funcs: Integer; arree 1 o: t ipo-arrprod;

Page 32: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

nombre: strlng [ E O ] ; reg-datos: tlpo-prod; datos: FILE OF t lpo-prod;

PROCEMJRE sal ida ( num-fun: Integer 1; I

1 BEG IN

ESCRIBE UN FROWCTO EN EL ARCHIVO CORRESPONDIENTE A LA FWCION nun-fun i

nombre: = ,SIJMPROD'+CHR( ORD( ' 0 ' )+md )+ .DATI; ASSIGN( datos, nombre 1; RESET( datos 1; SEEK( datos, Filesize( datos ) ); reg-datos. longitud: zcont-var; reg-datos.componente:=arreglo; WRITE( datos, reg-datos 1; CLOSE( datos )

-1

BEGIN f resultados 1 WRITEL,N(con ); WRITELN( con ); WRITEL,N(con, - - RESET( reduccion ); FOR lnd: =l TQ tot-func Do BEGIN

_ " _ "" S E L E C C I O N - - - - . ' ) ""

nombre: ='SIJMPROD'+CHR( ORD( ' 0 ' )+md )+ .DAT#; ASSIGN( datos, nombre 1; REWRITE( datos ); CLOSE( datos )

m: { VACIA TODO EL ARCHIVO QUE COWIE€E LOS CUBOS SELECCIONADOS 1 W H I L E NOT EOF(reducc1on) DO BEG IN

READ( reducc ion, nun-cubo. ); d If: --cubo [nun-cubo] . dif erenc pa; funcs: =cubo [nun-cubo] . func; WH I L E cubo [nun-cubo] . prim-cubo < O DO

nu-cubo: =cubo [nm-cubo] . prim-cubo; cont-var: =O; [ SE KMAN LAS VARIABLES NO ELIMINADAS EN ESE CUBO 1 FOR Ind: =1 TO tot-var DO BEG IN

1

num-cubo: = -cubo [nun-cubo J . pr Im-cubo;

IF ( dif MOD 2 ) = O THEN BEG IN

cont-var: z cont-var + I; IF ( nun-cubo MOD 2 1 = 1 THEN arreglo[cont-var]: = ind ELSE arreglo[cont-var]: = - m d

EM); nm-cubo: z nun-cubo DIV 2; dlf: z dif DIV 2;

END; I SE DESPLIEGAN EN FORMATO LEGIBLE 1 FOR ind: =l TO tot-f unc DO

Page 33: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

BEG I N IF (funcs MDD 2 z O 'I'HEN

EISE WRITE(con, ' )

BEG I N WRITE(con, IF', lnd: 1, ' ); sal Ida( Ind )

funcs: 5 funcs DIV 2 m;

E N D ; WRITE(con, : ); FOR ind: :: 1 TO cont-var DO

WRITE(con, ' ' ); IF arreglo[ind] < O THEN WRITE(con, ' - I )

ELSE WRITE(con, 1; W R I T E ( con, CHR( ABS(arreglo[lnd] ) + ORD('A') - 1 ) );

BEG IN

EM); WRITELN(con )

EM>; WRITELN(con 1; WRITELN(con )

END; f resultados 1

FUNCTION cuenta-unos (

DEWELVE EL NUMERO 1 VAR

BEGIN result: integer;

result: =O;' W I L E n>O DO BEG IN

IF ( n m D 2 ) = result: zresul t

n : = n DIV 2 m;

n: integer 1: Integer;

DE UNOS QUE TIENE UN TEZMINO

&

l"€EN + 1;

cuenta-unos: =result m, PROCEDURE obten-cubos; I

GENERA cubos-n A PARTIR DE cubos-0, CONSIDERAMX> PARA CCIMBINARSE: - LOS cubos-n con LAS MISMAS VARIABLES ELIMINADAS

- AQUELLOS EN LOS CUALES SE ELIMINA UNA NUEVA VARIABLE ( I G U A L dlf erencia)

(LA DIFERENCIA ENI?zE LOS cubos-0 MENORES ES UNA PQTENCIA DE DOS)

- AQUELLOS QUE PERTENECEN AL MENOS A UNA FUNCION C W 1 CONST

VAR NoOPcIONAL=$FF;

primer-cubo, ult-cubo, indice, seg-lndlce, dif: Integer;

Page 34: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

unos, f u n c s : I n t e g e r ;

FROCEDURE otro-cubo ( cubl , cub2 , d if, unos, f unc lones, no-opc: lnteger ); f

OBTIENE UN NUEVO CUBO con LOS DATOS c u b l , c u b 2 , clif, unos Y f u n c l o n e s

1 BEG I N

IF lndlce-cubos >= l4U"BC)S THEN BEGIN

wHITEL,N(t ERROR DEMASIADOS CUBOS 1; HALT

EM>

BEG I N ELSE

Indice-cubos: lndlce-cubos + 1 ; WITH cubo [ lndice-cubos] Do BEG IN

L

prim-cubo: = c u b l ; seg-cubo: rcub2; d I f e r e n c ia: = d l f ; nun-unos: -unos; f unc: = func lones ; c u b i e r t o : =O; noopc: =no-opc

EMD EM)

EM);

FUNCTION d i f e r e n c i a ( c u b l , c u b 2 : I n t e g e r 1: I n t e g e r ; f

OBTIENE LA DIFERENCIA ENTRE LOS cubos-0 MENORES CORF¿ESPONDIE?4TF.S A LOS cubos-n cubl Y cub2

1 BEG I N

W H I L E cubo [cubl] . prim-cubo < O DO c u b l : -- -cubo [ cubl ] . prlm-cubo;

WHILE c u b o [ c u b 2 ] , prim-cubo < O Do cubil: z -cubo [cub2 J . prim-cubo;

d i f e r e n c i a : = cubo (cub21 . prlm-cubo - cubo [ cubi l . prim-cubo END;

M C T I O N p o t d e d o s ( e n t : i n t e g e r 1: boolean ; I

I VAR

BEG I N

DEVUELVE TRUE S I LA ENTRADA E S UNA POTENCIA DE 2

1 , p o t : I n t e g e r ;

potdedos: -FALSE; pot: - 1 ; W H I L E 1 < = t o t - v a r Do

BEGIN IF e n t = p o t THEN BEG I N

Page 35: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

potdedos: ITRUE; 1 : .ERwAR

E N D ; pot : 5 p o t r 2 ; 1 : : ltl

END END:

PROCEDURE 1 ee-m~ n 1 te rm; f

1 VAR

LEE LOS MINITERMINOS Y LAS FWNC IONES A LAS UUE PERTENECEN

m l n l t e r , opcional, conl funcs , numbl t : In teger ; r e n , c o l , i n d : I n t e g e r ; f u n c i o n e s : char;

PROCEDURE encabezado; f

ESCRIBE UNA LINEA PARA GENERAR UNA TABLA DE CAPTURA DE W R O DE MINITEXMINO Y FUNCIONES A LAS I Q U E PERTENECE

1 VAR

BEG IN lnd : In teger ;

C 1 rScr; GOTOm(1, 1 ); WRITE( MINITEXMINO 1; FOR Ind: = 1 TO t o t f u n c Do

WRITE(’ F J , In;?: 1 ) ; WRITELN; ren : - 3

E N D ;

PROCEDURE ordena-cubo; VAR

ind : in teger : aux: t ipo-cubo;

lnd: I indlce-cubos; WHILE m d > 1 DO

lnd: = O

BEGIN

IF cubo[ indJ .nm-unos >= cubo[ind-11 .num-unos THEN

ELSE BEG IN

aux: -cubo [ ind] ; c u b o [ l n d J : = c u b o [ l n d - l ] ; cubo [ ind- 1 J : = aux; ind: = ind-1

END m BEGIN I lee-minlterm 1

WRITE(’ CUANTOS MINITEIIMINOS? : 1: READLN(num-mln1);

Page 36: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

mdlce-cubos: =O; .

encabezado; WILE lndice-cubos < nun-minl Do BEG I N

GOTOXY ( 2 , ren 1: W R I T E ( lndLce-cubos+i: 5, ' : 1; READLN(miniter 1; col: r i g ; conJfuncs: =O: opcronal: =NOOPCIONAL; numbit: = l ; FOR.'ind: S TO tot-f unc DO

BEG IN GOTOXY( col, ren 1; READ( KBD, funciones 1; funciones: =UPCASE ( f unc iones 1; CASE funciones OF

' i ': conJfuncs: =conjfuncs + numbit; 'X!: BEGIN

,con~funcs: =conjfuncs + numbit; opcional: opcional - numbit

EM>; ELSE fbciones: = ' 0 ) ;

E2Q ['OF CASE 1 GOTOXY( col, ren 1; W R I T E ( funciones ); numbit: = numbit * 2; col: :: c01+4

w ren: = ren + i; IF ren > 22 THEN

encabezado; otro-cubo (mini ter, mln i ter, O, cuenta-&os (mini ter ),

ordena-cubo

$

conjfuncs, opcional 1; I

m; WRITELN(con1

EIQ 1 lee-miniterm 1

BEGIN I obten-caos f pr ¡mer-cubo: = i ; I ee-min i term; WRITEIS(' ! GENERANDO CUBOS-n . , ' ) ; u1 t-cubo: -nm-minl; f PARA TODOS LOS CUBOS, 'EXCEPTO LOS DE LA ULTIMA CLASE,

W H I L E u1 t-cubo > primer-cubo DO BEG IN

BUSCA CWINACION 1

indice : :: primer-cubo; unos: =cubo [u1 t-cubo] . num-unos; W H I L E cubo [indice] . nm-unos < unos DO BEG IN

seg-indice: =indice + 1; W H I L E cubo[seg-indice] .nm-u.nos = cubo[indice] .num,unos DO

seg-indice: =seg-indice + 1;

Page 37: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

REPEAT I HASTA QUE LA DIFERENCIA ENTRE cubos-n SEA DE MAS DE Dos VARIABLES O SE ACABEN LOS CUBOS 1

dlf: =diferencia( lndlce, seg-indice ); (VARIABLES QUE SE ELIMINANI funcs: =cubo[segLlndicel .func AND cubo[indrce] .func; f FUNC. cm. )

( cubo[seg indlce] .dlferencla = cubo[mdlce] .dlferencra ) IF potdedos ( dlf ) AND

AND (funcs-<> O ) THEN BEG IN otro-cubo(-lndice, -seg-lndlce, dif+cubo[seg-indice] .diferencia,

IF cubo [ lnd ice] . f unc =f uncs THEN cubo [ lndlce] . cublerto: =f uncs;

IF cubo[seg-lndicel .func=funcs THEN cubo [seg-lndlce] . cublerto: Zfuncs

cubo[seg-lndlcel .nmn_unos, funcs, NOOPCIONAL );

EM); see-lndice: =see indlce + 1

UNTIL ( (cubo [segIindlce] . nun-unos-cubo [ mdice] .num-unos ) > 2 )

indice: = indice+l OR (seg-indlce > ult-cubo 1;

m t primer-cubo: = u1 t-cubo + 1; u1 t-cubo: = indice-cubos

EM) f obten-cubos 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PROCEDURE se 1 ecc ion-min lma;

CONST DA”0S PARA LAS RUTINAS DE ACCESO INIDZADO DE ARCHIVOS 1

MINI?43=8; MaxDataRecSize~5; MaxKeyLen = 5; Pagesí ze = 24; Order = 12; PageStackSize =8; Mame i ght = 5;

t

HVTINAS DE ACCESO INIDZADO DE ARQ3IVOS 1 ($1 a: urbopasoolbox\access. box] f $ I a: urbopasoolboxetkey. box) {$I a:urbopasoolbox\addkey.boxf ($1 a: urbopasoolboxelkey.box]

TYPE strE=strlng[E]; implicante= RECORD

nun-cubo: str2; cubre : lnteger

E N D ; VAR

Imp-pr imos: DataFi 1 e; lnd-primos: IndexFi 1 e;

J

Page 38: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

ap-prlmos : Integer; primo: imp1 Icante; lnd: integer; numero-cubo, mayor: Integer;

FUNCTION StrToInt( cad: str2 1: Integer; I

1 BEG IN

m

DECODI FI CA UNA CADENA DE DOS CARACTERES Y DEVUELVE UN ENTE230

StrToInt : Swap( ORD(cad[ll) ) + ORD( cad[E] ) t 38000

RTNCTION InToStr( n: integer ): str2; f

1 BEGIN

CODIFICA UN ETTIERO EN UNA CADENA DE DOS CARACTERES

n : = n + 38000; InToStr : = CHR( Hi(n) ) + CHR( Lo(n) )

EM);

PROCEDURE menor-costo; f

I VAR

BUSCA LOS cubos-n QUE CUBREN MAYOR NWERO DE cubos-0

bitf unc, I: Integer;

PROCEDURE pon-cublertos ( n, funcs: Integer 1; f

MARCA LOS cubos-0 CUBIERTOS, INDICAMX) EN QUE FUNCIONES SE CUBRIERON

1 VAR

BEG I N aux: integer;

IF cubo [n] . prim-cubo < O THEN BEG I N

pon-cubiertos ( -cubo [n] . prim-cubo, funcs ); pon-cubiertos ( -cubo [n] . seg-cubo, funcs )

END

BEG IN ELSE

aux: = fUnCS AND cubo In]. func AND (NOT cubo [n] . cublerto ) IF aux < > 0 THEN

AND cubo En] . noopc; cubo[n] . cublerto: = cubo [n) .cubierto OR aux

END END;

FUNCTION peso( n: integer ): lnteger; f

DEVUELVE EL NUME30 DE cubos--0 QUE CUBRE EL cubo-n n , SOLO CONSIDERA AQUELLQS QUE NO ESTABAN CUBIERTOS PARA

Page 39: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

LAS FUNCIONES A LAS QUE PEZTENECE EL cubo -n 1 VAR

BEG I N aux: integer;

IF cubo [n 1 . prlm-cubo < 0 THEN peso: I peso ( -cubo[ri] . prim-cubo ) +

peso ( -cubo En] . seg-cubo ) ELSE

BEG IN aux: : bitf unc AND cubo [n J . f unc AND (NOT cubo [n] . cubierto )

AND cubo [n J . noopc; peso: =cuenta-unos ( aux )

END EM>;

PRGCECURE obten-mayor; I

1 VAR

OBTIENE EL cubo-n QUE CUBRE MAYOR NUMERO DE cubos-0

mayor-peso: integer; aw: str2; OK-Am: boo 1 e m ;

OK = T R U E ; I INICIALIZA INDICES DE AEi:CHIVO DE IMPLICANTE3 PRIEOS 1 ClearKey( ind-primos 1; I TCHA UN IMPLICANTE PRIMO 1 PrevKey( índ-primos, ap-prrmos, prlmo.num.cubo ); mayor-peso: =O; mayor: =O; WHILE OK Do

BEG I N

BEG IN

. .

*

GetRec ( imp-primos, ap-primos, prlmo ); numero-cubo: = StrToInt ( primo. nun-cubo ); bltfunc: =cubo[numero-cubo] .func; cubo [numero-cubo J . peso: = peso ( numero-cubo ); IF cubo [numero-cubo J . peso > mayor-peso THEN

BEGIN mayor-peso: :cubo [numero-cubo] . peso; mayor-: =numero-cubo

f TWA OTRO IMPLICANTE PRIM33 1 E N D ;

PrevKey( ind-primos, ap-primos, primo.num-cubo 1 END

BEGIN I menor-costo 1 WRITELN(’ ! OBTENIENDO SELECCION MINIMA DE IMPLICAFETES PRIMOS .. I); o bten-mayor; W I L E mayor > O Dc)

BEG IN WRITE ( reducc lon, mayor 1; pon-cublertos (mayor, cubO [mayor] . f unc );

Page 40: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

obten-mayor m;

E N D ; t menor-costo 1

BEGIN I selecclon-mlnima 1 WRITELN( ! OBTENIENIXI IMFLICANES PRIMOS ' ) : f CREA ARCHIVO DE IMPLICANTES PRIMAS 1 MakeFlle( imp-primos, IMPRIM. DAT',. MINIMO); MakeIndex( ind-primos, IMPRIM. IDX', 2, O 1; InitIndex; f CREA ARCHIVO DE IMPLICANTES PRIMOS SELECCIONADOS EN REDUCCION f ASSIGN(reducc ion, ArchReduc 1; REWRITE(reducc1on); FOR md: =l TO Indice-cubos DO f :3ELECCIONA LOS IMPLICXNIES PRIMOS 1 BEGIN

cubo [ ind] . nun-unos: =O; cubo [ ind J . peso: =O; IF cubo (ind] , cubierto < > (cubo [ ind] . f unc AND cubo [ md) . noopc ) "HEX

4

BEGIN primo. nun-cubo: 2 InToStr ( ind ); OK: =TRUE; AddRec ( imp-primos, ap-_primos, pruno ); IF OK THEN AddKey( intl-primos, ap-prlmos, primo.nurr-cubo ) ELSE WRITELN(' ERROR : NO AGREGO UN IMPLICANI'E PRIM3' )

END; cubo [ ind] .cubierto: =O;

m menor-costo; resultados; CLOSE (reducc ion ); CloseFi le (imp-primos 1; CloseIndex( ind-primos ); f SE BORRA EL ARCHIVO DE IMPLIcAFiTES F'RIKIS 1 ASSIGN(Fi lePtr, ' IMPRIM. DAT' 1; ERASE(Fi1ePt.r); ASSIGN(FilePtr, IMPRIM. IDX' ); ERASE (Fi lePtr )

E N D ;

BEG IN indice-cubos: =O; WRITELN(con 1; WRITELN(con, J REWCCION DE FUNCIONES POR EL METODO DE QUINE-McKLUSKY ' 1; WRITELN(con); WRITELN(con, REALIZADO POR : GuzMAN LOPEZ MIGUEL ANGEL, ' 1; WRITELN(con, SEPTIEMBRE / 1987 ' 1; WRITELN(con); WRITE( CUANTAS VARIABLES SE UTILIZAN [l.. ', NUWAR, '1 ? 1; READW( tot-var 1; IF NOT( tot-var IN [l. .NUWAR] 1 THEN

BEG I N I WRITEM( " E X 0 ILEGAL DE VARIABLES 1;

Page 41: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

HALT E N D ;

WRITE(' CUANTAS FUNCIONES [l.. ' , N U N C , ' I ? ' 1; m m ( tot-func 1; IF NOT( tot-func IN [l. . N U " U N C l ) THEN

BEG IN WRITELN( NUMERO ILEGAL DE FUNCIONES 1; HALT

END ; obten-cubos; selecclon-mlnima;

ASSIGN(FilePtr, ArchReduc 1; ERASE(Fl1eFtt-1

f SE BORRA EL ARCHIVO DE IMPLIWES PRImS SELECCIONADOS EN REWICCION j

END.

Page 42: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

t

Page 43: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

R E A L I Z A D O FOR: GUZMAN LOPEZ MIGUEL ANGEL SETIEMBREi1987

USA TANTOS A R C H I VOS DE ENTRADA COMO FUNCIONES SE REALICEN QUE SE ABREN UNO A LA VEZ Y DOS ARCHIVOS DE TRABAJO UUE SE ABREN S I W T - . LOS ARCHIVOS DE TRABAJO SE EORRAN' AL TERMINAR EL PROGRAMA.

CONST WAR 12; NUMFUNC =. 8; MAXCW = 32767; MAXPROD = 1000; f DA'IDS PARA LAS RUTINAS DE ACCESO I N D I Z A D O DE ARCHIVOS 1 MaxDataRecSize = 5; MaxKeyLen = 5; Pages 1 z e = 24; Order = 18; PageStackSize = 8; MaxHe ight = 5; NANDDAT : 'NAND. DAT'; NAND1 DX : 'NAEP). IDX';

I

TYPE str2=strlng[E]; f

exp-boo 1 = integer; tipo-comp: stringl41; tipo_arrprod=ARRAY[l.,~AR'J OF -NmVAR. .MAR;

9

tipo-prod-RECORD 1 ong i tud: 0. , N U M V A R ; componente: tlpO-WrprOd

m;

VAR compuerta: tlpo-comp; UI t-nand: exp-boo1; t numero de compuertas usadas 1 S u n de Prod: ARRAY[l, .MAXPROD1 OF tipo-prod; f productos de cada func ion 1 F1 lePtF : FILE: nand.-dat: DataFl le; nand- idx: IlldexF 1 1 e; nand-ptr: Integer; nm-prod: byte; I numero de prod. de entrada 1 nun-f unc, tot-f unc: integer;

Page 44: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

tot-vars: Integer; funclon:ARRAY[l. . N u M N N c ] OF exp--bcol; I resultado de la reallzdclon 4

FUNCTION InToStr( n: Integer ); str2; f

1 BEG IN

CODIFICA UN EN’IERO EN UNA C A D N DE DOS CARACTERES

n: =n + $8000; InToStr: : CHR( Hi (n) 1 + CHR( Loin) )

m, FUNCTION StrToIn( S : str2 1: integer; I

1 BEG IN

DECODIFICA UNA OENA DE DOS CARACTERES Y DEVUELVE UN ENTERO

StrToIn: = Swap( ORD( S ClJ 1 1 + ORD( S [2] ) + $8000 E N D ;

FUNCTION una-compuerta(ent1, ent2: exp-bool,): exp-bool; f

DEVUELVE EL NUGRO DE UNA COMPUERT.A CUYAS RlT” 1 BEG IN IF entl > ent2 THEN BEGIN

compuerta: = InToStr (enti! ) + InToStr(ent1)

END

BEGIN ELSE

compuerta: = InToStr (ent 1 ) + InToStr (ent2 )

m; OK: =TRUE;

SON entl Y ent2

FmdKey( nand-idx, nand-ptr, compuerta ); IF OK THEN f SI YA MISTIA UNA CcevIpuERTA CON ESAS ENTRAIW 1

una-compuerta: = nand-ptr + NLWAR ELSE

IF u1 t-nand > = MAXCCMP THEN BEG IN WRITELN(tERROR DEMASIADAS CaElpuERTAS I 1; HALT

END

BEG IN ELSE

ult-nand: =SUCC(ult-nand 1; OK: = T R U E ; AddRec ( nand-dat, nand-ptr, compuerta ); IF OK THEN AddKey( nand-idx, nand-ptr, compuerta ) ELSE WRITELN( ’ N o AGREGO CCMPUE3TA I ) ;

una-compuerta: =u1 t-nand; END

END; I una-compuerta 1

Page 45: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

"

FUNCTION not_a-nan$(entrada: exp-boo1 1: exp-bool; (

1 BEG IN

FEALIZACION DE UNA CCMFUERTA NOT CON COMFUERTAS NAND

not-a-nand: x una-compuerta (entrada, entrada.) END;

FUNCTION or-a--nand ( i n f , sup: i n t e g e r I : exp-bgo 1; I

1 VAR

R E A L 1 ZAC I ON DE UNA CCMPUERTA OH CON C C " A S NAND

.?dl medio : in teger ; .. . 2 ] OF exp-bool; z

RINCTION am-a-nand ( i n f sup: I n t e g e r ): exp-bool; f

REALEZACION DE UNA ColMpuERTA AND CON Ccklpunrr ASNAND

// "GÁR

1 /' .*

a;, I I

nm-operandop, medlo, lnd: integer; ,- / entrada : ARRAY [l. . 2 J O F exp-boo 1; BEGIN

nun-operapcp: : SUCC (sup- mf ); CASE nm-i)perandos OF

1 : and-a-nand: = a r r e g l o [ i n f ] ; E L S E I ~ I Z A U N A A N D D E I M A S D E 2 ~ C O N U N A R R E G L O A R B O L A D O 1

BEGIN medio: = (sup+ i n f ) DIV 2 ; e n t r a d @ [ l ] : =and-a-nand( i n f , m e d i o ) ; entradaL21: =and-a-nand (SVCC (medio ), sup ); FOR ind: = l TO 2 Do IF e n t r a d a [ i n d ] < (3 THEN

e n t r a d a r i n d l : :: not-a-nand(-entrada[Ind] ); I SE INDICA UNA MPKESION NEGADA 1 and-a-nand: 2 - una-compuerta (entrada 11, e n t r a d a (,2] )

END END f OF CASE 1

EM);

BEGIN nun-operandos: =SUCC ( sup- Inf ); CASE nun-operandos OF

1 : BEGIN I SE REALIZA EL PROEUCTO 1 arreg lo : wm-de-prod [ in f 1 . componente; or-a-nand: = and-a-nand ( 1 sum-de-prod [ i n f ] . I o n g i t u d ) m;

2 : BEGIN f SE REALIZAN DOS PRODUCTOS 1 arreglo : =sm-de-prodCinf 3 . componente; e n t r a d a [ 11 : = and-a-nand ( 1 , sum-de-prod Cinf J . l o n g i t u d 1; ameglo: =sum-de-prod [sup] . componente;

Page 46: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

entradal21: : and-a-nand(1, sm-de-prod[supJ. longltud ); FOR lnd: I 1 TC] 2 EO IF entradaElnd1 > O THEN

' entradal indl : f not-a-nand (entrada[ Ind J 1 ELSE

entrada [ lndl : : -entrada [ lnd] ; or-a-nand : = una-comPuerta(entrada [ 11, entrada [ 2 ] )

ELSE f PARA MAS DE 2 EBTRADAS REALIZA UN ARREGLO ARBOLADO 1 END;

BEG I N medio: 2 ( s u p inf ) DIV 2; entrada [i]: = or-a-nand( lnf, medio 1; entradal21: = or-a-nand( SUCC(medio ), sup ); FOR ind: = i To 2 Do IF entradaCind1 > O 'THEN

entradatindl : = not-a-nand(entradaCind1 ) ELSE

entrada [ lnd] : z .-entrada [ ind] ; or-a-nand : = una-compuerta(entrada[i], entradaE21 ) m

EEJS; f OF CASE 1 END; I or-a-nand 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROCEDURE 1 ee-datos; t

1 VAR

LEE LOS PROWCTOS PARA CADA FWNCION

datos: FILE OF tipo-prod; nombre: string [20] ;

nombre: =!SUMPROD' + &( ORD('O' t nun-func + I .DATI; ASSIGN(datos, nombre ); RESFl'(datos f ; nrrm-prod: =O; W I L E NOT EOF(datos ) DO BEG IN

BEG I N

num-prod: =num-prod + 1; READ(datos, sum-de-prod [numprod J );

EM); CLOSE (datos ) m NNCTION pin-sal ( n : exp-boo1 1: integer; f

1 BEG IN

DETERMINA EL FIN DE SALIDA EN C-TAS NAND Tm, (7400)

CASE n OF 1: pin-sal: = 3 ; 2: pin-sal: =6; 3: pin-sal: =8; ELSE pin-sal: = i i EM>

Page 47: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

PROCEDURE escrlbe ( entrada: exp-boo 1 1; t

PROWRCIONA FORMATO DE S A L I D A CON NUMERO DE C.I. Y DE PIN PARA CADA ENTRADA Y SALIDA

1 VAR

BEGIN nun-comp, nun-chl p: Integer;

IF entrada < - MAR THEN

ELSE WRITE( con, CHR( ORD('AJ 1 t entrada - 1 ) )

BEGIN entrada: = entrada - WAR; num-chlp: = SUCC( PRED(entrada) DIV 4 1; nun-comp: - entrada MOD 4 : WRITE( con, CHIP: I , nun-chlp: 5, ); W R I T E ( con, I PIN: I , pln-sal (nun-comp): 5, 8 )

END EM>;

PROCEIXJRE resultados; VAR

i: byte;

BEGIN I resultados 1 WRITELN(con 1; WRITELN( con, R E S U L T A D 0 S : I ) ; wRITELN(c0n 1;

VACIA TOW LAS CCMF4XRTA.S UTIL.IZADAS 1

BEGIN FOR i : =SUCC(r"VAR) TO ult-nand D C I

nand-ptr: = I - NUMVAR; GetRec ( nand-dat, nand-ptr, compuerta 1; escribe ( i ): WRITE(con, ENTRADAS 1; escribe (StrToIn(COPY(compuerta, 1 , 2 ) ) ); WRITE(con, , ); escribe (StrToIn (COPY (compuerta, 31 2 ) ) 1; WRITELN(c0n )

EM> END; I resultados 1

PROCEDURE eva 1 uac Ion; VAR

vars: ARRAY [l. . NUWAR] OF byte; ind : byte; opclon: char;

res: exp-boo 1 ; compuerta: t I Po-comp;

IF exp <: NUMVAR THEN

ELSE

BEG I N

va 1-nand: = vars [ exp J

Page 48: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

BEG I N nand-ptr: = exp - WAR; GetRec ( nand-dat, nand-ptr, compuerta 1; res: = val-nand( StrToIn( COFY (compuerta, 1, 2 ) ) ) AND

val-nand ( StrToIn ( COPY (compuerta, 3 , 2 ) ); IF res=0 THEN

va 1-nand: = 1 ELSE

val-nand: 10 END

m BEG I N

FOR Ind: =1 TO NUMVAR Do

WRITELN( con 1; REPEAT

vars [ ind J : =O;

WRITE('Def inir variables / Evaluar funclones / Fln [D/E/FJ: ' ); READ(KB4 opcion); WRITELN( opc:lon 1; CASE UPCASE(opc ion ) OF

IF': ; ID': BEGIN

WRITELN; FOR ind: =tot-vars DCYWNTO 1 Do BEG IN

W R I T E ( CHR( ORD('A')+ind-l ) , '[',vars[ind], '1 : ) ) ; READLN( varslindl 1; IF vars Kind] < > O THEN

vars [ ind] : = 1 m; WRITELN

END; 'EJ: BEGIN

WRITEL.N(con 1; FOR ind: =tot-vars JNWN'I'O 1 DO BEG I N

END; WRITELN(con 1; WRITE( 'FUNCION [l. .I, tot-func, '1 : ' ) ; READLN( ind ); IF Ind IN [l.. tot-fu?c] THEN

ELSE

WRITELN(con )

ELSE WRITE( CHR(7) )

WRITE(con, CHR( ORD(jA')+ind-l ) , I : ', varslind], ' ' 1;

WRITELN(con, IF), ind, I = ', val-nand( funcionlind] ) )

WRITELN(con, 'F'UNCION INEXISTENTE' );

END;

END f OF CASE J M I L UPCASE( opcion ) = IF1

EM>;

Page 49: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

BEGIN f reducc1on-nand 1 WHITELN(con 1; WRITELN(con, REALIZACION NAND DOS EXTRADAS LOGICA T T L , ’ ); WRITELN(con 1; WRITELN(con, REAL1ZAl)ir POR: GUZMAN LOPEZ MIGUEL ANGEL’ ); WRITELN(con, SEPTIEMBRE / 1987 1; WRITELN(con 1; MakeFi le ( nand-dat, NANDDAT, s lzeof (compuerta) ); MakeIndex ( nand-ldx, NANDIDX, s lzeof (compuerta 1, O ); InltIndex; WRITE:( ’ CUANTAS FUNCIONES? : ’ 1; READL.N( tot-f une ); IF NOT( tot-func IN [ l . .hRIMFuNC] ) THEN

BEG IN W R I T E L N ( con, I NUMEXO ILEGAL DE FUNCIONES I 1; HALT m,

WRITE(’ CUMAS VARIABLES? : ’ 1; READLN( tot-vars 1; IF NOT( tot-vars IN [l. . N U M V A R I )I THEN

BEG IN WRITELN( con, NUMERO I L E G A L DE VARIABLES ); HALT

u1 t-nand: = N U W A R ; FOR nm-func: =l TO tot-func Do BEG I N

EM);

1 ee-datos; f unc ion [nun-f unc] : =or-a-nand ( 1, nm-prod ); WRITE(con, F ’ , nun-f unc, = ); escribe( funclon[num-funcl 1; WRITELN( con )

END; WRIIXLN(con ); resu 1 tados; evaluacíon; CloseFl le ( nand-dat 1; CloseIndex( nand-idx 1; ASSIGN(Fi IePtr, NANDDAT); ERASE(Fi1ePtr); ASSIGN(FilePtr, NANDIDX); ERASE (Fi 1 ePtr 1;

EM). f reduccion-nand 1

Page 50: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

A P E N D I C E c REFERENCIAS BIBLIOGRAFXCAS

Page 51: SlvERSlDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/reportesok/UAMR0723.pdf · Informe Tecnico No. 2 3 noviembre de 1987 . ... usando compuertas universales NAND ... los cuatro

Mano, M. Morris. Digital Design, Englewood Cliffs, N. J. :

Prentice-Ha.11, Inc., iY84.

Hill, F. J. ¿I Peterson, G. R., Introduction to Switching

Theory 8, Logical Design, 3rd. Edition, New York: John Wiley

& Sons, Inc, 1981.

Kohavi, Z. Switching and Finite Automata Theory, 2nd.

Edition, New York: McGraw-Hill, Inc., i978.

- c. 1 -