En esta pregunta , se define un mapeo entre EBCDIC y un superconjunto de ISO-8859-1.
Su tarea es construir una red de compuertas NAND de dos entradas que tomarán ocho entradas que A1, A2, A4, ..., A128
representan un carácter EBCDIC y devolverán ocho salidas B1, B2, B4, ..., B128
que representan el carácter "ISO-8859-1" correspondiente de acuerdo con ese mapeo.
Para simplificar las cosas, puede usar las compuertas AND, OR, NOT y XOR en su diagrama, con los siguientes puntajes correspondientes:
NOT: 1
AND: 2
OR: 3
XOR: 4
Cada uno de estos puntajes corresponde al número de puertas NAND que se necesitan para construir la puerta correspondiente.
El circuito lógico que utiliza la menor cantidad de compuertas NAND para implementar correctamente todos los requisitos anteriores gana.
fuente
309 NANDs
Una solución realmente baja en el número de NAND, pero puedo ir aún más abajo. Uno solo tiene que detenerse en algún lugar, en algún momento, y 309 parece bueno para eso. (De hecho, llegué a 308 NAND más tarde, pero luego golpeé algún tipo de barrera).
Esta vez no hay imagen dibujada a lápiz del circuito. Tal vez más tarde si algún día vuelvo a este problema y alcanzo un borde inferior, una repisa, un límite, en la espesura cada vez más densa de circuitos incorrectos.
El circuito se presenta en un código obvio de Verilog, listo para ejecutarse con prueba incluida.
Código Verilog:
fuente