VHDL 2008 ›общий пакет в объекте: ошибка при ожидании BASICID или EXTENDEDID

При попытке объявить объект с помощью формального универсального пакета (ieee.fixed_generic_pkg):

library ieee;
context ieee.ieee_std_context;

entity myent is
  generic ( package myfpkg is new ieee.fixed_generic_pkg generic map (<>) );
end entity;

Я получаю следующую ошибку:

Syntax error at or near "package", expecting BASICID or EXTENDEDID

Я также пробовал:

library ieee;
context ieee.ieee_std_context;
use ieee.fixed_generic_pkg;

entity myent is
  generic ( package myfpkg is new ieee.fixed_generic_pkg generic map (<>) );       
end entity;

это тоже не работает.

Однако, если я объявлю какой-либо фиктивный экземпляр пакета, он будет работать без ошибок:

library ieee;
context ieee.ieee_std_context;
package fpkg is new ieee.fixed_generic_pkg;

--

library ieee;
context ieee.ieee_std_context;

entity myent is
  generic ( package myfpkg is new ieee.fixed_generic_pkg generic map (<>) );       
end entity;

Как правильно объявить объект с помощью формального универсального пакета без предварительного создания экземпляра пакета того же типа?

ИЗМЕНИТЬ

Я использую инструмент HDL Designer 2015.1b. Я думаю, что поддерживаются общие пакеты. Действительно, следующий пример не вызывает ошибок:

library slfnlib;
use slfnlib.gen_consts;
use slfnlib.gen_wb_ctypes;

package gen_ctypes is
  generic ( package cs is new slfnlib.gen_consts generic map (<>) );  

  package wb is new slfnlib.gen_wb_ctypes generic map (
    g_mo => cs.g_mo,
    g_bas => cs.g_bas );

end package;

РЕДАКТИРОВАТЬ2

Работая с несколькими универсальными пакетами (объявления, экземпляры, использование ...), я понял, что полные проекты компилируются правильно. Я тоже получал ту же ошибку несколько раз, анализируя только их части.

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


person U.Martinez-Corral    schedule 07.07.2016    source источник
comment
Возможно, стоит описать, какой инструмент / версия сообщает об этом. Некоторые инструменты могут по-прежнему не поддерживать общие пакеты.   -  person user_1818839    schedule 08.07.2016
comment
Я отредактировал вопрос, чтобы указать информацию об инструменте / версии. Также я добавил пример, который работает.   -  person U.Martinez-Corral    schedule 10.07.2016


Ответы (1)


Ваш код выглядит как имеющий структуру, аналогичную примеру в разделе 6.5.7.2 LRM («Общие аспекты карты»), за исключением того, что ваш верхний уровень является объектом, тогда как в их примере это пакет.

Ваш исходный код отлично скомпилирован на двух инструментах, которые я пробовал, поэтому мне кажется, что есть проблема в любом используемом вами инструменте. Я предлагаю вам обсудить это с продавцом инструмента.

person Matthew Taylor    schedule 08.07.2016
comment
Спасибо за попытку. Я использую HDL Designer 2015.1b. Могу я узнать, какие инструменты вы пробовали? - person U.Martinez-Corral; 10.07.2016
comment
Извините, вы не можете. Вы, вероятно, обнаружите, что публичное обсуждение того, что ваш инструмент может и чего нельзя делать, противоречит условиям лицензии. В своей работе я очень благодарен различным поставщикам за их поддержку и серьезно отношусь к этим условиям лицензии. - person Matthew Taylor; 10.07.2016
comment
@MatthewTaylor, в то время как в лицензионном письме может быть сказано, что на практике поставщики вряд ли будут возражать против заявления о том, что их инструмент выполняет свою работу! - person user_1818839; 10.07.2016
comment
Я понимаю вашу точку зрения, Мэтью Тейлор, и прошу извинить меня, если вопрос об инструментах заставил вас почувствовать себя некомфортно. На самом деле я не имел в виду обсуждать, какие инструменты могут делать, а как мне вводить код. Действительно, если бы вы использовали какой-либо из инструментов, которые я пробовал, это означало бы, что у меня проблемы с настройкой. В любом случае, я пытаюсь обсудить это с поставщиком инструмента (хотя это непросто). Тогда я считаю ваш правильный ответ. Спасибо вам обоим, вам и @BrianDrummond, за уделенное время. - person U.Martinez-Corral; 12.07.2016