problem with shift operation

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
I hav the follwoing simple code which does left shifting operation.

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity counter is
    port (
        q:  inout STD_LOGIC_VECTOR (3 downto 0);
        clock: in STD_LOGIC;
        reset: in STD_LOGIC;
        en: in STD_LOGIC
end counter;

architecture counter of counter is
signal count:std_logic_vector(3 downto 0):="0000";


        if reset='0' then
        elsif(clock='1') then
            if en='1' then

                    l1:    for i in 1 to 3 loop
                           end loop l1;

        end if;
            end if;
         q<=count; -- The q value is not getting updated with the count
        end process;

end counter;

The problem with this code is that the q(port) value is not getting
updated with count value,though count gets updated.I did single step
execution,i see the statement q<=count being executed.I used the tool
Active HDL 4.2.PLEASE HELP....

Re: problem with shift operation
Instead of declaring count as signal , you declare it as  variable and
check out. I think it should work. Normally the signal gets updated at
the end of the process. The use of variable is best suited for your

Site Timeline