Jackov 1 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба Здравия желаю! На время симуляции проекта встаёт необходимость исключить из кода кое-какие куски, для этого использую директиву `define, совместно с `ifdef, `else, `endif и прочими. Но объявлять дефайн приходится в каждом файле. Есть ли способ объявить глобальный дефайн в одном месте так чтобы он был виден по всему коду проекта? Прошу пардона, если подобный вопрос уже поднимался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
embddr 0 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба А в чем моделируете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба А в чем моделируете? ModelSim/QuestaSim. А компилировать надо и в Квартусе и в Айсе, код у меня должен быть переносимый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
embddr 0 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба В modelsim при вызове нужно передать параметр: +define+TRULALA В квартусе нужно добавить в проект assignment: set_global_assignment -name VERILOG_MACRO "TRULALA" . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба В modelsim при вызове нужно передать параметр: +define+TRULALA В квартусе нужно добавить в проект assignment: set_global_assignment -name VERILOG_MACRO "TRULALA" . А в коде `define TRULALA ... `ifdef TRULALA ля-ля-ля тополя `edif ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
embddr 0 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба В коде `ifdef TRULALA ля-ля-ля тополя `edif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bad0512 2 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба ModelSim/QuestaSim. А компилировать надо и в Квартусе и в Айсе, код у меня должен быть переносимый. Можно и не изобретать лисапеды: Конкретно для моделсима-квесты ничего объявлять не надо, есть встроенный дефайн MODEL_TECH, просто в коде пишем: `ifdef MODEL_TECH код только для симуляции моделсимом `endif Более общий случай - используем директиву: // synthesis translate_off Код, игнорируемый синтезатором // synthesis translate_on Тут необходимо почитать доку на ваш синтезатор и убедиться что данная директива поддерживается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба Есть ли способ объявить глобальный дефайн в одном месте так чтобы он был виден по всему коду проекта? Можно вынести все дефайны в отдельный файл с настройками, и инклудить его из всех файлов проекта, где эти дефайны используются. Но на мой взгляд, использовать дефайны - моветон. Куда лучше использовать параметры, совместно с генерейт-конструкциями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bad0512 2 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба Но на мой взгляд, использовать дефайны - моветон. Куда лучше использовать параметры, совместно с генерейт-конструкциями. В сложной иерархической конструкции протягивать параметры во все подмодули ИМХО не очень правильно - загромождается код общими настройками проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexx 0 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба Проще файл листа закинуть сам дефайн или отдельно прописать во внешнем файле и включить его в проект, отдельно в среде лучше не делать, теряется ход проекта. +define+TRULALA список файлов или -f flist0.f Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gate 0 27 ноября, 2015 Опубликовано 27 ноября, 2015 · Жалоба Можно и не изобретать лисапеды: Конкретно для моделсима-квесты ничего объявлять не надо, есть встроенный дефайн MODEL_TECH, просто в коде пишем: `ifdef MODEL_TECH код только для симуляции моделсимом `endif +1 Применительно к вопросу топикстартера: `ifndef MODEL_TECH код, который моделсим не видит, но видит синтезатор и все другие любопытствующие `endif Уже все разжевали и в рот положили :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jackov 1 3 декабря, 2015 Опубликовано 3 декабря, 2015 · Жалоба Попробовал разные варианты - работают. Всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться