Two very different meanings of 'disabled'
'Disabling' a signal sounds like one idea, but Boolflow ships two genuinely different elements for it. GATE is an AND-based enable: when EN=0, its output is forced to a clean 0, same as any other logic value. TRIBUF is a tri-state buffer: when EN=0, its output disconnects entirely — high impedance, driving neither 0 nor 1.
When 0 is the right answer
If a signal feeds into ordinary combinational logic — say, one operand of an ALU that should contribute nothing when disabled — GATE is exactly right: a forced 0 is a perfectly valid logic value that the downstream AND/OR gates handle normally.
When disconnecting is the right answer
If several drivers need to share the exact same wire and only one may speak at a time, a GATE cannot do that job — driving a plain 0 onto a shared wire is just as much an active assertion as driving a 1, and two GATEs disagreeing would still fight each other. Only TRIBUF's genuine high-impedance state lets the wire truly belong to nobody until exactly one driver is enabled.
Try it yourself
Build the same two-source shared-wire circuit twice in the circuit editor — once with GATE elements, once with TRIBUF elements — and enable both sources at once in each version. See the Help reference for GATE and TRIBUF's exact truth tables, and compare the two outcomes directly: the GATE version silently combines two active drivers into a defined-but-wrong value, while Boolflow's simulator has no special check for two enabled TRIBUFs either — in both cases, avoiding the conflict is on the designer, not the tool.