Импорт пакета systemverilog под другим именем

Есть ли механизм для импорта пакета systemverilog под другим именем, аналогичный тому, который доступен в Python?

У меня есть пакет, который мне нужно импортировать, и имя пакета top_pkg. Я хочу импортировать его как subsystem_pkg


person noobuntu    schedule 26.04.2017    source источник


Ответы (1)


Механизм есть, но для этого он непростой. Что вы можете сделать, так это создать subsystem_pkg, который импортирует top_pkg. Затем вы можете export все символы, импортированные из top_pkg, чтобы они выглядели так, как если бы они были прямо объявлены внутри subsystem_pkg Обычно, только те символы, которые объявлены внутри пакета, доступны для импорта, а не то, что импортировано пакетом (иногда это называется цепочкой импорт). Команда export связывает импорт.

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

package top_pkg;
  int a,b,c,d;
endpackage
package subsystem;
  import top_pkg::*;
  import top_pkg::b;
  export top_pkg::*;
  export top_pkg::c;
  int e = d;
endpackage

Первый оператор import говорит сделать все символы в кандидатах в top_pkg для импорта; на самом деле он ничего не импортирует. Второй оператор импорта явно импортирует b. Первый оператор export говорит об экспорте любого символа, который был импортирован из top_pkg, который на данный момент равен только b. Второй оператор export неявно импортирует, а затем явно экспортирует c. Последний оператор вызывает неявный импорт d, а также неявный экспорт 'd'.

Поэтому, когда вы импортируете subsystem_pkg, вы получаете символы b, c и d из top_pkg, а также локально объявленный `e.

person dave_59    schedule 26.04.2017
comment
Спасибо, Дэйв. Я решил использовать отдельный файл пакета, который включал в себя нужные мне файлы. - person noobuntu; 27.04.2017
comment
Это будет работать, пока никто не импортирует оба пакета и нет связи между двумя пакетами. См. go.mentor.com/package-import-versus-include. - person dave_59; 27.04.2017