Vergleichsfehler bei der Implementierung eines Gate-MUX in nand2tetris

stimmen
0

Ich versuche, einen MUX (Multiplexer) Tor im nand2tetris Kurs zu implementieren. Ich versuchte zunächst, mich, und ich habe einen Fehler. Aber egal, was ich geändert Ich habe immer den Fehler. Also habe ich versucht, einige Online-Code überprüft, und das ist, was die meisten Leute benutzen:

CHIP Mux {
    IN a, b, sel;
    OUT out;

    PARTS:
    Not(in=sel, out=nsel);
    And(a=sel, b=b, out=c1);
    And(a=nsel, b=a, out=c2);
    Or(a=c1, b=c2, out=out);
}

Aber selbst wenn ich diesen Code versuchen, erhalte ich immer noch die folgende Fehlermeldung: Fehler

Was ich als Wahrheitstabelle erhalten:

|   a   |   b   |  sel  |  out  |
|   0   |   0   |   0   |   0   |
|   0   |   0   |   1   |   0   |
|   0   |   1   |   0   |   0   |
|   0   |   1   |   1   |   0   |

Was sollte ich:

|   a   |   b   |  sel  |  out  |
|   0   |   0   |   0   |   0   |
|   0   |   0   |   1   |   0   |
|   0   |   1   |   0   |   0   |
|   0   |   1   |   1   |   1   |
|   1   |   0   |   0   |   1   |
|   1   |   0   |   1   |   0   |
|   1   |   1   |   0   |   1   |
|   1   |   1   |   1   |   1   |

Ich habe die neueste Software-Suite pro 2020.01.13

Veröffentlicht am 13/01/2020 um 23:48
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Von dem, was Ihr Eingang-Pins zu erkennen ist:

a = 0  
b = 1  
sel = 1

Ihre internen Pins sind:

nsel = 1 
c1   = 1 
c2   = 0

Alle als bisher erwartet.

Erwartet out = 1 in diesem Fall und Sie erhalten out = 0. Testskript stoppt wegen des Scheiterns an dieser Stelle.

Nun könnte es zwei Gründe dafür sein:
1) nicht korrekt geladen wurde Mux.hdlund weil , wenn Sie berechnet Or(c1,c2)Sie erhalten würden 1 , die ist richtig. Wenn Sie platziert AndTor statt , Ores würde Scheitern erklären
2) Ihre Implementierung Or.hdlist incorrect.Mux Ihre Version von verwendet OrGate , wenn eine solche Datei in demselben Verzeichnis befindet.

Also zuerst Ihren Code in Hardware Simulator überprüfen, dann überprüfen Sie Ihre Implementierung Or.hdl. Letztere könnten Sie tun , indem sie vorübergehend entfernt Or.hdlvon Projektverzeichnis. Hardware Simulator laden würde integrierte Version von OrTor.

Beantwortet am 14/01/2020 um 01:56
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more