前言
在验证过程中,AXI VIP经常会用到,VIP中默认的延时设置最大是16,那么如何调整这些设置的最大值呢?
一、解决办法
The default maximum values of the transaction delays are controlled by macros. These macros are defined in the file ‘svt_axi_common_defines.svi’. You need to redefine these macros to override the default values.
MACRO Transaction Delay Attribute
SVT_AXI_MAX_ADDR_DELAY addr_ready_delay
SVT_AXI_MAX_ADDR_VALID_DELAY addr_valid_delay
SVT_AXI_MAX_WVALID_DELAY wvalid_delay[]
SVT_AXI_MAX_WREADY_DELAY wready_delay[]
SVT_AXI_MAX_RVALID_DELAY rvalid_delay[]
SVT_AXI_MAX_RREADY_DELAY rready_delay[]
SVT_AXI_MAX_WRITE_RESP_DELAY bready_delay
SVT_AXI_MAX_WRITE_RESP_DELAY bvalid_delay
SVT_AXI_MAX_ACREADY_DELAY acready_delay
SVT_AXI_MAX_CDVALID_DELAY cdvalid_delay[]
SVT_AXI_MAX_CRVALID_DELAY crvalid_delay
SVT_AXI_MAX_ACVALID_DELAY acvalid_delay
SVT_AXI_MAX_CRREADY_DELAY crready_delay
SVT_AXI_MAX_CDREADY_DELAY cdready_delay[]
SVT_AXI_MAX_RACK_DELAY rack_delay
SVT_AXI_MAX_WACK_DELAY wack_delay
SVT_AXI_MAX_DVM_COMPLETE_DELAY dvm_complete_delay
二、举例
The default maximum value of SVT_AXI_MAX_ADDR_DELAY is 16. If addr_ready_delay is programmed (inside slave sequence) to a value greater than 16, then you will see the is_valid()check failure of transaction:
[2728000] (class): is_valid() - Invalid addr_ready_delay of 100 provided, must be inside { 0:16 }
[2728000] (VerifEnv:amba_vip_tml:axi_interconnect_group:ic_slave[0]:xactor): ERROR - receive_read_addr() - {OBJECT_NUM(0) PORT_ID(0) TYPE(READ) ID(b) ADDR(dea887e356a8)} Slave Transaction is_valid check failed.
To resolve this error, you need to add the following statement in the file " svt_axi_user_defines.svi" and also pass the define SVT_AXI_INCLUDE_USER_DEFINES on compile command
define SVT_AXI_MAX_ADDR_DELAY 100
总结
本文主要记录在调整AXI VIP延时的时候如何调整最大值。
512

被折叠的 条评论
为什么被折叠?



