A discussion with Dr. Srinivas Boppu, Assistant Professor at Indian Institute of Technology (IIT) Bhubaneswar.
The product enables engineers to inspect a project through diagrams. Designers can use HDL diagrams such as schematic, state machine, and flow diagrams. Verification engineers can use UML diagrams such as inheritance and collaboration diagrams. Diagrams are hyperlinked and synchronized with the source code and can be saved for documentation purposes.
Verissimo found many dozens of issues in the testbench code. The Verification Task Group had developed extensive coding guidelines for SystemVerilog and UVM, but they had not previously had an automated way to check them. Unsurprisingly, there were some violations.
Documentation turned out to be a big challenge. Given that we’re developing a whole new type of application, our design is quite novel, and it evolved a lot over the course of the project as we learned new things and added more functionality. Every time this happened, it was vital that the design documentation be updated correctly to match the design changes. Of course, when a module changes, designers of the adjoining modules need to know.
We have fixed many dozens of issues reported by Verissimo. Some were violations of our SystemVerilog/UVM coding guidelines that we previously had no automated way to detect, and some were due to rules we had not considered before. I especially like the rules that warn us about constructs that may work inconsistently on different simulators or that are not even supported on all simulators. It is important for our code to be vendor-neutral and portable.
There are three main requirements to IP quality. The most obvious is functional correctness, another is IP robustness, and last but not least, IP maintainability. AMIQ EDA has products that help you meet such requirements.
The concept is simple: all code changes from all developers are merged back into the main development stream frequently, perhaps as often as every few hours. AMIQ EDA has been running CI checks on the Github repository of the UVM reference implementation for years.
The level of checking that Verissimo provides helps IEEE create a better reference implementation library and helps users switching versions. Verification engineers clearly see the value in being able to check whether existing testbenches will work with the latest revision to the standard.
IDEs were introduced to improve the efficiency and accuracy of writing and maintaining code, providing easier file navigation, hierarchical views of the project codebase, etc. However, myths have arisen about IDEs, and this article looks to clear the air.
Relying on non-standard constructs can trap users with one vendor and make it expensive to switch to another.