ID:14812 Converted the fanout from the always-enabled tri-state buffer "<name>" to the node "<name>" into a wire
CAUSE: The specified always-enabled tri-state buffer feeds a non-tri-state logic, an open-drain buffer, or an output pin. The Quartus Prime software converted the fanout from this tri-state buffer to the specified node into a wire. For example, consider the following design that gives the above warning:
module test1 (input data1, output out);
wire tribuf, vcc;
assign vcc = 1'b1;
assign tribuf = vcc ? data1 : 1'bz;
assign out = tribuf;
endmodule
Here, the always-enabled tri-state buffer tribuf
feeds an output pin, and therefore is converted to a wire. Now consider the following design:
module test2 (input data1, data2, output out1, inout bidir);
wire tribuf, vcc;
assign vcc = 1'b1;
assign tribuf = vcc ? data1 : 1'bz;
and (tmp, data2, tribuf);
assign out1 = tmp;
assign bidir = tribuf;
endmodule
Here, the always-enabled tri-state buffer tribuf
feeds an AND
gate in addition to feeding a bidirectional pin, so its fanout to the AND
gate is converted into a wire. Finally, consider the following design:
module test3 (input data1, output out);
wire tribuf, opndrn, vcc;
assign vcc = 1'b1;
assign tribuf = vcc ? data1 : 1'bz;
assign opndrn = !tribuf ? !vcc : 1'bz;
assign out = opndrn;
endmodule
Here, the always-enabled tri-state buffer tribuf
feeds an open-drain buffer, and hence is converted into a wire. ACTION: Avoid this warning message by removing the fanout of the always-enabled tri-state buffer to the specified node. Otherwise, no action is required.