#nand2tetris
Вопрос:
Вот пример, чтобы показать, что я имею в виду. Если я включу в свой список следующее ALU
, это будет недействительно:
chip ALU {
// ...
PARTS:
// out4 is the output of some internal chip
Or8Way(
in[0..7]=out4[0..7],
out=outa
);
Or8Way(
in[0..7]=out4[8..15],
out=outb
);
Or(a=outa, b=outb, out=out);
}
Но… если я возьму этот кодовый блок и сделаю его своим собственным Or16Way
чипом,
CHIP Or16Way {
IN in[16];
OUT out;
PARTS:
Or8Way(
in[0..7]=in[0..7],
out=out0
);
Or8Way(
in[0..7]=in[8..15],
out=out1
);
Or(a=out0, b=out1, out=out);
}
а затем используйте это в ALU
,
ALU {
// ...
Parts:
Or16Way(in=out4, out=or);
}
все в порядке. Почему это происходит?
В одном случае я проиндексировал входные контакты, в другом случае я проиндексировал внутренние контакты.
Почему одно разрешено, а другое запрещено?
Комментарии:
1. Ваш вопрос не содержит достаточного контекста, чтобы определить, является ли это фактическим ограничением системы или просто ошибкой в определении вашего чипа. Пожалуйста, предоставьте полный код чипа, который выдает ошибку, и полное сообщение об ошибке (включая номер строки)