Jump to content

DPI guideline for various programming language

Recommended Posts

DPI(Direct Programming Interface) is usually for integrating reference model into systemverilog testbench. Now there is matural integration guideline for reference model written in c/cpp. However, with the popularity of other high-level abstraction programming language like Python,Rust, people tend to develop simulation model in their favorite programming language. I am not sure whether it's considered to support more programming language in systemverilog DPI. 

Link to comment
Share on other sites

It is doubtful to support since it would devote too many resources (specification, design, implementation, security, verification, training) from too many companies (SYNOPSYS, Cadence, Siemens EDA, Aldec) for something of little real benefit (commercial and practical). Another language interface would fragment support for an already complex language. No thank you. 

You can always use SWIG if you really feel the need. 

Link to comment
Share on other sites

Although languages like Python have become immensely popular because they are easy to learn, enabling rapid prototyping, and have accumulated vast libraries for many different applications, they have yet to earn their place in Industry practice because of their relatively poor performance. Verification teams constantly struggle keeping their already slow nightly regression runs nightly; having it turn into days or weeks is not acceptable. 

I do know a number of design teams have successfully developed testbench models in <your_favorite_language_here>. Those are fragmented examples and as the other David says, it would be stretching resources to support all of them. We are still wasting resources from the mistake of having to support both Verilog and VHDL HDLs back in the 1990s.  Is it possible optimizing Python overtakes the performance of C/C++ in the years to come? Maybe. But unlikely in the next decade. 

Link to comment
Share on other sites

  • 2 weeks later...

What I expect "support" is more like a guidance to encourage people try their favorite language in their reference model, which can act as another "Option". 

On 9/4/2021 at 3:36 AM, dave_59 said:

Verification teams constantly struggle keeping their already slow nightly regression runs nightly

Currently c/cpp is the most efficient programming language and is believed to develop fastest simulation model in practice, which also give more space to speed optimization. But when people want to develop raw model more early, more syntax friendly language is better choice.

Currenly, SWIG is indeed a good approach to integrate other programming language as David's suggestion.

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...