错误代码无效

时间:2014-03-29 10:19:23

标签: hdl

你好我正在尝试实现门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);
}

3 个答案:

答案 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] = x2 ,b [0..15] = y2 ,out [0..15] = xandy); Add16(a [0..15] = x2 ,b [0..15] = y2 ,out [0..15] = xaddy);

代替: 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);