|
This post was updated on .
hello everyone
I'm having trouble understanding why in the comparison file
of the cpu.tst
of project 5 the inM pin input ***** when it dosnt have any value set
in my code im checking if the the instruction is c or A
if A im loading the valu to A
after im checking the abit and MSB
to chose between inM and A regester
but still got wrong output in outM
becouse inM pin send wrong input
can someone tell me what im doing wrong pleas
my code:
Or(a=instruction[15],b=instruction[5],out=Aord1);
Mux16(a=aluout,b[0..14]=instruction[0..14],sel=instruction[15],out=adress);
ARegister(in=adress,load=Aord1,out=outa,out[0..14]=addressM);
DRegister(in=aluout,load=instruction[4],out=outd);
And(a=instruction[15],b=instruction[12],out=opandabit);
Mux16(a=outa,b=inM,sel=opandabit,out=outAorinM);
And(a=instruction[15],b=instruction[3],out=writeM);
ALU(x=outd,y=outAorinM,zx=instruction[11],nx=instruction[10],zy=instruction[9],ny=instruction[8],
f=instruction[7],no=instruction[6],out=aluout,
out=outM,zr=ozr,ng=ong);
And(a=instruction[0],b=instruction[1],out=outj1andj2);
And(a=outj1andj2,b=instruction[2],out=outj1j2j3);
And(a=outj1j2j3,b=ozr,out=outzrandjump);
And(a=outzrandjump,b=ong,out=outjmpAndzrAndng);
Not(in=outjmpAndzrAndng,out=outinc);
PC(in=outa,inc=outinc,load=outjmpAndzrAndng,reset=reset,out[0..14]=pc);
|