Поиск
Показаны результаты для тегов 'export'.
-
Здравствуйте, коллеги Ситуация: В package определена экспортируемая в C++ функция. На стороне C++ данная функция вызывается в случайный момент времени тредом, который к DPI не имеет отношения. Во время вызова функции из C++ симулятор Xcelium выдаёт следующие ошибки: "DPI Scope function call allowed only from context function" и "The C identifier "foo" representing an export task/function cannot be executed from a non-context area". Перед вызовом функции foo в стороннем треде я пробовал принудительно задавать контекст: svSetScope(svGetNameFromScope("foo_pkg")), но безуспешно. Я даже пробовал заранее сохранять переменную с контекстом (GLOBAL_SCOPE=svGetScope()) и перед вызовом устанавливать контекст: svSetScope(GLOBAL_SCOPE). Тоже безрезультатно. При вызове svSetScope(GLOBAL_SCOPE) DPI не видит контекста вообще и устанавливает его в NULL. На форуме Cadence нашёл заметку в которой автор решает описываемую проблему, используя функции __sync_lock_test_and_set и __sync_lock_release. Как и над какими переменными он их использует - не понятно. -- Сталкивался ли кто с подобной проблемой и как решил?
-
- systemverilog
- dpi
-
(и ещё 6 )
C тегом:
-
Столкнулся с такой ситуацией, когда коструктор-блочник просит выдать Степ модель узла печатного с условием, чтобы плата печатная была выполнена твёрдым телом а не поверхностями. Кто нибудь сталкивался с подобным? как в аллегро выдать степ, где плата печатная будет одним телом а не набором поверхностей? Кстати, эти поверхности в мех.сапре не сшиваются в твёрдое тело. ДОлжно быть так - 3D-Altium. а у меня так - 3D-Allegro. Подскажите где собака зарыта?