Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - Bi-Directional Bus inside Spartan 3

 
Thread Tools Search this Thread
Old 11-20-2006, 03:34 PM   #1
Default Bi-Directional Bus inside Spartan 3


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


benfow
benfow is offline   Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump