![]() |
|
|
|||||||
![]() |
VHDL - Bi-Directional Bus inside Spartan 3 |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
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 |
|
|
|
|