Tengo dificultades para entender cómo implementar funciones booleanas, particularmente dado que solo puedo usar muxes 2: 1 y la variable D como una variable residual.
La función es la siguiente:
He creado la tabla de verdad y, usando un mapa de Karnaugh, he minimizado la función para esto:
También logré diseñar un MUX 16: 1 con A, B, C y E como selector y D como variable residual.
Entiendo cómo funciona un multiplexor y soy completamente capaz de derivar una tabla de verdad de una implementación existente, pero simplemente no entiendo cómo tomar la tabla de verdad, el mapa de Karnaugh y la función SOP minimizada e implementar la función usando solo 2: 1 MUX y D como variable residual.
No estoy pidiendo necesariamente la respuesta directa, aunque sería agradable de ver. Estoy más interesado en una explicación, un algoritmo o realmente cualquier cosa que pueda ayudarme a desarrollar la implementación yo mismo.
Quiero poder visualizar la conexión entre la función y la implementación, no solo aprender cómo implementarla de memoria sin entender por qué es así.
¡Gracias por tu tiempo!
Editar: Si bien entendí la respuesta aceptada y es la respuesta correcta, se me pidió que usara solo las siguientes entradas para las líneas de datos de mis muxes 2: 1: lógica 0, lógica 1 y la variable D. Las variables A, B, C solo debe usarse como líneas de selección.
Creé el mapa VK para F (A, B, C, D) = AB + BC + CD y luego usé ese mapa para derivar un mapa VK para F (A, B, C) como se puede ver a continuación.
Editar: para el mapa de la derecha, el valor para ABC = 000 debe ser 0, no 1. Un error que cometí cuando copié la tabla de mi cuaderno en Excel.
Luego creé la siguiente implementación de mux:
El diseño de mux fue tomado de un libro de electrónica. La implementación, aunque no es terriblemente eficiente, funciona. Calculé la salida de los muxes usando la fórmula M (X, Y, Z) = XZ '+ YZ y la salida del mux de la derecha es:
Usando otro mapa de Karnaugh, lo anterior se simplifica a AB + BC + CD, que es la función que necesitaba implementar.
El diseño de los MUX en sí está tomado de un libro de electrónica. En el libro, las entradas de datos del nivel más a la izquierda de MUX se numeraron como se puede ver en mi diagrama y las etiquetas representan el equivalente decimal de las celdas del mapa F (A, B, C) VK. Si observa, por ejemplo, la celda 101 (binaria para 5), entonces el valor en esa celda es la entrada para la entrada MUX correspondientemente etiquetada en la implementación, en este caso 'D'.
¿Alguien puede comentar por qué las líneas de entrada de datos están etiquetadas en ese orden particular (0, 4, 2, 6, 1, 5, 3, 7)?