Why does my bidirectional pin drive out '1' instead of 'Z' when the data port is connected to a constant zero in my design? - Why does my bidirectional pin drive out '1' instead of 'Z' when the data port is connected to a constant zero in my design? Description Due to a problem in the Quartus® II software versions 14.1 and earlier you may see functional problems if you connect the data port of a bidirectional pin to a constant zero in your design as the OE and IN ports for the bidirectional buffer may be switched. Resolution Use the "keep" attribute to preserve the constant wire as shown in the code below: For VHDL: signal const_zero_sig : std_logic; attribute keep: boolean; attribute keep of const_zero_sig: signal is true; begin const_zero_sig <= \'0\'; TRI_PIN <= const_zero_sig when ENABLE=\'1\' else \'Z\'; For Verilog: wire const_zero_sig /* synthesis keep */; assign const_zero_sig = 1\'b0; assign TRI_PIN = enable? const_zero_sig : 1\'bz; This problem is scheduled to be resolved in a future release of the Quartus II software. Related Articles Warning (12620): Input port OE of I/O output buffer is not connected, but the atom is driving a bi-direct Custom Fields values: ['novalue'] Troubleshooting novalue False ['novalue'] ['novalue'] novalue novalue ['Programmable Logic Devices'] ['novalue'] ['novalue'] ['novalue'] - 2021-08-25

external_document