Actualmente estoy tomando el curso Nand2Tetris en línea, donde estoy en el proceso de construir una computadora virtual todo desde nand puertas Aprendí qué es una ALU, cómo funciona y construí una virtual sencilla yo mismo.
Ahora me gustaría crear mi propia ALU física de 8 bits a partir de IC de la serie 74 (HC). Tengo experiencia en la construcción de dispositivos electrónicos y en el uso de circuitos integrados, a nivel de pasatiempo. Mi único problema real es que no sé qué funciones elegir para mi nueva ALU. En la ALU virtual que construyo hay entradas x e y, y 6 funciones:
- cero x
- no x (bitwise),
- cero y,
- no y (bitwise),
- f (0: x AND y 1: x + y),
- No (a nivel de bit, en todo).
Voy a construir una computadora completa, así que por supuesto podría agregar multiplicación con software más adelante, pero probablemente me gustaría tener más funciones de hardware. De mi investigación descubrí sobre los decrementos y decrementos, los cambios de izquierda / derecha, otros circuitos de multiplicación / división "completos" y, por supuesto, implementaciones más lógicas. Pero no tengo idea de qué funciones son necesarias / útiles tener en una ALU, y cuál es un buen equilibrio entre las implementaciones de hardware y software.