library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity main_top is Port ( res : in std_logic; clki : in std_logic; clko : out std_logic; di : in std_logic; do : out std_logic); end main_top; architecture Behavioral of main_top is type state_type is (idle, active, release); signal state, nextstate : state_type; signal clk : std_logic; shared variable test : std_logic; component BUFG port (I: in std_logic; O: out std_logic); end component; --**Insert the following after the 'begin' keyword** begin --U1: BUFG port map (I => clki, O => clk); clk <= clki; process (res, clk, di, state) begin if (res = '1') then clko <= '0'; else clko <= '1'; case state is when idle => if (di = '1') then nextstate <= active; else nextstate <= idle; end if; when active => if (di = '1') then nextstate <= active; else nextstate <= idle; end if; when release => nextstate <= idle; end case; end if; end process; process (res, clk, state) begin if (res = '1') then do <= '0'; else do <= '0'; case state is when active => do <= '1'; when others => end case; end if; end process; process (res, clk) begin if (res = '1') then state <= idle; elsif clk'event and clk = '1' then state <= nextstate; end if; end process; end Behavioral;