You are on page 1of 8
Programa Computacional para Sintesis de Circuitos Légicos Combinacionales Computer Program for Combinational Logie Cireuits Synthesis Guillermo Tejada Muioz' Facultad de Ingenieria Electrénica y Eléctrica, Universidad Nacional Mayor de San Marcos, Lima, Perit Resumen— Este trabajo presenta los resultados de un programa para minimizar funciones légicas de hasta seis variables basado en ef algoritmo de Quine-McCluskey, e! programa ha sido eédifieado en Ienguaje C++. Se muestran algunos de los resultados, los cuales han validados al compararlos con los resultados obter con los mapas de Karnaugh, Abstract— This paper presents the results of a program to minimize logic functions of up to six variables based on the algorithm of Quine-McCluskey, ‘the program has been coded in C + +. Show some results, which have been validated by comparison with results obtained with Karnaugh maps. bras clave— Método tabular, método numérico, Quine-MeKluskey, programa computacional, sintesis de cireuitos légicos, minimizacién de cireuitos l6gicos, Key words— Tabular method, numerical method, Quine-McKluskey, computer program, synthesis of logic circuits, minimization of logic circuits. I. INTRODUCCION E la sintesis de circuitos logicos se emplea principalmente dos métodos de minimizacién, uno es liamado mapa de Karnaught, el cual es ejecutado visualmente, y el otro es llamado algoritmo Quine- McCluskey, el cual es ejecutado mediante un procedimiento basado en tablas y por eso también es Hamado método tabular. Ambos métodos proporcionan resultados idénticos. Sin embargo, los mapas de Karnaubgt para funciones de més de 4 variables resultan ser grificos muy complicados de analizar. El método tabular, en cambio, para funciones logicas de mis de 4 variables, no presenta la dificultad de los mapas de Kamaugth, aunque al _resolverlo manualmente su tiempo de tesolucién cece exponencialmente con el aumento del nimero de variables. Sin embargo, el método describe un algoritmo que puede ser adaptado a un programa de Guillermo Tejada Muiioz. E-mail: stejadam@unmsm ecu pe computador, tal como ha sido ralizado en el presente trabajo. A, Algoritmo Quine-MeCluskey El Algoritmo Quine-McCluskey es un método de simplificacién de funciones booleanas desarrollado por Willard Van Orman Quine y Edward J. McCluskey. Es funcionalmente idéntico a la utilizacién del mapa de Kamaugh, pero su forma tabular lo hace mis eficiente para su implementacién en lenguajes computacionales, y provee un método deterministico de conseguir la minima expresin de una funciéa booleana. El método consta de dos pasos [1]: ‘© Primer paso: Encontrar todos los Implicantes Primos de la funcién. ‘* Segundo paso: Encontrar los Implicantes Primos Esenciales, los cuales son necesarios y suficientes para generar la funcién. Asi, por ejemplo, sea la funcién: F(A.B.C.D)=¥ m(I, 4,6, 7,8,9, 10,11, 15) 1) Primer paso: Encontrar Implicantes e Implicantes Primos Los Mintérminos se escriben en binario y se les agrupa de acuerdo ai numero de “unos” que contienen. En la Tabla |, al lado izquierdo se muestra el agrupamiento de los Mintérminos, asi por ejemplo los minterminos 1, 4-y 8 forman una de las agrupaciones porque sv numero en binario contiencn un solo bit. Luego se combinan los Mintérminos de los grupos adyacentes entre si, considerando siempre que el segundo Mintérmino debe ser mayor que el primero y la diferencia entre ambos es de un solo bit, el cual en la combinacién debe reemplazarse por un guién "-", lo que significa que la variable de esa posicién se debe eliminar, los Mintérminos o Implicantes al combinarse se deben marcar con un aspa, En agrupaciones de Implicantes de 4 Mintérminos se encontraran pares de Implicantes repetidos, uno de los cuales debe ser climinado. Del mismo modo, en agrupaciones de 8 Minterminos habrin 3 repetidos, dos de los cuales eben ser eliminados y asi sucesivamente [2]. TABLAL IMPLICANTES De LA FUNGION Mintérmines _Implicantes de 2 Mintéeminos Ae cD a co i oootvias - 0 0 2 4 0100v/45 0 1 - 0 B 100 0vja9 1 0 0 -v 6 oad 10 v 2 100 oF wood 20. iv 7 041d ao av nan tat aba a - 4a Los Implicantes sin marcar ya no pueden combinarse mas y construimos con ellos la tabla de Implicantes Primos, tal como se muestra en la Tabla IL TABLA InPLacanes PRiMOs AB o 19 -0 0 1 BtO 46 on 0 Keb 67 o1 - Rec ms 1 Bco wis 1-1 AcD 910,111 0 AaB 2) Segundo paso: Encontrar Implicantes Primos Esenciales No todos los Implicantes Primos son parte de la funcién, debemos seleccionar a los Primos Esenciales, es decir aquellos Implicantes que sélo cubren 2 un inico Mintérmino, se deben marcar con un aspa a los Primos Esenciales y encerrar con un circulo el Mintérmino cubierto y a todos los demas que puede cubrir, tal como se muestra en Ia Tabla III. Para los Mintérminos no cubiertos (7 y 15, en el ejemplo) se construye la Tabla IV y se listan todos tos Implicantes restantes que los pueden cubrir, debemos seleccionar aquel Implicante que cubra la mayoria de los Minterminos no cubiertos (en nuestro ejemplo seleccionamos el Implicante 7, 15). ELECTRONICA-UNMSM, N° 26, DICIEMBRE DE 2010 TABLA IIL SSELECCION 9 IMPLICANTES PRIMOS ESENCIALES ‘Mingerainos _ tarminos 007 89 @ Bis, a9 ov Btp Xx x 46 v ReD XX 67 Rec xx 7as BcD x x nas acd ani ggoaqatv_AT Xxx Xx vyoovv TABLA IV PIMOS ESENCIALES ALTERNOS Minérminos Términos G) & oy Kec x wsvecd x x as ACO x Finalmente, todos los Implicantes Esenciales que son parte de la funcién son los siguientes: F 1,9) + (4, 6) + (7, 15) + (8, 9, 10, 11) Es decir: FeBCD+RBD+BC OAS II, METODOLOGIA Se ha investigado si existen trabajos similares y encontrado en la web algunos; asi, por ejemplo, en [3] se da acceso a un programa de gran aporte aunque bastante preliminar pues no llega 2 minimizar cficientemente a las funciones légicas. El algoritmo Quine-Me. Klusky, el cual fue descrito en la Introduccién, se ha convertido a un programa de compute descrito mediante tos diagramas de flujo ‘mostrados desde la Fig. 1 a la Fig. 4. En el diagrama de Mlujo de le Fig. 1, se detalla el programa en donde se pide al usuario que ingrese los datos de la funcién légica, es decir el mimero de variables, el nimero de Mintérminos y los Mintérminos que consta la funci6n. El programa, por divisiones sucesivas, convertira a los Mintérminos de decimal a binario_y guardara los bits binarios resultante en un arreglo de dos dimensiones, como maximo se tiene mimeros binarios de 6 variables: ABCDEF El diagrama de flujo de la Fig, 2 es en realidad el compendio de cinco diagramas de flujo ligeramente diferentes que describen Ia combinacién entre si de Implicantes, el término “Implicantes. den Mintérminos”, donde n puede tomar el valor de 1, 2, 4, TEJADA: PROGRAMA COMPUTACIONAL PARA SINTESIS DE CIRCUITOS 7 8, 16, significa que cuando n es igual a 1, se describe al diagrama de flujo que combina Implicantes de solo un Mintérmino. Si n=2 se describe a otro diagrama de flujo que asocia Implicantes de 2 Mintérminos y asi sucesivamente. También n generaliza el nombre de los Aneglos, asi por cjemplo Al(2n)MINT. significa arreglos con los nombres de: AIZMINT, AI4MINT, AI8MINT, AI16MINT y AI32MINT. El programa al combinar dos implicants adyacentes elimina la variable en que difieren. El diagrama de flujo de la Fig. 3 se encarga de la eliminaci6n de Implicantes repetidos que se generan en los Arreglos AI4MINT, AI8MINT, AII6MINT, AI32MINT. Los diagramas de Flujo de la Fig. 4 y Fig. § encuentran los Implicantes primos Esenciales. El diagrama de la Fig. 4, describe la seleccién de aquellos Implicantes Primos que sélo cubren a un Mintérmino respectivamente y son marcados como Implicantes Primos Esenciales, los Implicantes Primos son obtenidos del Arreglo AIP. El diagrama de la Fig. 5 describe la ejecucién del programa que soio se realiza siempre y cuando haya Mintérminos que no hayan sido marcados en el paso previo. Si fuera el caso, se agrega como Implicante Primo Esencial aquel (aquellos) Implicantes Primos que no hayan sido marcados y que cubre(n) a los Mintérminos faltantes, los Implicantes Primos Esenciales se guardan en el arreglo AIPE. Finalmente, el diagrama de flujo de la Fig. 6 presenta el resultado de ta minimizacién, para ello cada posicién binaria (1 0 0) del Arregio AIPE se corresponde con una variable, en los casos en que para determinada posicién no se ha colocado un numero binario la variable de esa posicién no debe ser representada (variable eliminada en el proceso de asociacién de implicantes adyacentes). Ingresar cantidad ae Varabes Ing'esar caricad de Mirkérninas + Tnicializar indice "1" que registra [atta Miter mine ene! ego ¥ inicilizar el valor dela variable ‘Postin'qe registra ia column de it del Mirtzmino y ‘Se ingreva Mintérmino en Ossie i (Warkérmine en Decimal)/2= Costerte + Fase + Virkérraine en Decimal = Codie y ‘Guardar bi binario “Resto” en Aveglo “ANINT No ‘e Inorementar a! “Contador da Une Guardar resuttedo on Arreglo "AUNOSMINTY ana ‘posicion ingoxda por "i" ¥ Troremantar a cartidad de "Poste? fe | sex mayorae castidad de Minter nines, FIN Fig.1. Ingreso de datos y conversién de Mintérminos de decimal a binario, inetalizarindioes "i "y "Foon Oy 4 respaciverents ¢ “Colurie del it de lor Inplicartes a “nities Bit de ta posicién *Postir™ del implicant Impiarte ‘raramartar taitador BT Almacenar valor Ge Putin TTicalizar al valor dele variahie Postin= gangs |, ree a eee ee ae ELECTRONICA-UNMSM, N° 26, DICIEMBRE DE 2010 Talia dione "1 7y "Sean Oy {repent ri Tidialear a valor dela vatione “Postinn aaregere aera owas! BT (aieos melicartes aiteran anan slob) ve Ino Marca Tepleattes coma Sombre Bliminar Variable posielonada en PosBin y Cue hevo Implicarte de (2n} Mirtrminos en Prep ANAT Posieidn inioage por contaaar Tn) Inorementar Wn) ae ero nghowtes conse ¥ ( Tmolicartenini Porn lnpicara(ne Poss) Li Tower 4 Fe Carn ana tic s dnt ine (ota Teena Serene covet tnd de nce veerenertr © conte tengo 5 aa oe cn da, wren (cede 3 5 coc ce intent ‘e aa TARTS ns RRS lnelcartec Pimos en rage alpen pan inacosa pr contesrP noe on Fig. 2. Combinacién o asociacién de Implicantes. Fig. 3. Eliminacién de Implicantes repetidos TEJADA: PROGRAMA COMPUTACIONAL PARA SINTESIS DE CIRCUITOS 9 “alecclonwe primer Hrtinan ‘Eiieten Mintémsinoe = ain tha (+ sieonar primer aartaine ie ra : TSS RCN 8 Mitéming ino cubiato) yy tb Taleclona sete PROS "veces cubierto = veces cubieto-*t ino E:enea) " t sdenTonar Salers rekerte Rn we Regia sauna calasao —] 1 tog del topicate, «ringed tees que tnpicare Pnoedes hy Weternoe L ‘seleccionar siguiente tnpiartePtvo| Tharosr inplicane Pino comm earea | to te Sin maa weoes cubleto’ ar Car Tod TSE WR or lnpicante Prin Esra tz Faeclonar Siguiente Wtanano ws

You might also like