Синтаксическая ошибка в программе на VHDL

Нужно написать программу на VHDL. Написал код по методичке из универа. Скомпилировал проект, но один из двух файлов не скомпилировался. Проект состоит из двух файлов: Mili_example.vhd и SyncroMealy.vhd. Вот коды файлов:

Mili_example.vhd

package pack is                                    -- декларация пакета
    type in_x is (x1, x2, x3, x4);             -- входной алфавит
    type out_y is (y1, y2, y3, y4, y5, y6);    -- выходной алфавит
end package pack;

package mealy_pack is
    type state_s is (s1, s2, s3, s4);          -- алфавит состояний 
end package mealy_pack;

SyncroMealy.vhd

libary IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
libary work;
use work.mealy_pack.all
use work.pack.all;

entity Mealy is
    port
    (
    x: in in_x     -- Вход автомата
    y: out out_y   -- Выход автомата
    clk: in bit    -- Сигнал синхронизации автомата
    set: in bit    -- Сигнал установки в начальное состояние
    );
end Mealy;

architecture ArchMealy of Mealy is  -- Описание архитектурного тела
signal s: state_s;                  -- Текущее состояние
signal NEXT_s: state_s;             -- Следующее состояние автомата
begin
    N_state: proccess(x, s)   -- Процесс формирования следующего состояния и выходного 
сигнала автомата
    begin
        case s is
    
        when s1=>
            if (x=x1) then NEXT_s<=s3; y<=y6;
            elseif(x=x2) then NEXT_s<=s2; y<=y1;
            end if;

        when s2=>
            if (x=x1 or x=x2) then NEXT_s<=s2; y<=y1;
            elseif(x=x3) then NEXT_s<=s4; y<=y1;
            elseif(x=x4) then NEXT_s<=s4; y<=y3;
            end if;

        when s3=>
            if (x=x1) then NEXT_s<=s1; y<=y2;
            elseif(x=x2) then NEXT_s<=s1; y<=y4;
            elseif(x=x3) then NEXT_s<=s2; y<=y1;
            else NEXT_s<=s4; y<=y5;
            end if;
    
        when s4=>
            if (x/=x3) then NEXT_s<=s3; y<=y6
            end if;
        end case;
   end proccess N_state;

   T_state: proccess (set, clk) -- Процесс формирует текущее состояние автомата

   begin
       if(set='1') then
           s<=s1;  -- установка в начальное состояние
       elseif (clk'event and clk='1') then
           s<=NEXT_s;  -- Переход в новое состояние по положительному фронту clk;
       end if;
   end proccess T_state;
end ArchMealy;  

Ошибка в файле SyncroMealy, текст ошибки: Error: C:/modeltech64_10.7/examples/SyncroMealy.vhd(1): near "libary" syntax error

Точку с запятой после libary я поставил. Где там может быть ошибка?


Ответы (0 шт):