Hola. Continuamos con 4.03: "Estrategia de minimización". Usar mapas de Karnaugh para funciones con más de 5 entradas se vuelve super complicado. Entonces, vamos a ver un método que permite encontrar la implementación de mínimo costo. Pero este método no es tan sencillo, tan visual como los mapas de Karnaugh. Y este método que vamos a ver ahora es similar a los que utilizan los software que sintetizan y que permiten, por ejemplo, implementar funciones complicadas en FPGA. Así que vamos a ver esto. Esto no siempre es enseñado en cursos de sistemas digitales. Lo comento porque hay términos que probablemente no todo el mundo conoce. Hay terminología y esta terminología requiere que entendamos los nombres. Está el "implicante". ¿Qué es un implicante? Son los productos para los cuales una función dada es igual a 1. Son los productos que resultan en un 1. En un mapa de Karnaugh los implicantes serían todos los grupos de 1, entonces este que está acá es un implicante y este que está acá es otro implicante. Yo podría haber tenido este implicante también, este 1 solo aquí; y este 1 también es un implicante. Y estos dos 1, si yo agrupo estos dos 1 también son un implicante, según esta definición. Uno ve que esta función posee 11 implicantes; no me los habría imaginado, pero sí. Vamos a ver cuáles son los 11: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. Hay 11 implicantes. Son como esos test que a uno le hacen de repente, ¿cuántos implicantes ve? Bueno, hay que verlos todos. ¿Qué más? Un literal, ¿qué es un literal? Un literal es el nombre que tiene cada aparición de cada variable en un producto, ya sea en forma directa o en forma negada. Por ejemplo, el implicante x_2 negado, x_3, x_1 posee 3 literales. Cada literal es como la entrada de la función. Los literales los asociamos a entradas de la función. Sigamos con terminologías. ¿Qué es un implicante primo? Un implicante primo es un implicante, ¿qué eran los implicantes?, ya me acordé. Los implicantes lo vimos recién, eran los grupos finalmente, los grupos que uno pueda hacer. Pueden ser grupos pequeños o grupos grandes. Un implicante primo es un implicante al que no es posible eliminar un literal y obtener otro implicante válido. Digamos que un implicante primo es óptimo. En un mapa de Karnaugh corresponde a los grupos más grandes de 1 que yo puedo hacer. Aquí tengo dos implicantes primos, x_1 es un implicante primo que contiene un literal y x_2, perdón x_1 negado. x_2, x_3 también es un implicante primo. ¿Por qué es un implicante primo? ¿Cuál implicante no sería primo? Este implicante no sería primo, por ejemplo; porque a este implicante yo le podría eliminar una de las dos variables, haciendo crecer el grupo. Entonces los implicantes primos son los grupos más grandes que uno puede hacer. Perfecto. ¿Y qué es un "cover"? Un "cover", uno se imagina las canciones. Un "cover" es una versión de una canción hecha por un grupo en particular, o por una banda en particular. En este caso, la definición es un poco extraña pero guarda cierta analogía. Un "cover" es un conjunto de implicantes que contienen todas las valoraciones para que una función sea igual a 1. Hay varios "covers" distintos que pueden representar la misma función, así como hay varios "covers" distintos de una canción. Una función puede ser representada por más de un "cover"; por ejemplo, 3 "covers" distintos a continuación. Vemos este "cover" que representa esta función; este "cover" distinto representa la misma función. Y este "cover" distinto y óptimo, porque tiene implicantes primos, representa la misma función. Sigamos con terminología: costo. El costo es el número de compuertas lógicas sumado al número de entradas total a las compuertas, sumamos cuántas compuertas estamos usando y sumamos el número de entradas de las compuertas. Y esto no es algo estándar, pero es una muy buena aproximación sobre el costo de una función. Se asume, cuando uno calcula costo, que todos los literales están disponibles en su forma directa y forma negada, complementadas. Entonces nosotros imaginamos por ejemplo que tenemos la entrada x_1, la entrada x_2, la entrada x_3 y yo voy a rutear x_1, voy rutear x_2, voy a rutear x_3. Y puedo rutear también x_1 negado; puedo rutear x_2 negado y puedo rutear x_3 negado. Y yo de aquí puedo sacar; estos están disponibles, entonces uno no tiene que preocuparse por eso. En este ejemplo f igual x_1 negado x_2 o x_3 x_4 se requieren 2 compuertas AND; aquí necesito una AND de 2 entradas y aquí necesito una AND de 2 entradas. Y luego necesito una OR de 2 entradas también. Entonces hay un total de 1, 2, 3, 4, 5, 6 entradas. Las compuertas anteriores, estamos hablando de 3 compuertas, por lo tanto, 3 más 6 es 9. Tenemos 9 como costo. ¿En qué unidades se mide? No es relevante, lo importante es que es un costo relativo. Ahora vamos con el procedimiento de minimización. Para circuitos más grandes minimizar el costo se vuelve super importante porque puedo terminar con un pedazo grande de chip o un pedazo pequeño de chip. El mínimo costo se obtiene cuando el "cover", de los muchos "covers" que yo puedo tener para representar una función, cuando el "cover" está formado por implicantes primos esenciales. ¿Qué son los implicantes primos esenciales? Son implicantes primos que contienen un minterm que no está incluido dentro de ningún otro implicante primo. Son implicantes que si no los incluyo, no puedo hacer mi función. Es esencial para hacer la función. Muy bien, este es un ejemplo. Aquí hay implicantes primos esenciales. Estos dos de aquí son implicantes primos esenciales. ¿Por qué son primos? Porque corresponden al grupo más grande. ¿Y por qué son esenciales? Porque si yo quito este implicante primo, no puedo hacer mi función. Entonces estos dos de aquí son implicantes primos esenciales. Perdón, y este implicándose me da m_7, este otro implicante me da m_0, m_1, m_2. ¿Qué pasa con m_3? m_3 también está bueno, m_3 está en ambos grupos así que ya está cubierto. ¿Qué aprendimos hoy? Cómo minimizar con mapas de Karnaugh. Aprendimos terminología: implicante, literal, implicante primo, implicante primo esencial. Aprendimos lo que es un "cover" de una función y aprendimos una forma o recordamos una forma de calcular el costo de una función. Muchas gracias.