Verdi’s open debug platform enables portability across EDA vendors
Verdi, the industry’s de-facto debug platform, offers a fully extensible platform for SoC teams and third-party EDA vendors to develop innovative applications (apps) for the large Design & Verification community. VerifWorks (https://verifworks.com), a CVC venture has joined the VC Apps program in 2014 and have been developing compelling custom apps for customers. Some of them have become so popular that we decided to make them as products/utilities for wider customer base.
One of the key requirements from customers has been interoperability and portability of these smart “apps”. After all, if these are bunch of “throw away” scripts, they will not scale upto multiple customer designs, coding styles etc. So any ad-hoc script based “app” would become useless in short span of time.
With Verdi, one gets a complete parser, elaboration engine and a great API on top. This means that all the standard IEEE language constructs (including multiple languages if need be). It also proves to be an easy business model as many customers do have Verdi in their flow. Another big advantage with Verdi API is the level of abstraction the API provides on top of the design model. Since it is at a very high level of abstraction, the length of code needed to develop a custom app is small. It also allows easy porting to other EDA vendor platforms as the intent is very easy to derive, thanks to higher level of abstraction in the API.
We at VerifWorks recently ported one of our flagship DVCreate Apps from Verdi NPI to Invio platform on their Python based API. Invio is a platform for custom EDA development made available from Invionics (http://www.invionics.com). The porting was bliss and got done in well under 1 hour. This as our app development team confirmed is largely due to the higher abstraction NPI calls used in the original VC Apps. The Invio platform provides higher-level Python based, intuitive API that can be quickly mapped to Verdi NPI on need basis. We also managed to port it to use Verilog-VPI (PLI), though that meant more code as the VPI is much lower abstraction level. Also the VPI version could not support all the features that the VC Apps version supports such as clock inferencing.
For more on VC Apps, see: https://www.synopsys.com/Community/Interoperability/Pages/vc-apps.aspx
To know more about Invio platform see: https://verifworks.com/products/invio-platform/
To get a copy of the DVCreate apps from VerifWorks contact email@example.com