wrote:
> Hello folks,
>
> I would like to assign a bit in std_logic_vector array to a std_logic
> value, is it permissible? i assume that std_logic_vector IS ARRAY OF
> std_logic type !
Yes, you can.
> I have mentioned below few piece of my code for illustration:
> (its a part of my testbench)
>
> I need to sent each bit of the std_logic_vector array at every clock
> cycle.
>
> --Declarations
>
> D : std_logic;
> data_in : std_logic_vector(31 downto
> 0):="01010000000000000000001100000000"
>
> Data_inp: process(clk)
> begin
> if (clk'event and clk = '1') then
> for i in 0 to data_in'length loop
> D <= data_in(i);
> end loop;
> end if;
> end process Data_inp;
>
> ERROR: FATAL ERROR : Index 32 out of range(31 downto 0).
> (I assume it says that we can assign 32 bits to a one bit std_logic)
I'm not going to give you the answer straight up. You'll have to work
out the details for yourself. Given:
signal data_in : std_logic_vector(31 downto 0);
What is the value of:
data_in'length
?
Once you answer that, the cause of the fatal error should be obvious.
Having said that, your loop still won't do what you want. (Homework:
Why not?)
Perhaps a simpler way of doing what you want would be:
DriveBit : process is
begin
for i in data_in'range loop
D <= data_in(i);
wait until rising_edge(clk);
end loop;
end process DriveBit;
-a
--a