2014-03-29 85 views
0

你好,我想實現的門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); 
} 

回答

1

您正在連接X2和Y2到And16和Add16的輸入,但X2和Y2未在任何地方定義。

您需要在連接And16和Add16 X1和Y1更換X2和Y2。

-1

您寫道: And16(一個[0..15] = X2,B [0..15] = Y2,OUT [0..15] = xandy); Add16(一個[0..15] = X2,B [0..15] = Y2,OUT [0..15] = xaddy);

代替: And16(一個[0..15] = X1,B [0..15] = Y1,OUT [0..15] = xandy); Add16(一個[0..15] = X1,B [0..15] = Y1,OUT [0..15] = xaddy);

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); 

你的問題是,你寫Y2X2而不是Y1X2

還有,是不是需要在[0..15]

+0

這是在3年前發佈了相同的答案... – miken32