Проблема с CLK в реализации счетчика в VHDL - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь реализовать счетчик, который выдает в качестве выходных значений от одного до шести, которые я хочу позже поставить на 7-сегментный дисплей на fpga.Проблема в том, что CLK, process не видит изменения значения CLK, и симуляция выдает в качестве выходных данных всегда набор значений "1001111".

library ieee;
use ieee.std_logic_1164.all;

entity projekt is
    generic ( half_period : time := 10ms);
    port(Q : out std_logic_vector(6 downto 0));
end projekt;

architecture a1 of projekt is
    signal CLK : std_logic := '0';
begin
    CLK <= not CLK after half_period;
    process(CLK)
        variable tmpQ : integer range 0 to 7 := 1;
    begin
        if ( CLK = '1' and CLK'event ) then
            tmpQ := tmpQ + 1;
            if tmpQ = 7 then
                tmpQ := 1;
            end if;
        end if;
        case tmpQ is
            when 1 => Q <= "1001111";
            when 2 => Q <= "0010010";
            when 3 => Q <= "0000110";
            when 4 => Q <= "1001100";
            when 5 => Q <= "0100100";
            when 6 => Q <= "0100000";
            when others => Q <= "1111111";
        end case;
    end process;
end a1;

Является ли CLK неизменным или программнымникогда не входит, если заявление?

...