Итак, по моему собственному исследованию я понимаю, что если мы назначим сигнал внутри процесса, он будет обновляться после процесса. Теперь, если мы напрямую назначим выход, значение будет также обновляться после процесса или нет? Я прилагаю две версии, как простой пример, чтобы продемонстрировать, что я имею в виду.Разница между назначением сигнала внутри процесса и назначением фактического вывода
Версия 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 идти быстрее во второй версии, чем по сравнению с первой версией?