DVT SystemVerilog IDE User Guide
Rev. 21.1.44, 19 October 2021

41.2 Encrypted VIP Support

In files that contain encrypted code, DVT may signal errors for mismatched language tokens, e.g. "Unexpected token 'endmodule'". The cause of this type of errors is most of the times the asymmetric encryption done to the code, e.g. an endmodule or an endif inside the encrypted code with the corresponding module or ifdef outside it, in plain text.

Because DVT ignores encrypted code, some of the types may end up been compiled in the wrong scope altogether. To restore full or partial functionality, the asymmetric encrypted code must be fixed e.g. adding the missing endmodule.

When the encrypted files are read-only, you will have to substitute the original broken files with the fixed ones.

  • Start by choosing a suitable directory to store the DVT substitute files. Often, they can be used across projects, so the directory should be outside of any DVT project directory in particular. You can define an environment variable to point to the chosen directory, like $DVT_FIXES.

  • For every file that needs to be fixed do:

    • Copy the file to $DVT_FIXES as is.

    • Modify $DVT_FIXES/file with the necessary fixes.

    • Tell DVT to use $DVT_FIXES/file as a substitute to file. This means adding to the default.build the following build directive: + dvt_file_substitute+/path/to/file=path/to/$DVT_FIXES/file

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.