Hola. Ahora continuamos con síntesis de funciones lógicas usando multiplexores. Podemos sintetizar funciones lógicas usando multiplexores de una forma muy ingeniosa y eso es lo que vamos a ver. Los multiplexores pueden servir para implementar tablas de verdad arbitrarias. Ya vamos a ver que podemos hacer cualquier tabla de verdad con multiplexores. Hay una forma sistemática de hacerlo, no lo vamos a ver en este módulo, lo veremos en el próximo. Por ejemplo, esta tabla de verdad. x_1 y x_2, son mis dos entradas, que las vamos a poner en el selector. Cuando x_1 y x_2 es 0, f es 0, entonces conectamos la entrada del multiplexor a 0. Cuando x_1 es 0 y x_2 es 1, f es 1, entonces conectamos la entrada del multiplexor al 1. Y así, de esta forma, uno puede implementar cualquier tabla de verdad con un multiplexor. De hecho, un multiplexor puede implementar cualquier tabla de verdad. No lo había pensado así, pero así es, efectivamente. Pero podemos hacerlo aún ingeniosamente. Podemos reducir las tablas de verdad. Por ejemplo, sí aquí tenemos la misma función de antes, ustedes saben qué función es esta, x_1 es 0, x_2 es 0, f es 0, y aquí empezamos a ver un patrón. Por ejemplo, vemos un patrón, que f es x_2, si es que x_1 es 0 y f es x_2 negado si x_1 es 1, entonces redujimos la tabla de verdad ingeniosamente, pensando. Esto mismo lo podemos implementar con un multiplexor. Cuando x_1 es 0 me elige x_2, cuando x_1 es 1 me elige x_2 negado. Y así redujimos la tabla. Aquí hay otro ejemplo. Podemos pensarlo siempre y ver de qué se trata. Aquí está f. Vamos a poner x_1 y x_2 aquí y vamos a hacer que f dependa de x_3. Por ejemplo, cuando x_1 es 0 y x_2 es 0, que son estos dos casos de acá, vemos que f es 0, independientemente de x_3. En este otro caso, cuando x_1 es 0 y x_2 es 1, f es exactamente x_3. Cuando, el tercer caso, x_1 es 1 y x_2 es 0, f es x_3 y cuando x_1 y x_2 son 1, f es 1, independientemente de x_3. Entonces, con x_1 y x_2 como selector, nosotros podemos derivar a f como 0, x_3, x_3 o 1. Cuando x_1 y x_2 valen 0 0, esta es la salida, cuando es 0 1 y 1 0, x_3 es la salida y cuando es 1 1, 1 es la salida. Podríamos hacer esto mismo usando más de un multiplexor también, haciéndolo en varios niveles, entendamos la diferencia. Y lo hicimos con un multiplexor de 4, aquí la misma tabla de verdad. No, esta es distinta. Esta tiene un 1 aquí, esta tiene unos aquí, esta es 0 1 1 0, 1 0 0 1. Si nosotros miramos esta parte de la tabla de verdad, vemos que esto correspondería como a x_2 por exclusivo x_3. En cambio, esta parte correspondería a x_2 por exclusivo x_3 negado. Podemos elegir esta o esta en función de cuánto vale x_1. Entonces, cuando x_1 es 0 elegimos x_2 por exclusivo x_3, que lo implementamos con esta parte de acá, y cuando x_1 es 1, elegimos x_2 por exclusivo x_3 negado y con eso ya tenemos nuestra función. Este es otro ejemplo. Nosotros podemos inventar tantos ejemplos como se nos ocurran. Aquí miramos que f vale x_3, aquí f vale x_3 negado, aquí f vale x_3 negado y aquí f vale x_3. Entonces, según x_1 y x_2, yo puedo implementar f como alguna versión de x_3. Si x_1 y x_2 es 0, mi función es x_3. Si x_1 y x_2 es 1, mi función es x_3 negado y así para completar todas las partes de esta tabla de verdad. Muy bien. Hoy aprendimos cómo hacer síntesis de circuitos con multiplexores, cómo implementar de manera óptima o mejor o más reducida usando multiplexores, y vimos ejemplos. Muchas gracias.