Estoy a punto de embarcarme en un proyecto, inspirado por Nand2Tetris (http://www.nand2tetris.org/), para simular completamente una computadora, construyendo todo a partir de puertas NAND.
Quiero simular todo desde cero, comenzando con una implementación primitiva de una puerta NAND que simula cómo funcionaría una puerta NAND en el nivel físico , y luego conectarlos para construir una computadora.
El problema es que no entiendo lo suficiente sobre cómo funcionaría una puerta NAND en el nivel físico para escribir esto.
Para ser claros, esto ciertamente no es lo que estoy buscando:
def nand(a, b)
return !(a && b)
end
Me gustaría implementar la puerta NAND como una clase, para que funcione más como un objeto real. Me gustaría tener pines, y me gustaría poder conectarlos y aplicar voltaje, etc.
¿Alguien me puede mostrar cómo podría implementar una simulación adecuada de una puerta física NAND, una que podría estar unida para construir una computadora?