Ворота NAND не работают должным образом в этом HDL?

Всякий раз, когда я ввожу a = 1 и b = 1, я все равно получаю 0, а мой внутренний вывод aAndNotb показывает 1, однако, если я удалю вентиль Not, я получу нормально функционирующий вентиль Nand, в чем дело?

/**
 * And gate: 
 * out = 1 if (a == 1 and b == 1)
 *       0 otherwise
 */

CHIP And {
    IN a, b;
    OUT out;

    PARTS:
    // Put your code here: 
    Nand(a=a, b=b, out=aAndNotb);   
    Not(in=aAndNotb, out=out);
}

person zxzx28    schedule 23.10.2020    source источник


Ответы (1)


Судя по описанным вами симптомам, проблема, похоже, в ваших воротах «Нет». Возможно, этот компонент не реализован правильно?

Вы можете проверить это, реализуя вентиль Not напрямую, используя вентиль Nand, который, если вы реализовали вентиль Not, вы уже знаете, как это сделать.

Если это работает, то проблема заключается в реализации Not gate. Если это не так, то проблема в проводке ворот по какой-то причине (но они выглядят нормально для меня).

person MadOverlord    schedule 23.10.2020