Comparaison erreur lors de la mise en œuvre d'une porte MUX nand2tetris

voix
0

Je suis en train de mettre en œuvre une porte MUX (Multiplexeur) au cours de nand2tetris. Je me suis d'abord essayé, et je suis une erreur. Mais peu importe ce que je changé j'ai toujours eu l'erreur. J'ai donc essayé de vérifier un code en ligne, ce qui est ce que la plupart des gens utilisent:

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);
}

Mais même quand j'essaie ce code, je reçois toujours l'erreur suivante: msg

Ce que je reçois comme une table de vérité:

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

Qu'est-ce que je devrais obtenir:

|   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   |

J'ai la toute nouvelle suite logicielle par 13.01.2020

Créé 13/01/2020 à 23:48
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

De ce qui peut être vu vos broches d'entrée sont les suivants:

a = 0  
b = 1  
sel = 1

Vos broches internes sont:

nsel = 1 
c1   = 1 
c2   = 0

Tout comme prévu jusqu'à présent.

ATTENDUS out = 1 dans ce cas et que vous obtenez out = 0. Script de test arrête à ce stade en raison de l' échec.

Maintenant , il pourrait y avoir deux raisons de ce qui suit:
1) vous ne se charge pas correcte Mux.hdlet parce que si vous avez calculé que Or(c1,c2)vous obtenez 1 ce qui est correct. Si vous avez placé la Andporte à la place de Orce qui expliquerait l' échec
2) votre mise en œuvre Or.hdlest incorrect.Mux utilise votre version de Orporte si un tel fichier est présent dans le même répertoire.

Donc , d' abord vérifier votre code dans Simulator Matériel, puis vérifier l' implémentation de Or.hdl. Ce dernier vous pourriez faire en retirant temporairement Or.hdldu répertoire du projet. Simulateur de matériel chargerait version intégrée de la Orporte.

Créé 14/01/2020 à 01:56
source utilisateur

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