You’re not limited to just C. Not even just C and C++.

Image by Christopher Burns on Unsplash

The SystemVerilog Direct Programming Interface (DPI), at a high level, provides remote procedure calls in SystemVerilog. The entirety of the DPI’s definition can be read in the SystemVerilog IEEE standard (requires an account to access). Since SystemVerilog is quite a limiting language compared to general-purpose programming languages, being able to do remote procedure calls is an insanely powerful feature. However, it is commonly misunderstood that the DPI only allows users to call C functions. While that is how it is defined in the SystemVerilog standard, that is actually not true — you can call virtually any code from the SystemVerilog…


While software development tools are better than ever, hardware development tools are still stuck in the 90’s. How can this be fixed?

Photo by Christian Wiediger on Unsplash

I am a pre-silicon validation engineer. What that means is that I write software to test, analyze, and stress hardware designs to ensure that they adhere to their architectural specifications. Aside from a Linux environment, The common tools that I use for my job are:

  • SystemVerilog: An IEEE-standard language designed for defining hardware at the Register Transfer Level (RTL), as well as the test benches to test that hardware.
  • UVM (Universal Verification Methodology): An open-source library that standardizes how hardware validators should write test benches for hardware designs.
  • DVT Eclipse: A plugin for the (previously) popular IDE Eclipse that works…

Sean McLoughlin

System-on-Chip Validation Engineer and Software Engineer at Intel working on technologies to improve everyone’s lives.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store