From: Hunter on
Hi All,

I got this newbie Q I hope to get answer for.

I'm looking at some example code sent to me by outside contractor, the
code makes use of inout ports of the FPGA:

-- begin quote
IOBUF1 : IOBUF16
port map(DIN => PCI_data(31 downto 16) , DIO => SABD(15 downto 0),
DOUT=> SABD_i(15 downto 0), T => PCI_en);
-- end quote

this iobuf16 is actually an array of 16 IOBUF units, each responsible
for an appropriate bit.
for example:
-- begin quote
OBUFT0: IOBUF port map (O => DOUT(0), IO => DIO(0), I => DIN(0), T =>
T);
-- end quote

Now, I'm not clear on the operation of this IOBUF
1. The users manual for IOBUF says when T = "1" the IO is in HighZ
state, but what happens to O port? is the signal on I port propagated
to O?
2. Also, the user's manual does not specify what happens when T = "0"
i.e. is the IO propagated to O port? Is the I port propagated to IO?
or maybe the I and IO ports compete for "who's driving the O port
stronger"?

Again, sorry for the newbie Q, but the user's manual isn't too clear
on this
From: maxascent on
The IO port goes out of the FPGA. The I port is an input port so it just
has whatever value is on the IO port irrespective of signal T. The O port
is what you drive to send data out of the FPGA on the IO port. The T signal
needs to be low for your data to propagate out.

Jon



---------------------------------------
Posted through http://www.FPGARelated.com
From: Ed McGettigan on
On Mar 3, 8:36 am, Hunter <igal.hun...(a)gmail.com> wrote:
> Hi All,
>
> I got this newbie Q I hope to get answer for.
>
> I'm looking at some example code sent to me by outside contractor, the
> code makes use of inout ports of the FPGA:
>
> -- begin quote
> IOBUF1 : IOBUF16
>         port map(DIN => PCI_data(31 downto 16) , DIO => SABD(15 downto 0),
> DOUT=> SABD_i(15 downto 0), T => PCI_en);
> -- end quote
>
> this iobuf16 is actually an array of 16 IOBUF units, each responsible
> for an appropriate bit.
> for example:
> -- begin quote
> OBUFT0: IOBUF   port map (O => DOUT(0),  IO => DIO(0), I => DIN(0), T =>
> T);
> -- end quote
>
> Now, I'm not clear on the operation of this IOBUF
> 1. The users manual for IOBUF says when T = "1" the IO is in HighZ
> state, but what happens to O port? is the signal on I port propagated
> to O?
> 2. Also, the user's manual does not specify what happens when T = "0"
> i.e. is the IO propagated to O port? Is the I port propagated to IO?
> or maybe the I and IO ports compete for "who's driving the O port
> stronger"?
>
> Again, sorry for the newbie Q, but the user's manual isn't too clear
> on this

This is pretty basic information so I'm a bit surprised that the
information isn't clear in the documentation. Which "user's manual"
were you reading?

Ed McGettigan
--
Xilinx Inc.