你好我正在尝试实现门MiniALU,但是霍华德模拟器给了我这个错误:"没有源针"。如果你能帮我解决这个问题,我会很高兴。
我的代码 -
CHIP MiniALU {
IN
x[16], y[16], // 16-bit inputs
zx, // zero the x input?
zy, // zero the y input?
f; // compute out = x + y (if f == 1) or out = x & y (if == 0)
OUT
out[16]; // 16-bit output
PARTS:
// Zero the x input and y input
Mux16(a[0..15]=x, b[0..15]=false, sel=zx, out[0..15]=x1);
Mux16(a[0..15]=y, b[0..15]=false, sel=zy, out[0..15]=y1);
// Perform f
And16(a[0..15]=x2, b[0..15]=y2, out[0..15]=xandy);
Add16(a[0..15]=x2, b[0..15]=y2, out[0..15]=xaddy);
Mux16(a[0..15]=xandy, b[0..15]=xaddy, sel=f, out[0..15]=out);
}
答案 0 :(得分:1)
您正在将x2和y2连接到And16和Add16的输入,但x2和y2未在任何地方定义。
您需要在与And16和Add16的连接中用x1和y1替换x2和y2。
答案 1 :(得分:0)
正确的代码:
Mux16(a=x, b=false, sel=zx, out=x1);
Mux16(a=y, b=false, sel=zy, out=y1);
And16(a=x1, b=y1, out=xandy);
Add16(a=x1, b=y1, out=xaddy);
Mux16(a=xandy, b=xaddy, sel=f, out=out);
您的问题是您写了 y2 和 x2 而不是 y1 和 x2 。
此外, [0..15]
中不需要答案 2 :(得分:-1)
代替: And16(a [0..15] = x1 ,b [0..15] = y1 ,out [0..15] = xandy); Add16(a [0..15] = x1 ,b [0..15] = y1 ,out [0..15] = xaddy);