DVT SystemVerilog IDE User Guide
Rev. 23.1.21, 12 September 2023
The DVT compiler safely skips encrypted regions of code. Ideally VIP source code should be compiled without errors by any third party tools. However, some VIPs may not be properly encrypted, and lead to false errors. Most of the time this happens due to:
Note: How come a simulator works fine in such cases? Because as simulator decrypts the code if you have the proper licenses.
To restore full or partial functionality you can employ one or more of the following solutions:
The definition will be placed in the closest scope which is defined in a file containing encrypted code.
Macros whose name matches the macro regular expression are automatically defined at project level.
Note: All +dvt_encrypted_code_auto inclusion directives are applied first, followed by the exclusion (_not) patterns. Any number of such directives can be specified. The directives are global.
+dvt_auto_snps_vip_macros Generate and load in each invocation .dvt/auto_snps_vip_macros.svh file. It contains dummy definitions for macros which are commonly used but not defined or encrypted in Synopsis VIPs.
The encrypted code can be fixed on a case by case basis, for example by adding the missing endmodule, endclass, `endif etc, declaring dummy prototypes of the missing API (classes, functions, fields and so on).
To avoid changing the original files, you will have to substitute the original broken files with the fixed ones.
Having done the above, DVT will use the substitute files and offer valuable functionality, like hyperlinks, type hierarchy, references in the now correctly compiled code.
Note The + dvt_file_substitute directive accepts only absolute paths as arguments. Environment variable can be used to define the absolute paths. Regular expressions are not supported.