Вот мой код:Попытка построить PC (счетчик) для nand2tetris книги, но у меня возникают некоторые проблемы с логикой
CHIP PC {
IN in[16],load,inc,reset;
OUT out[16];
PARTS:
Inc16(in = regout, out = incout);
Mux16(a = regout, b = incout, sel = inc, out = incdecision);
Mux16(a = incdecision, b = false, sel = reset, out = resetdecision);
Mux16(a = regout, b = resetdecision, sel = load, out = loaddecision);
Register(in = loaddecision, load = true, out = regout, out = out);
}
В принципе, значение выхода из регистра увеличивается, что принимается только в том случае, если inc равен 1 (проверяется через Mux), который затем проходит через другой Mux, который может его сбросить, а затем другой Mux, который может или не может записывать его в зависимости от значения нагрузки. Затем любое значение вышло из этого (будь то измененное значение или значение, поступающее из старого регистра) помещается в регистр.
Что я делаю неправильно?
Вместо того, чтобы сказать, что должно произойти, вы должны прокомментировать, почему вещи должны произойти именно так. Это позволяет другим людям в будущем учиться и убирать гораздо больше от вашего ответа. – yanman1234