ViKo 1 13 мая, 2011 Опубликовано 13 мая, 2011 · Жалоба В проекте использую простенький package (в принципе, неважно, какой, но показал): package Definitions; /* Unit Select */ typedef enum { Status, _tmp1_, Relay, Power, TimerL, TimerH, PreCnt, Trig, S1ADC, S2ADC, S1Mem, S2Mem, Itpl, DAC, _tmp14_, _tmp15_ } unit_sel; endpackage Совал его и в один из файлов проекта, и в отдельный файл. Все файлы проекта (в папке source) добавлены к проекту. В нужных модулях используется import Definitions::*; Quartus нормально компилирует. Запускаю ModelSim через NativeLink. Для теста создал отдельную папку (simulation), и в ней файл _test.sv. Если package в отдельном файле, RTL симуляция проходит, а Gate симулятор не находит Definitions. Аналогично, если package в одном из файлов проекта. Если задать только в файле теста, он не находится компилятором Quartus. Если задать и в файле проекта, и в тесте, RTL симуляция не идет, жалуется ** Error: (vsim-13) Recompile work.Signal_m because work.Definitions has changed. Зато проходит Gate симуляция. Как же тут всем угодить? Выкрутился так - создал в файле теста: package Definitions_; /* Unit Select */ typedef enum { Status, _tmp1_, Relay, Power, TimerL, TimerH, PreCnt, Trig, S1ADC, S2ADC, S1Mem, S2Mem, Itpl, DAC, _tmp14_, _tmp15_ } unit_sel_; То же самое, только под другим именем. И вызываю его в тестбенче: import Definitions_::*; Все компиляции и симуляции работают. Странно, что имена в перечислениях не конфликтуют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 13 мая, 2011 Опубликовано 13 мая, 2011 · Жалоба Может, кто подскажет заодно, почему в ModelSim в окне Wave в тексте формата переменной встречаются и маленькие z, и большие Z. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 17 мая, 2011 Опубликовано 17 мая, 2011 · Жалоба Может, кто подскажет заодно, почему в ModelSim в окне Wave в тексте формата переменной встречаются и маленькие z, и большие Z. z и Z как-то связаны с языками Verilog и VHDL, соответственно. Хотя у меня один SV. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 2 июня, 2011 Опубликовано 2 июня, 2011 · Жалоба Вернулся к данной проблеме в последние дни. Крутил-вертел package, дубликатов понасоздавал, и в модули импортировал и в файлы (т.е. в область видимости $unit) - всё ерунда. Package, импортируемый в модулях в одном файле, конфликтует с ним же, импортируемым в модулях в другом файле, при RTL симуляции в ModelSim. Подозреваю, недоработка ModelSim. Убрал package. Перенес свои typedef в отдельный файл (и `define там создал нужных), обложил их `ifndef DEFS `define DEFS ... `endif и включаю свой файл, куда хочу. Для теста, который находится в другой папке, использую путь (сначала наверх, потом, куда надо): `include "../source/xxx_Defs.sv" ШабАш. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться