DVT e Language IDE User Guide
Rev. 24.1.5, 13 March 2024

36.2 Encrypted VIP Support

To fully enable DVT functionality for environments that load encrypted VIPs you first have to process the original VIPs for DVT compatibility like illustrated in the diagram below:

step 1

Run evip2dvt.sh -t <vip_top_file> -i <vip_path> -o <output_dir>

step 2

Point $DVT_SPECMAN_PATH to <output_dir> and invoke DVT

Examples

Assume the VIP is located in /libs/vips/vr_axi/ and that the DVT compatible VIP will be generated in /libs/dvt_vips/

Invoke evip2dvt.sh using the following command line:

$DVT_HOME/bin/evip2dvt.sh -t /libs/vips/vr_axi/e/vr_axi_top.e -i /libs/vips/vr_axi/ -o /libs/dvt_vips/

You should now see under /libs/dvt_vips/ a new directory vr_axi.

Set the $DVT_SPECMAN_PATH variable to point to /libs/dvt_vips/ before launching DVT:

setenv DVT_SPECMAN_PATH /libs/dvt_vips/ && $DVT_HOME/bin/dvt.sh

Other examples for using evip2dvt.sh:

$DVT_HOME/bin/evip2dvt.sh/evip2dvt.sh -t `sn_which.sh uvm_e/e/uvm_e_top.e` -i `sn_which.sh uvm_e` -o dvt_vips

$DVT_HOME/bin/evip2dvt.sh/evip2dvt.sh -t `sn_which.sh cdn_e_utils/e/cdn_e_utils_top.e` -i `sn_which.sh cdn_e_utils` -o dvt_vips

$DVT_HOME/bin/evip2dvt.sh/evip2dvt.sh -p "define VR_AXI_USING_PORTS " -t `sn_which.sh vr_axi/e/vr_axi_top.e` -i `sn_which.sh vr_axi` -o dvt_vips

$DVT_HOME/bin/evip2dvt.sh/evip2dvt.sh -p "define VR_AHB_USING_PORTS " -t `sn_which.sh vr_ahb/e/vr_ahb_top.e` -i `sn_which.sh vr_ahb` -o dvt_vips

$DVT_HOME/bin/evip2dvt.sh/evip2dvt.sh -p "define CDN_OCP_USING_PORTS " -t `sn_which.sh cdn_ocp/e/cdn_ocp_top.e` -i `sn_which.sh cdn_ocp` -o dvt_vips

The evip2dvt.sh Utility Script

The evip2dvt.sh script is located in $DVT_HOME/bin/. You should run it in a shell configured for Specman and DVT: specifically, you need $SPECMAN_PATH and $DVT_HOME to be correctly set, and the specman command available. The script syntax is as follows:

evip2dvt.sh -t <top_file> -i <path_selection> [-i <path_selection> ...] [-o <output_directory>] [-p <sn_pre_commands>]

-hShow script usage.
-t <top_file>Top file that loads VIPs.
-i <path_selection>Source path to process. All files from this path will be processed and dumped to the output folder.
-o <output_directory>Optional. Output folder. All processed files will be dumped to this folder. Defaults to current directory.
-p <sn_pre_commands>Optional. Specman pre-commands. Passed to Specman using the -p switch.
-package_apiOptional. Process the package API. The package API is not processed by default.
-protected_apiOptional. Process the protected API. The protected API is not processed by default.

Note: It might happen that false semantic errors are detected by DVT within the translated VIPs. These are due to the processing details and are irrelevant for your own code. Hence an implicit compile waiver is created and turns off all warnings and errors reported in the $DVT_SPECMAN_PATH. You can disable this implicit waiver by setenv DVT_DISABLE_PREDEFINED_WAIVERS true

Known limitation: Some_files_are_missing_from_the_VIPs_transformed_with_evip2dvt.sh