私自身の研究を通して、シグナルをプロセス内に割り当てると、プロセスの後でシグナルが更新されることを理解しています。さて、出力を直接割り当てると、処理後に更新されますか? 単純な例として2つのバージョンを添付して、私の意図を実証します。プロセス内部のシグナルの割り当てと実際の出力の割り当ての違い
バージョン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は、最初のバージョンと比較して2番目のバージョンですぐに高くなりますか?