Сравнение ошибок при реализации ворота MUX в nand2tetris

голоса
0

Я пытаюсь реализовать MUX (Мультиплексор) ворота в nand2tetris конечно. Я впервые попробовал себя, и я получил сообщение об ошибке. Но независимо от того, что я изменился, я всегда получил ошибку. Так что я попытался проверить код в Интернете, и это то, что большинство людей используют:

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

Но даже когда я пытаюсь этот код, который я до сих пор получаю следующее сообщение об ошибке: сообщ

Что я получаю в виде таблицы истинности:

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

То, что я должен получить:

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

У меня есть новейший набор программного обеспечения за 2020-01-13

Задан 13/01/2020 в 21:48
источник пользователем
На других языках...                            


1 ответов

голоса
1

Из того, что можно видеть ваши входные контакты являются:

a = 0  
b = 1  
sel = 1

Ваши внутренние штыри:

nsel = 1 
c1   = 1 
c2   = 0

Все, как и ожидалось до сих пор.

Ожидаемое out = 1 в этом случае , и вы получите out = 0. Тестовый скрипт останавливается на данный момент из - за отказа.

Теперь может быть две причины , что:
1) вы не сработал правильно , Mux.hdlи потому , что если вы рассчитывали , Or(c1,c2)вы получите 1 , который является правильным. Если вы разместили Andворота вместо Orнего может объяснить неудачу
2) свою реализацию в Or.hdlэто incorrect.Mux использует вашу версию Orворот , если такой файл присутствует в том же каталоге.

Таким образом , первый проверить свой код в Hardware Simulator, а затем проверить вашу реализацию Or.hdl. Последнее можно сделать путем удаления временно Or.hdlиз каталога проекта. Оборудование Тренажер загрузит встроенную версию Orворот.

Ответил 13/01/2020 в 23:56
источник пользователем

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