es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El encuentro [0]: el sub bus de un nodo interno no puede ser utilizado al implementar Not16 con Not.

Cuando estaba implementando Not16 con compuertas Not:

CHIP Not16 {
    IN in[16];
    OUT out[16];

    PARTS:
        Not(in=[0], out=out[0]);
        Not(in=[1], out=out[1]);
        Not(in=[2], out=out[2]);
        Not(in=[3], out=out[3]);
        // ...
        Not(in=[15], out=out[15]);

Obtuve un error ““[0]: sub bus of an internal node may not be used” en la primera parte.

Sin embargo, implementar esto con 16 compuertas Nand es correcto:

Nand(a=in[0], b=in[0], out=out[0]);
// ...

¿Alguien puede señalar la diferencia entre estos métodos y encontrar el problema?

PD: Usando HardwareSimulator de Nand2Tetris.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con la implementación de Not16 usando 16 compuertas Not es que la entrada in es dividida en 16 sub-buses para cada compuerta Not. El mensaje de error sugiere que no se pueden utilizar sub-buses de nodos internos, lo que significa que los sub-buses creados al dividir in no pueden ser pasados como entrada a la compuerta Not porque no son parte del bus principal.

    Por otro lado, la implementación de Not16 con 16 compuertas Nand funciona porque cada compuerta Nand toma dos entradas, lo que nos permite conectar directamente cada bit de entrada a una compuerta Nand separada sin dividir la entrada en sub-buses. Esto significa que cada compuerta Nand opera en el bus principal in y produce directamente la posición correspondiente en el bus out, evitando el problema de los sub-buses de nodos internos.

Comments are closed.