2016-07-13 15 views
0

В заголовке написано все.Использование: set_global_assignment -name QIP_FILE в сценарии .tcl завершается с ошибкой - Quartus

У меня есть настройка, которая требует использования переменных окружения при настройке этих назначений. Большинство из них, похоже, работают, но когда дело доходит до назначений QIP_FILE в сценарии tcl, ошибки Quartus. Работа с явным путем в файле проекта .qsf. Есть ли способ использования переменных окружения в файле .qsf, или я делаю что-то неправильно в моем сценарии .tcl?

Линия я использую:

set_global_assignment -name QIP_FILE $::env(MY_VAR_PATH)/my/path/my.qip 

Любая помощь на это было бы здорово,

Заранее спасибо

EDIT: Я получаю ошибку при попытке использовать .tcl сценарий:

------------------------------------------------ 
ERROR: Can't open project: flash_leds 

    while executing 
"project_open $project_name -cmp $ap_name" 
    (file "/opt/altera/15.0/quartus/common/tcl/internal/qsh_smart.tcl" line 60) 
------------------------------------------------ 
+1

Возможно, зависит от содержания MY_VAR_PATH. Если это единственный абсолютный путь, попробуйте 'file normalize $ :: env (MY_VAR_PATH)/my/path/my.qip', который может помочь убрать путь. – patthoyts

+0

Это также возможно, что код действительно хочет относительный путь при его использовании. Надеюсь, это неправда! Что говорит сообщение об ошибке? –

+0

Пробовал то, что вы предложили @patthoyts, и та же проблема. Просто добавлена ​​ошибка в качестве редактирования. Он жалуется, что он не может открыть проект ... –

ответ

1

Так что мне удалось найти решение!

Я звала этот .tcl сценарий как источник в файле .qsf (как он включал другие сценарии, которые также необходимы сорсинг. Оказывается, по какой-то причине, что команда

set_global_assignment -name QIP_FILE ... 

Безразлично» t, когда вызывается .tcl-файл с использованием источника (но другие вызовы set_global_assignment работают ... Я действительно не знаю, что там происходит!)

Чтобы решить эту проблему, мне пришлось создать еще один файл .tcl и переместить все вызовы set_global_assignment туда, оставив другой файл только с другим sourced скрипты. Затем этот новый файл должен быть включен в файл .qsf следующим образом:

set_global_assignment -name SOURCE_TCL_SCRIPT_FILE <filename> 

Это, казалось, решить мою проблему, и файл был правильно QIP найти с помощью переменной среды пути.

+0

Во-первых, я рад, что он работает на вас. Во-вторых, W! T! F! Я могу придумать несколько способов заставить код работать так, и каждый последний из них странно причудливый ... –

+0

Я не согласен ... Это просто мир, в котором я застрял, к сожалению! –