Altera_Forum
Honored Contributor
7 years agoCan I safely ignore warning that output pin cannot be tristated?
Dear all,
I have the following code for driving the output and input of my design:
Fout_DATA <= DATA;
Fout_BE <= BE;
Fout_RXF <= RXF;
Fout_TXE <= TXE;
WR <= Fin_WR;
DATA(31 downto 16) <= int_DATA(31 downto 16) when (BE_out_en = '0') else
"ZZZZZZZZZZZZZZZZ" when (BE_out_en = '1') else
(others => '0');
DATA(15 downto 8) <= int_DATA(15 downto 8) when (DATA_out_en = '0') else
"ZZZZZZZZ" when (DATA_out_en = '1') else
(others => '0');
DATA(7 downto 0) <= int_DATA(7 downto 0) when (BE_out_en = '0') else
"ZZZZZZZZ" when (BE_out_en = '1') else
(others => '0');
DATA is INOUT with STD_LOGIC_VECTOR(31 downto 0) going to an external 32 bit interface. Fout_DATA collects what is on the DATA bus from the outside and puts it to FPGA internal digital design. However I seem to get the following warnings for all DATA [*]:
Warning (14632): Output pin "pre_syn.bp.io_control_inst1_Fout_DATA_0_" driven by bidirectional pin "DATA" cannot be tri-stated
Warning (14632): Output pin "pre_syn.bp.io_control_inst1_Fout_DATA_1_" driven by bidirectional pin "DATA" cannot be tri-stated
Warning (14632): Output pin "pre_syn.bp.io_control_inst1_Fout_DATA_2_" driven by bidirectional pin "DATA" cannot be tri-stated
Warning (14632): Output pin "pre_syn.bp.io_control_inst1_Fout_DATA_3_" driven by bidirectional pin "DATA" cannot be tri-stated
and so on...
And in my desing when there is an idle time on the bus the external chip should drive the DATA[31:16] and DATA[7:0] to zero, but Signal Tap says that DATA[31:16] and DATA[7:0] are FFFFFF... Can you give me a hint what is the problem in the design? FPGA is Cyclone V using Terasic Cyclone V GX starter board. Thank you.