Necesito implementar demux simple en HDL:
La lógica del demultiplexor sería:
{a, b} = {en, 0} si sel == 0
{a, b} = {0, en} si sel == 1
Comencé desde la tabla lógica básica y, en primer lugar, escribí todas las combinaciones posibles de todos los pines y, como resultado, obtuve:
/**
* in | sel | a | b
* ----------------
* 0 | 0 | 0 | 0
* 1 | 0 | 0 | 0
* 0 | 1 | 0 | 0
* 1 | 1 | 0 | 0
* 0 | 0 | 1 | 0
* 1 | 0 | 1 | 0
* 0 | 1 | 1 | 0
* 1 | 1 | 1 | 0
* 0 | 0 | 0 | 1
* 1 | 0 | 0 | 1
* 0 | 1 | 0 | 1
* 1 | 1 | 0 | 1
* 0 | 0 | 1 | 1
* 1 | 0 | 1 | 1
* 0 | 1 | 1 | 1
* 1 | 1 | 1 | 1
*/
Trabajando en la puerta con una sola salida, necesitaría compilar una expresión lógica donde la salida sea igual a 1. Ahora estoy un poco confundido sobre cómo simplificar esta tabla lógica, incluso si sé cómo debería verse el resultado final:
/**
* in | sel | a | b
* -----------------
* 0 | 0 | 0 | 0
* 1 | 0 | 1 | 0
* 0 | 1 | 0 | 0
* 1 | 1 | 0 | 1
*/
Sería genial tener una idea de cómo se simplifica, gracias.