avc
Newbie level 1

while designing a floating point comparator i get one errror like dis.
ERROR:HDLParsers:164 - "D:/comp/comp.vhd" Line 77. parse error, unexpected PROCESS, expecting IF
can any one tell how to solve dis error.????
the code is as below:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity compare is
port( opcode: in std_logic_vector (8 downto 0);
destaddress:in std_logic_vector (4 downto 0);
clk: in std_logic;
fa_sign : in std_logic;
fb_sign: in std_logic;
fa_mantissa: in std_logic_vector (7 downto 0);
fb_mantissa: in std_logic_vector (7 downto 0);
fa_exp:in std_logic_vector (22 downto 0);
fb_exp:in std_logic_vector (22 downto 0);
alessb : out std_logic;
aequalb : out std_logic;
agreaterb : out std_logic;
unordered : out std_logic);
end compare;
architecture rtl of compare is
begin
process(clk,fa_sign,fb_sign,fa_exp,fb_exp,fa_mantissa,fb_mantissa)
begin
if clk'event and clk='1' then
if opcode = "000000000" then
if (fa_sign > fb_sign) then
alessb<= '1';
aequalb <= '0';
agreaterb <= '0';
unordered<= '0';
elsif (fa_sign < fb_sign) then
alessb<= '0';
aequalb <= '0';
agreaterb <= '1';
unordered<= '0';
if (fa_sign = fb_sign) then
if (fa_exp> fb_exp) then
alessb<= '0';
aequalb <= '0';
agreaterb <= '1';
unordered<= '0';
elsif (fa_exp< fb_exp) then
alessb<= '1';
aequalb <= '0';
agreaterb <= '0';
unordered<= '0';
if (fa_exp= fb_exp) then
if (fa_mantissa > fb_mantissa) then
alessb<= '0';
aequalb <= '0';
agreaterb <= '1';
unordered<= '0';
elsif (fa_mantissa < fb_mantissa) then
alessb<= '1';
aequalb <= '0';
agreaterb <= '0';
unordered<= '0';
end if;
end process;
end rtl;
ERROR:HDLParsers:164 - "D:/comp/comp.vhd" Line 77. parse error, unexpected PROCESS, expecting IF
can any one tell how to solve dis error.????
the code is as below:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity compare is
port( opcode: in std_logic_vector (8 downto 0);
destaddress:in std_logic_vector (4 downto 0);
clk: in std_logic;
fa_sign : in std_logic;
fb_sign: in std_logic;
fa_mantissa: in std_logic_vector (7 downto 0);
fb_mantissa: in std_logic_vector (7 downto 0);
fa_exp:in std_logic_vector (22 downto 0);
fb_exp:in std_logic_vector (22 downto 0);
alessb : out std_logic;
aequalb : out std_logic;
agreaterb : out std_logic;
unordered : out std_logic);
end compare;
architecture rtl of compare is
begin
process(clk,fa_sign,fb_sign,fa_exp,fb_exp,fa_mantissa,fb_mantissa)
begin
if clk'event and clk='1' then
if opcode = "000000000" then
if (fa_sign > fb_sign) then
alessb<= '1';
aequalb <= '0';
agreaterb <= '0';
unordered<= '0';
elsif (fa_sign < fb_sign) then
alessb<= '0';
aequalb <= '0';
agreaterb <= '1';
unordered<= '0';
if (fa_sign = fb_sign) then
if (fa_exp> fb_exp) then
alessb<= '0';
aequalb <= '0';
agreaterb <= '1';
unordered<= '0';
elsif (fa_exp< fb_exp) then
alessb<= '1';
aequalb <= '0';
agreaterb <= '0';
unordered<= '0';
if (fa_exp= fb_exp) then
if (fa_mantissa > fb_mantissa) then
alessb<= '0';
aequalb <= '0';
agreaterb <= '1';
unordered<= '0';
elsif (fa_mantissa < fb_mantissa) then
alessb<= '1';
aequalb <= '0';
agreaterb <= '0';
unordered<= '0';
end if;
end process;
end rtl;