|
I have already tried 2 ways to build my PC. The first one using ALU and the second one using MUX16 but i still encoutered the same mistake: the output is evaluated earlier than I expected. Can anyone give me an explaination about why it happens and may be some hints to overcome the problem?
// False code1: // Not(in = reset, out = notreset);
// Not(in = load, out = notload);
// And(a = notreset, b = notload, out = notrl);
// And(a = notrl, b = inc, out = inno);
// Or(a = reset, b = inno, out = inf);
// Register(in = in, load = load, out = outx);
// ALU(x = outx, y = outx, zx = reset, nx = inno, zy = true, ny = notreset, no = inno, f = inf, out = out);
// False code2: // Register(in = in, load = load, out = out0);
// Not(in = load, out = notload);
// Not(in = reset, out = notreset);
// And(a = notload, b = notreset, out = and0);
// And(a = and0, b = inc, out = sel);
// Inc16(in = out0, out = out1);
// Mux16(a = out0, b = out1, sel = sel, out = out2);
// Mux16(a = out2, b = false, sel = reset, out = out);
Hope you guys have a nice day,
--King
|