내 자신의 연구를 통해 프로세스 내에서 신호를 할당하면 프로세스 후에 신호가 업데이트된다는 것을 이해합니다. 이제 우리가 출력에 값을 직접 할당하면 프로세스 후에 업데이트 될 것인가? 나는 두 가지 버전을 간단한 예로서 첨부하여 의미를 설명합니다.프로세스 내부의 신호 할당과 실제 출력을 할당하는 것의 차이점
버전 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가 더 빨리 나타 납니까?