if falling_edge(sys_clk25M) then if sys_en = '0' then ... STATE <= CNT_STATE; elsif sys_en = '1' then case STATE is when CNT_STATE => if ... STATE <= SMPL_STATE; elsif ... STATE <= CNT_STATE; end if; when SMPL_STATE => if ... STATE <= NEG_STATE; elsif ... STATE <= CNT_STATE; end if; when NEG_STATE => if ... STATE <= RESET_STATE; elsif ... STATE <= CNT_STATE; end if; when RESET_STATE => ... STATE <= CNT_STATE; end case; end if; end if;