34.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>]
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