Can someone please help me. I cant seem to figure out what is causing this error: Error (10500): VHDL syntax error at mult_control_ex.vhd(58) near text "END"; expecting "begin", or a declaration statement
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity mult_control is port(
clk, reset_a, start : in std_logic;
count : in unsigned (1 DOWNTO 0);
input_sel, shift_sel : out unsigned(1 DOWNTO 0);
state_out : out unsigned(2 DOWNTO 0);
done, clk_ena, sclr_n : out std_logic
);
end mult_control;
-architecture logic of mult_control is
type state_type is (idle, lsb, mid, msb, calc_done, err);
signal current_state: state_type;
signal next_state: state_type;
begin
process (clk, reset_a) begin
if reset_a = '1'; then
current_state <= idle;
else rising_edge(clk) then
current_state <= next_state;
end if;
end process;
process (current_state, start, count) begin
case current_state is
when idle =>
if start = '1' then
next_state <= lsb;
else
next_state <= idle;
end if;
when lsb =>
if start = '0' then
if (count = "00") then
next_state <= mid;
else
next_state <= err;
end if;
when mid =>
if start = '0' then
if (count = "01") then
next_state <= mid;
elsif start = '0' then
if (count = "10") then
next_state <= msb;
else
next_state <= err;
end if;
when msb =>
if start = '0' then
if (count = "11") then
next_state <= calc_done;
else
next_state <= err;
end if;
when calc_done =>
if start = '0' then
next_state <= idle;
else
next_state <= err;
end if;
when err =>
if start = '0' then
next_state <= err;
else
next_state <= lsb;
end if;
end case;
end process;