Два очень разных смысла «отключить»
«Отключить» сигнал звучит как одна идея, но в Boolflow для этого есть два по-настоящему разных элемента. GATE — это разрешение на основе AND: при EN=0 его выход принудительно становится чистым 0, таким же логическим значением, как и любое другое. TRIBUF — это буфер с тремя состояниями: при EN=0 его выход полностью отключается — высокий импеданс, не задающий ни 0, ни 1.
Когда правильный ответ — 0
Если сигнал идёт в обычную комбинационную логику — скажем, один операнд АЛУ, который при отключении не должен ничего вносить, — GATE подходит идеально: принудительный 0 является полностью корректным логическим значением, которое последующие вентили AND/OR обрабатывают как обычно.
Когда правильный ответ — отключение
Если несколько источников должны разделять один и тот же провод и говорить может только один за раз, GATE с этой задачей не справится — задать на общем проводе обычный 0 это такое же активное утверждение, как и задать 1, и два несогласных GATE всё равно будут конфликтовать. Только настоящее состояние высокого импеданса у TRIBUF позволяет проводу по-настоящему никому не принадлежать, пока не разрешён ровно один источник.
Попробуйте сами
Соберите одну и ту же схему с общим проводом и двумя источниками дважды в редакторе схем — один раз на элементах GATE, другой раз на TRIBUF — и в каждой версии разрешите оба источника одновременно. Точные таблицы истинности GATE и TRIBUF смотрите в справке, и сравните сами результаты: версия с GATE молча объединяет два активных источника в определённое, но неверное значение, а для двух разрешённых TRIBUF у симулятора Boolflow тоже нет специальной проверки — в обоих случаях избегать конфликта должен разработчик, а не инструмент.