遇到[0]:用Not实现Not16时,不能使用内部节点的子总线

Encounter [0]: sub bus of an internal node may not be used when implementing Not16 with Not

当我用 Not 门实施 Not16 时:

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]);

我在第一部分收到错误“[0]:内部节点的子总线可能无法使用”。

然而,用 16 个与非门实现这个很好:

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

谁能指出问题和区别。

p.s。使用 HardwareSimulator from Nand2Tetris

我认为您的 Not 组件中有拼写错误。 in 应该采用 in=in[x] 的形式,而不是您当前使用的 in=[x]。

相反,您的 Nand 组件已正确格式化。

你的格式是正确的,但试试 in = in[0] 而不是 in = [0]