Vergelijkingsfout bij de uitvoering van een MUX poort in nand2tetris

stemmen
0

Ik ben op zoek naar een MUX (Multiplexor) poort in de nand2tetris cursus te implementeren. Eerst probeerde ik mezelf, en ik kreeg een fout. Maar het maakt niet uit wat ik veranderde ik kreeg altijd de fout. Dus probeerde ik het controleren van wat code online, en dit is wat de meeste mensen gebruiken:

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

Maar zelfs als ik probeer deze code krijg ik steeds de volgende foutmelding: error

Wat krijg ik als een waarheid tabel:

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

Wat ik zou moeten krijgen:

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

Ik heb de nieuwste software suite per 2020/01/13

De vraag is gesteld op 13/01/2020 om 23:48
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Van wat kan worden gezien uw input pinnen zijn:

a = 0  
b = 1  
sel = 1

Uw interne pinnen zijn:

nsel = 1 
c1   = 1 
c2   = 0

Alle tot dusver verwacht.

Verwacht out = 1 in deze zaak en je krijgt out = 0. Test script stopt op dit punt, omdat van mislukking.

Nu kunnen er twee redenen van die:
1) je niet correct geladen Mux.hdlen, want als je berekend Or(c1,c2)je zou krijgen 1 , die juist is. Als u geplaatst Andpoort in plaats van Ordat het zou falen verklaren
2) de implementatie van Or.hdlis incorrect.Mux gebruikt uw versie van Orde poort, indien deze bestand aanwezig in dezelfde map is.

Dus eerst de code in Hardware Simulator controleren, dan controleren of uw implementatie van Or.hdl. Dat laatste kun je doen door het tijdelijk verwijderen Or.hdlvan het project directory. Hardware Simulator zou laden is ingebouwde versie van Orde poort.

antwoordde op 14/01/2020 om 01:56
bron van user

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