我编写了这段代码来理解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;
这是我的结果: enter image description here
当我处理i1时所以g在第一个周期应为1,所以r应为0但i2为1后r为1
答案 0 :(得分:0)
您在第二个过程中使用g
,但它不在过程敏感度列表中。
process(i2,g)
begin
if i2 = '1' and g = '0' then
...