Well i have process a in my main component and process b in my other sub component(inmplemented in the main one). both process a and b have only the clock in their sensitivity list: process a control eneable signal called ready which if 1 process b can work , 0 process b will do nothing. Problem is in process a , when process a changes value of enable signal to 0 , it has to take to the next clock cycle to change so process b ends up and run an extra clock cycle.
a:process(clk)
begin
if(rising_edge(clk)) then
if(output/=old_output) then
enable<='0';
end if;
end if;
end process;
b:process(clk)
begin
if(rising_edge(clk)) then
if(enable='1') then
--do anything
end if;
end if;
end process;