【问题标题】:implementing components of a computer processor using .hdl and the Hardware Simulator (nand2tetris)使用 .hdl 和硬件模拟器 (nand2tetris) 实现计算机处理器的组件
【发布时间】:2018-04-18 16:03:44
【问题描述】:

我无法将 .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);
}

我正在努力寻找错误,因为我很确定我在过去以完全相同的方式实现了这个芯片并且它运行良好。

至于全加器,它是相同的错误消息,但在第 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】:

    问题在于 FullAdder 中或门的 x 输入。您指的是信号(引脚)“zab”,但未定义此类信号。

    以后,请记得发布整个文件。很难判断第 16 行中的错误实际上是哪一行。

    【讨论】:

    • 该行只是空白空间 参考“我无法围绕第 16 行的错误。这是在 FullAdder 中的终止括号之后的方式。 ' 在我的 OP 中
    • 是的,但是如果没有完整的文件,我们就无法知道这一点。而且,如果不做出可能没有根据的假设,相关方也无法为自己复制错误。
    • 澄清一下:'zab' 是 FullAdder 芯片的一个内部引脚,连接到 Or 芯片的 'x' 输入,但不连接其他任何东西:'?---zab---x ' 我认为您的意思是将 Or 芯片的 'x' 输入引脚连接到 'zxy' 内部引脚,而 'zab' 是一个错字。
    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2012-07-09
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多