因此,通过我自己的研究,我明白如果我们在过程中分配信号,它将在过程后更新。现在,如果我们直接分配一个输出值,那么在进程之后它也会被更新或者没有? 我附上两个版本作为一个简单的例子来说明我的意思。在过程中分配信号与分配实际输出之间的区别
版本1:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity testing is
port(
clk : in std_logic;
a : in std_logic;
b : in std_logic;
c : out std_logic
);
end testing;
architecture arch of testing is
signal temp: std_logic;
begin
process(clk)
begin
if(rising_edge(clk)) then
if(a = '1' and b = '1') then
temp <= '1'
end if;
end if;
end process;
c <= temp;
end arch;
现在另一个版本:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity testing is
port(
clk : in std_logic;
a : in std_logic;
b : in std_logic;
c : out std_logic
);
end testing;
architecture arch of Intermediate is
begin
process(clk)
begin
if(rising_edge(clk)) then
if(a = '1' and b = '1') then
C <= '1';
end if;
end if;
end process;
end arch;
是否有一个时间差在这里?在第二个版本中,C会比第一个版本高吗?