使用.hdl和硬件仿真器的计算机处理器的执行部件(nand2tetris)

问题描述 投票:-1回答:1

我无法让我的.hdl文件,以对HardwareSimulator负荷。到目前为止,我已经实现了FullAdder.hdl和Add16.hdl。

我收到的错误消息是

line 22, zab has no source pin

下面是Add16相关的代码:

 CHIP Add16 {
IN x[16], y[16];
OUT out[16];


PARTS: 
HalfAdder(x=x[0],y=y[0],sum=out[0],carry=c);
FullAdder(x=x[1],y=y[1],c=c,sum=out[1],carry=d);
FullAdder(x=x[2],y=y[2],c=d,sum=out[2],carry=e);
FullAdder(x=x[3],y=y[3],c=e,sum=out[3],carry=f);
FullAdder(x=x[4],y=y[4],c=f,sum=out[4],carry=g);
FullAdder(x=x[5],y=y[5],c=g,sum=out[5],carry=h);
FullAdder(x=x[6],y=y[6],c=h,sum=out[6],carry=i);
FullAdder(x=x[7],y=y[7],c=i,sum=out[7],carry=j);
FullAdder(x=x[8],y=y[8],c=j,sum=out[8],carry=k);
FullAdder(x=x[9],y=y[9],c=k,sum=out[9],carry=l);
FullAdder(x=x[10],y=y[10],c=l,sum=out[10],carry=m);
FullAdder(x=x[11],y=y[11],c=m,sum=out[11],carry=n);
FullAdder(x=x[12],y=y[12],c=n,sum=out[12],carry=o);
FullAdder(x=x[13],y=y[13],c=o,sum=out[13],carry=p);
FullAdder(x=x[14],y=y[14],c=p,sum=out[14],carry=q);
FullAdder(x=x[15],y=y[15],c=q,sum=out[15],carry=drop);
}

我strugginling找到错误,因为我敢肯定,我恰好在过去相同的方式来实现这种芯片,它能正常工作。

至于全加器,这是同样的错误消息,但对于线16。

我会为这部分也相关的代码:

CHIP FullAdder {
IN x, y, z;  // 1-bit inputs
OUT sum,     // Right bit of x + y + z
    carry;   // Left bit of x + y + z

PARTS:
HalfAdder(x=x,y=y,sum=xy,carry=zxy);
HalfAdder(x=z,y=xy,sum=sum,carry=s);
Or(x=zab,y=s,out=carry);


}

我不能环绕错误请参阅第16行这是在FullAdder终止括号后的方式我的脑海里。

我浏览互联网,据我可以告诉我的实现是完全正确的。任何人的意见谁是在计算机处理器领域精通?这肯定将是其他人谁正在运行到相同/相似的问题非常有用。

谢谢

编辑:根据这个链接Logic Gates我的实现看起来或多或少完全一样。难道是我的最终故障HardwareSim?虽然我怀疑,因为我已经在过去使用它,它是我的大学推荐给我的。

hdl hardware-programming nand2tetris
1个回答
2
投票

问题是在x输入至第FullAdder您或门。你指的是一个信号(引脚)“扎卜”但没有这样的信号被定义。

在未来,请记住张贴整个文件。这是很难帮助时,它是很难说,它实际上是什么线,你诊断线路16的错误。

© www.soinside.com 2019 - 2024. All rights reserved.