2014-03-29 5 views
0

Здравствуйте, я пытаюсь реализовать ворота MiniALU, но симулятор Howard дал мне эту ошибку: «не имеет исходного вывода». Я был бы рад, если вы поможете мне решить эту проблему.Код ошибки не работает

мой код-

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 но х2 и у2 нигде не определено.

Вам необходимо заменить x2 и y2 на x1 и y1 в соединениях с And16 и Add16.

-1

Вы писали: And16 (A [0..15] = x2, б [0..15] = y2, из [0..15] = xandy); Add16 (a [0..15] = x2, b [0..15] = y2, out [0..15] = xaddy);

вместо: And16 (в [0..15] = x1, Ь [0..15] = у1, из [0..15] = xandy); Add16 (a [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); 

Ваша проблема в том, что вы написали y2 и x2 вместо y1 и x2.

Кроме того, не нужно в [0..15]

+0

Это тот же самый ответ, который был опубликован 3 года назад ... – miken32

Смежные вопросы