Bi-Directional Bus inside Spartan 3

Joined
Nov 20, 2006
Messages
3
Reaction score
0
Hi everyone,

I am trying to implement a bi-directional data bus inside a Spartan 3 Device using IOBUF.


The code below is a simplified version of what I want to do. This code gives me the same error as my original code which is:
ERROR:Xst:528 - Multi-source in Unit <main> on signal <_n0033>
Sources are:
Output port IOBUF:IO of instance <IOBUF_inst21>
Output port IOBUF:IO of instance <IOBUF_inst31>[/I]

I know that this is because of the IO ports of IOBUF in buf_loop2 and buf_loop3 that are trying to drive the internal bus simultaneously.

-- Code Start ----------------------------------------------------
T <= '0';
T_inv <= not T;

buf_loop1: for i in 0 to 7 generate
begin

IOBUF_inst1 : IOBUF
generic map (
DRIVE => 12,
IOSTANDARD => "DEFAULT",
SLEW => "SLOW")

port map (
O => A(i), -- Buffer output
IO => DIn(i), -- Buffer inout port (connect directly to top-level port)
I => B(i), -- Buffer input
T => T_inv
);
end generate buf_loop1;


buf_loop2: for i in 0 to 7 generate
begin

IOBUF_inst2 : IOBUF
generic map (
DRIVE => 12,
IOSTANDARD => "DEFAULT",
SLEW => "SLOW")

port map (
O => B(i), -- Buffer output
IO => Int(i), -- Buffer inout port (connect directly to top-level port)
I => A(i), -- Buffer input
T => T -- 3-state enable input
);
end generate buf_loop2;


buf_loop3: for i in 0 to 7 generate
begin

IOBUF_inst3 : IOBUF
generic map (
DRIVE => 12,
IOSTANDARD => "DEFAULT",
SLEW => "SLOW")

port map (
O => C(i), -- Buffer output
IO => Int(i), -- Buffer inout port (connect directly to top-level port)
I => D(i), -- Buffer input
T => T_inv -- 3-state enable input
);
end generate buf_loop3;

buf_loop4: for i in 0 to 7 generate
begin

IOBUF_inst4 : IOBUF
generic map (
DRIVE => 12,
IOSTANDARD => "DEFAULT",
SLEW => "SLOW")

port map (
O => D(i), -- Buffer output
IO => Dout(i), -- Buffer inout port (connect directly to top-level port)
I => C(i), -- Buffer input
T => T
);
end generate buf_loop4;

-- Code End ----------------------------------------------------

How do I solve this problem. Maybe resolved types?..

Thanks

Ben
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top