I am trying to check the condition of an output (which can be set later in the code) but it does not seem like you can do this.
How do you check the condition of an output signal within an if statement?
entity turbine_action is
Port ( freq550 : in STD_LOGIC;
freq650 : in STD_LOGIC;
freq850 : in STD_LOGIC;
freq950 : in STD_LOGIC;
user_ip : in STD_LOGIC;
mild : out STD_LOGIC;
aggressive : out STD_LOGIC;
brake : out STD_LOGIC;
alarm : out STD_LOGIC;
clock : in STD_LOGIC);
end turbine_action;
architecture Behavioral of turbine_action is
type state_type is (s0, s1, s2);
signal current_s, next_s : state_type;
begin
process (clock)
begin
if (rising_edge(clock)) then
current_s <= next_s; --change state according to next state logic
end if;
end process;
process (current_s, freq550, freq650, freq850, freq950, user_ip)
begin
case current_s is
when s0 =>
if (user_ip = '1') then
if (freq550 = '1') then
brake <= '1';
alarm <= '1';
-- ADD DELAY delay(1000);
end if;
if (freq650 = '1') then
if (mild = '1') then
aggressive <= '1';
end if;
end if;
end Behavioral;