ошибки компилятора при компиляции *.vhdl в библиотеку - Altera Quartus II

Я скачал пакет с плавающей запятой с сайта http://www.vhdl.org/fphdl/. и сделал следующее:

  1. Я включил файлы math_utility_pkg.vhd, fixed_pkg_c.vhd и float_pkg_c.vhd в свой проект.
  2. Я назначил их библиотеке (следуя инструкциям в разделе Компиляция *. vhdl в библиотеку с помощью Altera Quartus II)
  3. попытался скомпилировать их, сначала установив верхний объект моего проекта в качестве верхнего объекта, а второй раз установив float_pkg_c.vhd в качестве верхнего объекта

Я столкнулся с несколькими проблемами:

  1. Я не уверен, следует ли использовать имя библиотеки ieee_proposed или floatfixlib, так как первое предлагается в документации, а второе используется из файлов пакета.
  2. При компиляции я продолжаю получать ошибки из файлов пакета (например, «не удалось разработать вызов подпрограммы« остаток »» и тому подобное)
  3. Кажется, есть некоторый спор между фактами, что файл пакета имеет суффикс _c, но он должен быть включен без него (например, используйте FLOATFIXLIB.float_pkg.all;), хотя я не могу добраться до этой ошибки в данный момент.
  4. наконец, когда float_pkg_c.vhd установлен в качестве объекта верхнего уровня, компилятор выдает эту ошибку: «Объект проекта верхнего уровня «float_pkg_c» не определен»

Я продолжаю пробовать варианты вышеперечисленных попыток, но не получаю никакого прогресса.


person user3209815    schedule 27.03.2014    source источник


Ответы (2)


Вы можете повторно загрузить пакеты. Я не вижу math_utility_pkg и не вижу ссылки на библиотеку floatfixlib в пакетах. У вас должен быть очень старый релиз.

Я только что повторно скачал дистрибутив Altera. В нем я вижу пакеты, упомянутые в сообщении, которое вы перечислили: fixed_float_types_c.vhdl, fixed_pkg_c.vhdl и float_pkg_c.vhdl. Я также отмечаю, что штампы даты файла в zip-файле: 27.08.2009.

person Jim Lewis    schedule 28.03.2014
comment
Я попробовал то, что вы предложили, казалось, что это проблема. Тем не менее, я все еще получаю этот вывод, когда пытаюсь скомпилировать проект: pastebin.com/TUtGax7M - person user3209815; 31.03.2014

Я просмотрел: pastebin.com/TUtGax7M

Похоже, что пакеты компилируются, и вы пытаетесь скомпилировать свой дизайн, но он терпит неудачу при вызове «to_float». Не видя кода, я могу только догадываться. Вызов to_float должен определить диапазон результата либо путем передачи ему объекта (первое присвоение ниже), либо индексов результата (второе присвоение ниже).

signal A_fp32 : float32 ;
. . .

-- Real and/or Integer Literal
A_fp32 <= to_float(6.5, A_fp32); -- size using A_fp32
A_fp32 <= to_float(6.5, 8, -32); -- pass indicies

Я также вижу, что призыв к разделению терпит неудачу. Обратите внимание, что разделение находится на переднем крае синтеза. Поставщики могут поддерживать или не поддерживать разделение. Коротко о том, что вам, вероятно, нужно будет отправить отчет об ошибке против разделения и вместо этого использовать их макрос/мастер. Обратите внимание, что если они поддерживают макрос/мастер для разделения, то они могут выполнять синтез, это просто в их интересах, чтобы вы как можно больше использовали код своего поставщика.

person Jim Lewis    schedule 31.03.2014
comment
Это ограничено сигналами? Я вижу проблему в моем коде: variable denum : integer; variable num : integer; variable dividend : float (4 downto -27); dividend := to_float(num) / to_float(denum); Понятно, что вы предлагаете, но dividend := to_float(num, dividend) / to_float(denum, dividend); возвращает: синтаксическая ошибка VHDL в float_pkg_c.vhdl(3843): правая граница диапазона должна быть константой, а dividend := to_float(num, 4, -27) / to_float(denum, 4, -27); возвращает: ошибка VHDL в SM.vhd (93): значение -27 выходит за пределы целевого диапазона ограничений (от 0 до 2 147483647) - person user3209815; 31.03.2014
comment
Нет, это должно быть хорошо. Для меня это больше похоже на ошибку инструмента. Как ни странно, это первые пакеты, в которых использовались отрицательные диапазоны, и у поставщиков были проблемы с ними. - person Jim Lewis; 01.04.2014