Процесс не работает из-за симуляции - PullRequest
0 голосов
/ 09 июня 2018

Я написал этот код, чтобы понять процесс в vhdl, но странным образом я увидел симуляцию, которая не работает должным образом, мой код:

entity test is
    port(
        i1 : in std_logic;
        i2 : in std_logic;
        r : out std_logic
    );
end test;

architecture Behavioral of test is
signal g : std_logic;
begin
    process(i1)
        begin
        if i1 = '1' then 
            g <= '1';
        else 
            g <= '0';
        end if;
    end process;
    process(i2)
    begin
        if i2 = '1' and g = '0' then
            r <= '1';
        else
            r <= '0';
        end if;
    end process;

end Behavioral;

, и это мой результат: введите описание изображения здесь

когда я обрабатываю i1, поэтому g должно быть 1 в первом периоде, поэтому r должно быть 0, но r равно 1 после того, как i2 равно 1

1 Ответ

0 голосов
/ 09 июня 2018

Вы используете g во втором процессе, но его нет в списке чувствительности процесса.

process(i2,g)
begin
    if i2 = '1' and g = '0' then
...
...