|
Is this something known or am I doing something wrong?
This code fails the test, address 7 takes one extra clock cycle to show up on the output, all the other addresses work as expected
CHIP RAM8 {
IN in[16], load, address[3];
OUT out[16];
PARTS:
//// Replace this comment with your code.
Mux8Way16(a=Reg0,b=Reg1,c=Reg2,d=Reg3,e=Reg4,f=Reg5,g=Reg6,h=Reg7,sel=address,out=out);
DMux8Way(in=load,sel=address,a=Load0,b=Load1,c=Load2,d=Load3,e=Load4,f=Load5,g=Load6,h=Load7);
Register(in=in,load=Load0,out=Reg0);
Register(in=in,load=Load1,out=Reg1);
Register(in=in,load=Load2,out=Reg2);
Register(in=in,load=Load3,out=Reg3);
Register(in=in,load=Load4,out=Reg4);
Register(in=in,load=Load5,out=Reg5);
Register(in=in,load=Load6,out=Reg6);
Register(in=in,load=Load7,out=Reg7);
}
Now it seems to be the last register mentionned that has the issue, if I move register at the top of the list then Reg6 has a problem. If I move all the Register statements before the DMux8Way, then it works as expected...
|