yes 8 January 27 Posted January 27 · Report post это все с каденсовским симулятором. я кокотб это впервые увидел в чужом проекте и хочется как-то позвать функцию из SV кода удивительно мало гуглиться, и я через питоновскую CDLL вроде достал sv_export.so и из питона что-то вызывается, но до симулятора не доходит точнее ncsim выдает ошибку No scope set prior to calling ... и имя функции ============== может я вообще не так делаю (даже С с питоном никогда не смешивал, не то что HDL) - наверняка этот cocotb весь через DPI сделан, и может какой-то штатный способ есть ему подсунуть верилог функцию - вот ничего толкового не смог нагуглить по вопросу ну а если я так как и надо делаю - то что упускаю? из С функция вызывается, если что Quote Share this post Link to post Share on other sites More sharing options...
yes 8 January 28 Posted January 28 · Report post то ли я что-то упустил, то ли поменялся стандарт/имплементация в ius с того момента, как я этот код запускал... попробовал тот же DPI из C позвать и там надо [теперь] явно задавать контекст - вызывать svSetScope() или как-то так. вроде раньше был контекст того модуля, где объявлена DPI функция ??? ------ напишу С-обертку с контекстом для этой DPI функции и эту обертку буду из питона звать. так наверно заработает... вопрос - можно ли как-то это "из коробки" в cocotb сделать? Quote Share this post Link to post Share on other sites More sharing options...
yes 8 January 29 Posted January 29 · Report post Через С работает, в С перед вызовом SV svScope sim_scope = svGetScopeFromName("top"); svSetScope(sim_scope); Quote Share this post Link to post Share on other sites More sharing options...
nice_vladi 3 February 3 Posted February 3 · Report post Если над дёрнуть внешнюю функцию внутри cocotb то это делается силами Python, cocotb и симулятор тут не при чём. Но вот если надо дёргать функции в/из RTL дизайна, то могут быть нюансы. cocotb не очень хорошо поддерживает xcelium, буквально пол года назад начали как-то двигаться в этом направлении. Так что с этим симулятором ещё может быть достаточно много багов. Quote Share this post Link to post Share on other sites More sharing options...
yes 8 February 3 Posted February 3 · Report post 11 hours ago, nice_vladi said: Если над дёрнуть внешнюю функцию внутри cocotb то это делается силами Python, cocotb и симулятор тут не при чём. Но вот если надо дёргать функции в/из RTL дизайна, то могут быть нюансы. cocotb не очень хорошо поддерживает xcelium, буквально пол года назад начали как-то двигаться в этом направлении. Так что с этим симулятором ещё может быть достаточно много багов. make для кселиума у них есть и вроде все работает. Каких-либо глюков я не встретил. Да, я сделал через с- шную dll и питоновскую ctype. Возможно, что очень криво, так как впервые этот ctype увидел. Но вопрос был, что может гдето внутрях cocotb такую задачу уже решили, и образно говоря, достаточно было какуюнибудь переменную в мэйке задать и получить все это "ис коропки" Quote Share this post Link to post Share on other sites More sharing options...
new123 0 February 4 Posted February 4 · Report post On 2/3/2025 at 6:40 AM, nice_vladi said: cocotb не очень хорошо поддерживает xcelium, буквально пол года назад начали как-то двигаться в этом направлении. наблюдаю за несколькими разрабами, которые юзают эту связку, вроде не жалуются несколько лет но и опять же, они не прогоняют такие углубленные и серьезные тесты как я через cocotb+questa. Быть может он глубже себя ведет хуже. Quote Share this post Link to post Share on other sites More sharing options...