芯片 Mux4way16 未 运行 直到 HardwareSimulator (VHDL) 结束
chip Mux4way16 not run ontil the end on HardwareSimulator (VHDL)
我正在尝试构建这个芯片:
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// File name: projects/01/Mux4Way16.hdl
/**
* 4-way 16-bit multiplexor:
* out = a if sel == 00
* b if sel == 01
* c if sel == 10
* d if sel == 11
*/
CHIP Mux4Way16 {
IN a[16], b[16], c[16], d[16], sel[2];
OUT out[16];
PARTS:
// Put your code here:
那是我写到现在的内容 -
PARTS:
// Put your code here:
Xor(a=sel[0], b=sel[1], out=finalSel);
Not(in=finalSel, out=notFinalSel);
Mux16(a=a, b=b, sel=finalSel, out=aAndB);
Mux16(a=c, b=d, sel=notFinalSel, out=cAndd);
Mux16(a=aAndB, b=cAndd, sel=sel[0], out=out);
}
而且由于某种原因它不工作..
Screenshot from the HardwareSimulator
有人知道为什么吗?
您选择要传递的输入的逻辑似乎不正确。您应该通过为 finalSel、notFinalSel、aAndB、cAndd 和 out 为 4 个控制条件中的每一个创建一个真值 table 来测试它。
一般来说,做这类题时,KISS原则是成立的;保持简单和愚蠢。您不需要对 sel[] 位进行任何花哨的逻辑操作,您可以直接使用它们。因此,一旦您修复了您的版本(并了解您哪里出错了),请尝试制作一个仅包含 3 个 Mux16 而没有其他任何内容的版本。一旦两个版本都可以正常工作,您就会明白导致您在第一次尝试时走错路的错误,这将是一个宝贵的教训。
玩得开心!
我正在尝试构建这个芯片:
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// File name: projects/01/Mux4Way16.hdl
/**
* 4-way 16-bit multiplexor:
* out = a if sel == 00
* b if sel == 01
* c if sel == 10
* d if sel == 11
*/
CHIP Mux4Way16 {
IN a[16], b[16], c[16], d[16], sel[2];
OUT out[16];
PARTS:
// Put your code here:
那是我写到现在的内容 -
PARTS:
// Put your code here:
Xor(a=sel[0], b=sel[1], out=finalSel);
Not(in=finalSel, out=notFinalSel);
Mux16(a=a, b=b, sel=finalSel, out=aAndB);
Mux16(a=c, b=d, sel=notFinalSel, out=cAndd);
Mux16(a=aAndB, b=cAndd, sel=sel[0], out=out);
}
而且由于某种原因它不工作.. Screenshot from the HardwareSimulator
有人知道为什么吗?
您选择要传递的输入的逻辑似乎不正确。您应该通过为 finalSel、notFinalSel、aAndB、cAndd 和 out 为 4 个控制条件中的每一个创建一个真值 table 来测试它。
一般来说,做这类题时,KISS原则是成立的;保持简单和愚蠢。您不需要对 sel[] 位进行任何花哨的逻辑操作,您可以直接使用它们。因此,一旦您修复了您的版本(并了解您哪里出错了),请尝试制作一个仅包含 3 个 Mux16 而没有其他任何内容的版本。一旦两个版本都可以正常工作,您就会明白导致您在第一次尝试时走错路的错误,这将是一个宝贵的教训。
玩得开心!