Jump to content
    

cocotb как из нее позвать вериложную DPI (или как угодно) функцию?

это все с каденсовским симулятором.

я кокотб это впервые увидел в чужом проекте и хочется как-то позвать функцию из SV кода

удивительно мало гуглиться, и я через питоновскую CDLL вроде достал sv_export.so

и из питона что-то вызывается, но до симулятора не доходит

точнее ncsim выдает ошибку No scope set prior to calling ... и имя функции

==============

может я вообще не так делаю (даже С с питоном никогда не смешивал, не то что HDL) - наверняка этот cocotb весь через DPI сделан, и может какой-то штатный способ есть ему подсунуть верилог функцию - вот ничего толкового не смог нагуглить по вопросу 

ну а если я так как и надо делаю - то что упускаю?

из С функция вызывается, если что

 

Share this post


Link to post
Share on other sites

то ли я что-то упустил, то ли поменялся стандарт/имплементация в ius с того момента, как я этот код запускал...

попробовал тот же DPI из C позвать и там надо [теперь] явно задавать контекст - вызывать svSetScope() или как-то так.

вроде раньше был контекст того модуля, где объявлена DPI функция ???

------

напишу С-обертку с контекстом для этой DPI функции и эту обертку буду из питона звать. так наверно заработает...

вопрос - можно ли как-то это "из коробки" в cocotb сделать?

Share this post


Link to post
Share on other sites

Через С работает, в С перед вызовом SV

    svScope sim_scope = svGetScopeFromName("top");

    svSetScope(sim_scope);

Share this post


Link to post
Share on other sites

Если над дёрнуть внешнюю функцию внутри cocotb то это делается силами Python, cocotb и симулятор тут не при чём.

Но вот если надо дёргать функции в/из RTL дизайна, то могут быть нюансы. cocotb не очень хорошо поддерживает xcelium, буквально пол года назад начали как-то двигаться в этом направлении. Так что с этим симулятором ещё может быть достаточно много багов.

Share this post


Link to post
Share on other sites

11 hours ago, nice_vladi said:

Если над дёрнуть внешнюю функцию внутри cocotb то это делается силами Python, cocotb и симулятор тут не при чём.

Но вот если надо дёргать функции в/из RTL дизайна, то могут быть нюансы. cocotb не очень хорошо поддерживает xcelium, буквально пол года назад начали как-то двигаться в этом направлении. Так что с этим симулятором ещё может быть достаточно много багов.

make для кселиума у них есть и вроде все работает. Каких-либо глюков я не встретил.

Да, я сделал через с- шную dll и питоновскую ctype. Возможно, что очень криво, так как впервые этот ctype увидел.

Но вопрос был, что может гдето внутрях cocotb такую задачу уже решили, и образно говоря, достаточно было какуюнибудь переменную в мэйке задать и получить все это "ис коропки"

Share this post


Link to post
Share on other sites

On 2/3/2025 at 6:40 AM, nice_vladi said:

cocotb не очень хорошо поддерживает xcelium, буквально пол года назад начали как-то двигаться в этом направлении.

наблюдаю за несколькими разрабами, которые юзают эту связку, вроде не жалуются несколько лет
но и опять же, они не прогоняют такие углубленные и серьезные тесты как я через cocotb+questa. Быть может он глубже себя ведет хуже.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...