Проект направлен на создание счетчика программ.
Описание следующее:
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// File name: projects/03/a/PC.hdl
/**
* A 16-bit counter with load and reset control bits.
* if (reset[t] == 1) out[t+1] = 0
* else if (load[t] == 1) out[t+1] = in[t]
* else if (inc[t] == 1) out[t+1] = out[t] + 1 (integer addition)
* else out[t+1] = out[t]
*/
Я вычислил все возможные варианты следующим образом:
CHIP PC
{
IN in[16],load,inc,reset;
OUT out[16];
PARTS:
// Put your code here:
Register(in=in, load=true, out=thein);
Register(in=in, load=false, out=theout);
Inc16(in=theout, out=forinc);
Register(in=forinc, load=true, out=theinc);
Mux8Way16(a=theout, b=false, c=theinc, d=false, e=thein, f=false, g=thein, h=false, sel[2]=load, sel[1]=inc, sel[0]=reset, out=out);
}
Я пробовал много раз, но все терпели неудачу, когда часы загружались до времени 1+ или что-то в этом роде.
Поскольку определенный здесь регистр равен out(t+1) = out(t)
каков выход времени ?+.Меня это очень раздражает.
Любые предложения будут оценены.