Forum Discussion

Jack_Lin's avatar
Jack_Lin
Icon for New Contributor rankNew Contributor
1 hour ago

Bidirectional pin USB_RX with a pseudo-differential I/O standard must use the OEIN port of the node

I am trying to make a bidirectional differential line using Cyclone V.

In VHDL, I set USB_RX, USB_RXn as INOUT on the top level (they are assigned to a Differential SSTL-II 2.5 pair).  I used the ALTIOBUF in differential mode and crated this block:

COMPONENT DIFF_IO_BUF PORT
(
    DATAIN : IN STD_LOGIC;
    OE : IN STD_LOGIC;
    OE_B : IN STD_LOGIC;

    DATAIO : INOUT STD_LOGIC;
    DATAIO_B : INOUT STD_LOGIC;
    DATAOUT : OUT STD_LOGIC
);
END COMPONENT;

It's connected as following:

DIFF_RX : DIFF_IO_BUF
PORT MAP
(
    DATAIN => 'Z',
    OE => '0',
    OE_B => '1',

    DATAIO => USB_RX,
    DATAIO_B => USB_RXn,
    DATAOUT => iUSB_RX_I
);

iUSB_RX_I goes to internal logic.

Why am I getting this error?  I don't see any OEIN port.  I assume it means the OE and OE_B ports, but they are already connected.  How can I fix this error?

The whole error msg:
Error (21168): Bidirectional pin USB_RX with a pseudo-differential I/O standard must use the OEIN port of the node DIFF_IO_BUF:DIFF_RX|DIFF_IO_BUF_iobuf_bidir_iup:DIFF_IO_BUF_iobuf_bidir_iup_component|wire_pseudo_diffa_o

Thank you!