Раньше все мои программы не затрагивали типы float, real, universal_real, и сейчас я не понимаю, как писать код.
Камень преткновения заключен в следующей строчке:
a_res_zero <= conv_integer(sum_a_zero)/256;
a_res_zero - сигнал (вещественное число), далее, я хотела отделить верхние разряды от нижних и присвоить их двум числам типа std_logic_vector, которые были бы выходами тестбенча. Но как это сделать?
На этапе, когда я ещё не задумывалась о том, что результат вещественный, vivado выдавал мне, что текущий тип integer, а ожидаемый тип universal_real. Ищу какую-то информацию об этом типе не один день - тщетно.
Также пробовала задавать тип Real - всё равно хочет universal_real
Сейчас вижу два решения проблемы и прошу вашей помощи или каких-то советов: 1) Найти какую-то инфу про этот неведомый тип. 2) Найти хорошее описание подходящей мне библиотеки для float или real, чтобы понимать, как пользоваться той или иной функцией.
А ещё, я вычитала, что вещественные типы не пригодны для синтеза. Что же делать, если в конечном варианте, я должна буду прошить прогу в кристалл?