А сейчас стало модно вот так вот список чувствительнсти (не)писать?
Зачем вы так делаете? Что может быть проще, чем
if unsigned (reg_cnt_data) = num_row_file then
Шестая серия -- это однозначно ISE-14.7.
Что такое VM_0213_1, понятия не имею. А нормального дистрибутива там нет, что ли?
Хотя для Win10 могут понадобиться пляски. Ха, пользователи Некрософта должны страдать, карма у них такая.
Занудства ради.
Вы рассчитываете на то, что в вашу функцию будут передавться только вектора с индексацией (N downto 0). А вдруг ей передадут вектор (N downto M)? Или тем паче (M to N)?
Почему не
minus_data := std_logic_vector(-signed(data));
?
По-хорошему, надо начинать с тестбенча.
Сначала вы "рисуете" входные воздействия для вашего модуля, а потом у же пишете сам модуль, который их обрабатывает.
Слушайте, вы задаёте миллион элементарных вопросов по языку. Чуть ли не каждый в отдельной теме. Неужели так сложно освоить простой в общем-то синтаксис?
Отурывайте стандарт, смотрите, как пишется декларация компонента.
Лучше. Только код лучше вставлять не как простой текст, а как код. В панели инструментов для этого есть кнопка "<>".
Осталось сделать последний шаг:
Так и пишете: если в старшем разряде ноль, делаем сдвиг.
Сейчас у вас сдвиг происходит всегда. Нужно его ограничить этим условием.