Critical Race Example
Unfortunately this state assignment suffers from a critical race condition. This can be demonstrated via a VHDL simulation, with the next state equations given arbitrary delays.
use ieee.std_logic_1164.all;
port (i, enable : in std_logic;
architecture race_example1 of EIQ is
signal y1, y0 : std_logic;
y1 <= (y1 and enable) or (i and enable and (not y0)) after 3 ns;
y0 <= i or (y1 and enable) after 2 ns;