Ругается точно на эту строчку. Если этот маленький блок if закоментить то компиляция проходит без ошибок.
if (pack_in(7) = х"FF") then
arp_flag <= '1';
end if;
Ошибку выдает - near text ""; exprcting ")" or ","
библиотеки
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.all;
Может быть запись сравнения с ячейкой как-то криво записана. Может вбще нельзя с ячейкой сравнивать, а надо перписать значение в отдельную переменную? И сравнивать с переменной.
Добавлено after 1 hour 33 minutes 3 seconds:Вообщем действуя методом тыка

объявил x"FF" как переменную и сравнивал уже с ней
if (pack_in(7) = arp_ff) then
так проходит, что странно. По идее компилятор не должен видеть разницы в этих записях, однако видит