R
rybol
Hi,
I am using Spartan-3 XC3S200 and trying to build a bidirectional bus
('port_1'). Through this bus I put some data (data_ram_out) from internal
BRAM to the output of the chip (generator mode) in one situation (signal
'generator' =1) and sample data from input to BRAM (analyzer mode) in the
second situation (generator = 0). To make this possible, I used the template
from ISE Webpack:
buf_loop: for i in 0 to 7 generate
begin
IOBUF_inst : IOBUF
generic map (
DRIVE => 12,
IOSTANDARD => "DEFAULT",
SLEW => "SLOW")
port map (
O => data_0_7(i), -- Buffer output
IO => port_1(i), -- Buffer inout port (connect directly to
top-level port)
I => data_ram_out(i), -- Buffer input
T => not generator -- 3-state enable input
);
end generate buf_loop;
(My port and signals:
port_1 : inout std_logic_vector(7 downto 0);
signal data_0_7 : std_logic_vector(7 donwto 0);
signal data_ram_out : std_logic_vector(7 downto 0);
signal generator : std_logic;
)
But it seems like only analyzer mode is working ok. (when I make a little
change: ' T => generator' , only the generator mode works).
What could I do wrong? Did you ever use the IOBUF with success? Or tried any
other way of creating a bidirectional bus?
Regards,
Tomek
I am using Spartan-3 XC3S200 and trying to build a bidirectional bus
('port_1'). Through this bus I put some data (data_ram_out) from internal
BRAM to the output of the chip (generator mode) in one situation (signal
'generator' =1) and sample data from input to BRAM (analyzer mode) in the
second situation (generator = 0). To make this possible, I used the template
from ISE Webpack:
buf_loop: for i in 0 to 7 generate
begin
IOBUF_inst : IOBUF
generic map (
DRIVE => 12,
IOSTANDARD => "DEFAULT",
SLEW => "SLOW")
port map (
O => data_0_7(i), -- Buffer output
IO => port_1(i), -- Buffer inout port (connect directly to
top-level port)
I => data_ram_out(i), -- Buffer input
T => not generator -- 3-state enable input
);
end generate buf_loop;
(My port and signals:
port_1 : inout std_logic_vector(7 downto 0);
signal data_0_7 : std_logic_vector(7 donwto 0);
signal data_ram_out : std_logic_vector(7 downto 0);
signal generator : std_logic;
)
But it seems like only analyzer mode is working ok. (when I make a little
change: ' T => generator' , only the generator mode works).
What could I do wrong? Did you ever use the IOBUF with success? Or tried any
other way of creating a bidirectional bus?
Regards,
Tomek