Перейти к содержанию
    

library work - где физически ?

В проэкте есть юзерская библиотека в которй находится package которым пользуюсь в проэкте.

Включаю ее в файлы сорсов (VHDL):

 

library work;
use work.constant.all

 

Constants - это данный package, физизически находится в совем VHDL файле.

 

Вопрос: какая физическая привязка места хранения данного файла библиотеки относительно сорсов/рабочих файлов проэкта ? Обязана-ли находиться в той-же дирректории где и рабочие файлы (например файл сборки проэкта, файлу компиляции и т.д.) ? Или главное чтоб был там где сорсы проэкта (в которые он включен) ?

Есть ли "железное" правило на эту тему или оно зависит от конкретнго производителя/IDE ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос: какая физическая привязка места хранения данного файла библиотеки относительно сорсов/рабочих файлов проэкта ?
Никакой. Файлы могут лежать где угодно. В проекте они описываются или абсолютными путями, или относительно рабочего каталога программы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никакой. Файлы могут лежать где угодно. В проекте они описываются или абсолютными путями, или относительно рабочего каталога программы.

 

Спасибо.

Рабочий каталог - это там где находятся файлы генерирующиеся программой ? (сайлы синтеза, PAR и т.д.)

И ispLeverа такя структура (создается при создани нового проэкта):

 

Проэкт

|

|-----project.dir

|-----backup

|-----coreip

|-----syntmp

|-----work

 

Все генерированые файлы проэкта находятся в основной директории (Проэкт), там-же и сорсы.

Это значит что Проэкт есть рабочий каталог ?

Если библиотека расположена в под-директории относительно рабочей, как описывать относительный путь в library, use ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все генерированые файлы проэкта находятся в основной директории (Проэкт), там-же и сорсы.

Это значит что Проэкт есть рабочий каталог ?

 

:bb-offtopic:

 

давно интересно почему вы всегда пишете проЭкт, а не проЕкт ? Вы стебетесь над своими проектами и не воспринимаете их всерьез ? : )

 

Если библиотека расположена в под-директории относительно рабочей, как описывать относительный путь в library, use ?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:bb-offtopic:

 

давно интересно почему вы всегда пишете проЭкт, а не проЕкт ? Вы стебетесь над своими проектами и не воспринимаете их всерьез ? : )

 

:07: хмм, сорри, не совсем въехал что вас обидело в произношении проэкт или проект...и какая связь с уважением/неуважением к своим работам... :cranky:

мне в голову не приходило что это можно воспринимать лично... :07:

но нет проблем, если грамматиьески правильно писать "проект" значит пусть будет так, а просто писал как произносится...

не обжайтесь, но по моему связывать то как пишу с тем что я стебаюсь на своими работами - по детски смешно... :)

 

 

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

 

ОК, спасибо.

Я просто пытаюсь понять что физически означает:

library work

я думал это указание где искать библиотеку (или package указанный в use work.xxxx.all)

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я просто пытаюсь понять что физически означает:

library work

я думал это указание где искать библиотеку (или package указанный в use work.xxxx.all)

 

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

Work -- это библиотека по умолчанию в соостветствии со стандартом VHDL. Поэтому каждая программа сама её создаёт и знает, где она находится.
library work;

в исходнике можно вообще не писать. Достаточно просто

use work.xxxx.all

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Work -- это библиотека по умолчанию в соостветствии со стандартом VHDL. Поэтому каждая программа сама её создаёт и знает, где она находится.
library work;

в исходнике можно вообще не писать. Достаточно просто

use work.xxxx.all

 

Ага, спасибо, понял.

Попробую закинуть вопрос в саппорт Латиса, как с ispLever определяется work и как добавляять юзерксие библиотеки в месте отличном от defaultного (work)..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не обжайтесь, но по моему связывать то как пишу с тем что я стебаюсь на своими работами - по детски смешно... :)

 

да какие обиды, просто интересно было что послужило источником буквы Э в этом слове %) ладно проехали

 

Я просто пытаюсь понять что физически означает:

library work

я думал это указание где искать библиотеку (или package указанный в use work.xxxx.all)

 

это означает что все пакеты нужно искать в текущей рабочей либе. по умолчанию это либа носит название work, но никто не мешает вам назвать ее например pipa и подключить еще уже скомпилированную библиотеку popa;

 

тогда вам нужно будет писать так

 

library pipa; 
library popa; 

use pipa.const_pkg.all; 
use popa.func_pkg.all;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да какие обиды, просто интересно было что послужило источником буквы Э в этом слове %) ладно проехали

это означает что все пакеты нужно искать в текущей рабочей либе. по умолчанию это либа носит название work, но никто не мешает вам назвать ее например pipa и подключить еще уже скомпилированную библиотеку popa;

 

тогда вам нужно будет писать так

 

library pipa; 
library popa; 

use pipa.const_pkg.all; 
use popa.func_pkg.all;

 

Понял, спасибо.

Но сорс файлы содержащие эти packages должен находиться в библиотеках pipa и popa соответственно, так ?

то что я пытаюсь понять это как эти библиотеки физически привязывать к директориям. Согласно уважаемому andrew_b это устновки конкретной среды, пока таковых не нашел в моей среде (ispLever).

Буду стучаться в саппорт Латиса за пояснениями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

то что я пытаюсь понять это как эти библиотеки физически привязывать к директориям.

 

никак они к ним не привязываются. исходники компилируются в библиотеку с именем отличным от work.

для поделок от ментора это будет

vlog -work my_lib_pipa my_lib_pipa_file.v

 

затем эта либа цепляется как внешняя при запуске моделирования/компиляции

 

vcom -L my_lib_pipa my_lib_work_file.vhd

vsim -L my_lib_pipa work.tb

 

Это позволяет использовать уже скомпилированную готовую библиотеку. Точно также вы поступаете когда используете библиотеку готовых примитивов (например unisim/Xilinx, altera_mf/Altera и т.д.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...