How to download VIP smartsearch?
DESIGNWARE_HOMEto required designware home location where VIP Smartsearch should be downloaded.
vip_smartsearch_<version>.runfile.
$DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>
How to install VIP Smartsearch?
Please refer to the fileVIP_Smartsearch_installation_and_usage_guide.pdfin
$DESIGNWARE_HOME/vip/svt/vip_smartsearch/<version>for installation steps.
Customer Support
For more details about VIP smartsearch tool, contact support_center@synopsys.com.Macros defined for ATB SVT UVM Documentation:
AMBA User Modifiable Macros
AMBA User Non-Modifiable Macros
|
|
|
|
|
|
|
|
|
|
|
|
6
|
|
|
1
|
|
|
interconnect_env
|
|
|
16
|
|
|
256
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
|
|
2
|
|
|
2
|
|
|
4
|
|
|
|
|
4
|
|
|
|
|
|
|
3
|
|
|
5
|
|
|
4
|
|
|
3
|
|
|
2
|
|
|
|
|
|
|
2
|
|
|
2
|
|
|
4
|
|
|
8
|
|
|
16
|
|
|
4
|
|
|
(xact.get_xact_type() == svt_axi_transaction::COHERENT && (xact.coherent_xact_type == svt_axi_transaction::WRITEEVICT || xact.coherent_xact_type == svt_axi_transaction::WRITEBACK || xact.coherent_xact_type == svt_axi_transaction::READONCE ) ) |
|
|
(xact.get_xact_type() == svt_axi_transaction::COHERENT && (xact.coherent_xact_type == svt_axi_transaction::WRITEUNIQUE || `ifdef SVT_ACE5_ENABLE xact.coherent_xact_type == svt_axi_transaction::WRITEUNIQUEPTLSTASH || xact.coherent_xact_type == svt_axi_transaction::WRITEUNIQUEFULLSTASH || `endif xact.coherent_xact_type == svt_axi_transaction::CLEANUNIQUE || xact.coherent_xact_type == svt_axi_transaction::MAKEUNIQUE || xact.coherent_xact_type == svt_axi_transaction::READUNIQUE || xact.coherent_xact_type == svt_axi_transaction::READCLEAN || xact.coherent_xact_type == svt_axi_transaction::READNOTSHAREDDIRTY || xact.coherent_xact_type == svt_axi_transaction::CLEANSHARED || xact.coherent_xact_type == svt_axi_transaction::CLEANINVALID|| xact.coherent_xact_type == svt_axi_transaction::READONCE ) ) |
|
|
((xact.coherent_xact_type == svt_axi_master_transaction::READUNIQUE)|| (xact.coherent_xact_type == svt_axi_master_transaction::CLEANUNIQUE)|| (xact.coherent_xact_type == svt_axi_master_transaction::CLEANINVALID)|| (xact.coherent_xact_type == svt_axi_master_transaction::WRITEUNIQUE) ) && ((snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID) ) || ( ((xact.coherent_xact_type == svt_axi_master_transaction::MAKEINVALID)|| (xact.coherent_xact_type == svt_axi_master_transaction::MAKEUNIQUE)|| (xact.coherent_xact_type == svt_axi_master_transaction::WRITELINEUNIQUE) ) && ((snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::MAKEINVALID) ) ) || ( ((xact.coherent_xact_type == svt_axi_master_transaction::CLEANSHARED) ) && ((snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANSHARED) ) ) || ( ((xact.coherent_xact_type == svt_axi_master_transaction::CLEANSHAREDPERSIST) ) && ((snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANSHARED) ) ) || ( ((xact.coherent_xact_type == svt_axi_master_transaction::READONCECLEANINVALID) ) && ((snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::READONCE) ) ) || ( ((xact.coherent_xact_type == svt_axi_master_transaction::READONCEMAKEINVALID) ) && ((snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::READONCE) ) ) || ( ((xact.coherent_xact_type == svt_axi_master_transaction::READCLEAN)|| (xact.coherent_xact_type == svt_axi_master_transaction::READSHARED)|| (xact.coherent_xact_type == svt_axi_master_transaction::READNOTSHAREDDIRTY) ) && ((snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::READCLEAN)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::READSHARED)|| (snoop.snoop_xact_type == svt_axi_snoop_transaction::READNOTSHAREDDIRTY) ) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::READONCE) && (snoop.snoop_xact_type != svt_axi_snoop_transaction::MAKEINVALID) ) |
|
|
2
| |
if define SVT_AXI_LOCK_WIDTH=1, also define SVT_AXI_LOCK_WIDTH_AS_ONE due to compilation warnings
|
|
|
0.01
|
|
|
0.01
|
|
|
16
|
|
|
10
|
|
|
|
|
6
|
|
|
6
|
|
|
8
|
|
|
4
|
|
|
|
|
4
|
|
|
|
|
64
|
|
|
128
|
|
|
64
|
|
|
6
|
|
|
6
|
|
|
8
|
|
|
4
|
|
|
16
|
|
|
4
|
|
|
10
|
|
|
32
|
|
|
64
|
|
|
10
|
|
|
16
|
|
|
|
|
10
|
|
|
16
|
|
|
8
|
|
|
1024
|
|
|
250
|
|
|
8
|
|
|
|
|
16
|
|
|
|
|
16
|
|
|
|
|
16
|
|
|
|
|
16
|
|
|
8
|
|
|
8
|
|
|
16
|
|
|
1
|
|
|
32
|
|
|
20
|
|
|
9
|
|
|
4
|
|
|
1024
|
|
|
4
|
|
|
128
|
|
|
10
|
|
|
128
|
|
|
|
|
|
|
|
|
|
|
16
|
|
|
4
|
|
|
8
|
|
|
1000
|
|
|
8192
|
|
|
|
|
|
|
64
|
|
|
64
|
|
|
256
|
|
|
1
|
|
|
2
|
|
|
(4*CEIL(SVT_AXI_MAX_DATA_WIDTH,128))
|
|
|
16
|
|
|
|
|
|
|
4
|
|
|
128
|
|
|
4
|
|
|
8
|
|
|
16
|
|
|
16
|
|
|
8
|
|
|
16
|
|
|
4
|
|
|
16
|
|
|
1
|
|
|
|
|
1000
|
|
|
8192
|
|
|
|
|
8
|
|
|
|
|
16
|
|
|
0
|
|
|
0
|
|
|
3
|
|
|
0
|
|
|
0
|
|
|
0
|
|
|
3
|
|
|
0
|
|
|
1
|
|
|
0
|
|
|
0.01
|
|
|
0.01
|
|
|
256
|
|
|
((SVT_AXI_MAX_DATA_WIDTH/8)> 8)?(8):(SVT_AXI_MAX_DATA_WIDTH/8)
|
|
|
4
|
|
|
ACE_VERSION_1_0
| |
Default value of port configuration attribute ace_version. User can change this value to ACE_VERSION_2_0 to use ACE5 features, along with defining compile time macro SVT_ACE5_ENABLE.
|
|
|
AXI3
|
|
|
3
|
|
|
4
|
|
|
10
|
|
|
10
|
|
|
10
|
|
|
4
|
|
|
4
|
|
|
3
|
|
|
0.01
|
|
|
0.01
|
|
|
5
|
|
|
11
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
3
|
|
|
2
|
|
|
|
|
3
|
|
|
3
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
3
|
|
|
3
|
|
|
1
|
|
|
1
|
|
|
3
|
|
|
3
|
|
|
1
|
|
|
1
|
|
|
3
|
|
|
3
|
|
|
3
|
|
|
3
|
|
|
3
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
3
|
|
|
3
|
|
|
1
|
|
|
1
|
|
|
3
|
|
|
3
|
|
|
3
|
|
|
3
|
|
|
3
|
|
|
1
|
|
|
1
|
|
|
|
|
12
|
|
|
|
|
100000
|
|
|
|
|
svt_axi_slave_agent
|
|
|
((dividend / divisor) + ((dividend % divisor) != 0)) |
|
|
|
|
`define var``_``val |
|
|
`ifdef SVT_UVM_TECHNOLOGY reporter `elsif SVT_OVM_TECHNOLOGY reporter `else log `endif |
|
|
32
|
|
|
1
|
|
|
2
|
|
|
0
|
|
|
3
|
|
|
2
|
|
|
3
|
|
|
2
|
|
|
2
|
|
|
1
|
|
|
0
|
|
|
1
|
|
|
0
|
|
|
2
|
|
|
128
|
|
|
|
|
|
|
|
|
|
|
1
|
|
|
1
|
|
|
3
|
|
|
2
|
|
|
15
|
|
|
7
|
|
|
11
|
|
|
14
|
|
|
6
|
|
|
10
|
|
|
0
|
|
|
1
|
|
|
0
|
|
|
3
|
|
|
2
|
|
|
11
|
|
|
15
|
|
|
15
|
|
|
11
|
|
|
10
|
|
|
14
|
|
|
14
|
|
|
10
|
|
|
1
|
|
|
0
|
|
|
3
|
|
|
2
|
|
|
7
|
|
|
7
|
|
|
15
|
|
|
15
|
|
|
6
|
|
|
6
|
|
|
14
|
|
|
14
|
|
|
|
|
|
|
$sformatf("{%0sOBJECT_NUM('d%0d) PORT_ID('d%0d) PORT_NAME(%0s) TYPE(%0s) ADDR('h%0x) SECURE('h%0h) RESP('h%0x)} ", (((xact != null) && (xact.object_info != ""))?$sformatf("OBJ_INFO(%0s) ", xact.object_info):""), ((xact != null)?xact.object_id:-1), (((xact != null)&&(xact.port_cfg!=null))?xact.port_cfg.port_id:-1), (((xact != null)&&(xact.port_cfg!=null))?xact.port_cfg.get_port_name():""), ((xact != null)?xact.snoop_xact_type.name:"null"), ((xact != null)?xact.snoop_addr:0), ((xact != null)?!xact.snoop_prot[1]:0), ((xact != null)?{xact.get_crresp_value()}:0)) |
|
|
0
|
|
|
( ( (sys_cfg.use_recommended_coherent_to_snoop_map == 1) && (SVT_AXI_RECOMMENDED_SNOOP_XACT(xact,snoop)) ) || ( (sys_cfg.use_recommended_coherent_to_snoop_map == 0) && (xact.get_xact_type() == svt_axi_master_transaction::COHERENT) && ( (SVT_AXI_LEGAL_SNOOP_MAPPING(xact,snoop)) ) ) ) |
|
|
1
|
|
|
4
|
|
|
2
|
|
|
0
|
|
|
1
|
|
|
3
|
|
|
17
|
|
|
8
|
|
|
9
|
|
|
10
|
|
|
11
|
|
|
12
|
|
|
13
|
|
|
14
|
|
|
15
|
|
|
0
|
|
|
1
|
|
|
2
|
|
|
3
|
|
|
4
|
|
|
5
|
|
|
6
|
|
|
7
|
|
|
16
|
|
|
0
|
|
|
4
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
13
|
|
|
|
3'b000
|
|
|
3'b101
|
|
|
3'b100
|
|
|
3'b111
|
|
|
3'b110
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
4
|
|
|
1
|
|
|
3
|
|
|
2
|
|
|
2
|
|
|
0
|
|
|
1
|
|
|
(xact_type == COHERENT) && ( (coherent_xact_type == READNOSNOOP) || (coherent_xact_type == READONCE) || (coherent_xact_type == READONCECLEANINVALID) || (coherent_xact_type == READONCEMAKEINVALID) || (coherent_xact_type == READSHARED) || (coherent_xact_type == READCLEAN) || (coherent_xact_type == READNOTSHAREDDIRTY) || (coherent_xact_type == READUNIQUE) || (coherent_xact_type == CLEANUNIQUE) || (coherent_xact_type == MAKEUNIQUE) || (coherent_xact_type == CLEANSHARED) || (coherent_xact_type == CLEANINVALID) || (coherent_xact_type == MAKEINVALID) || (coherent_xact_type == DVMCOMPLETE) || (coherent_xact_type == DVMMESSAGE) || (coherent_xact_type == READBARRIER) || (coherent_xact_type == CLEANSHAREDPERSIST) ) |
|
|
(xact.get_xact_type() == svt_axi_transaction::COHERENT) && ( (xact.coherent_xact_type == svt_axi_transaction::READONCE) || (xact.coherent_xact_type == svt_axi_transaction::READSHARED) || (xact.coherent_xact_type == svt_axi_transaction::READCLEAN) || (xact.coherent_xact_type == svt_axi_transaction::READNOTSHAREDDIRTY) || (xact.coherent_xact_type == svt_axi_transaction::READUNIQUE) || (xact.coherent_xact_type == svt_axi_transaction::CLEANUNIQUE) || (xact.coherent_xact_type == svt_axi_transaction::MAKEUNIQUE) || (xact.coherent_xact_type == svt_axi_transaction::CLEANSHARED) || (xact.coherent_xact_type == svt_axi_transaction::CLEANSHAREDPERSIST) || (xact.coherent_xact_type == svt_axi_transaction::READONCECLEANINVALID) || (xact.coherent_xact_type == svt_axi_transaction::READONCEMAKEINVALID) || (xact.coherent_xact_type == svt_axi_transaction::CLEANINVALID) || (xact.coherent_xact_type == svt_axi_transaction::MAKEINVALID) || (xact.coherent_xact_type == svt_axi_transaction::DVMCOMPLETE) || (xact.coherent_xact_type == svt_axi_transaction::DVMMESSAGE) || (xact.coherent_xact_type == svt_axi_transaction::READBARRIER) ) |
|
|
2
|
|
|
3
|
|
|
0
|
|
|
1
|
|
|
9
|
|
|
8
|
|
|
30
|
|
|
6
|
|
|
31
|
|
|
11
|
|
|
12
|
|
|
19
|
|
|
10
|
|
|
7
|
|
|
35
|
|
|
13
|
|
|
3
|
|
|
0
|
|
|
4
|
|
|
1
|
|
|
2
|
|
|
5
|
|
|
25
|
|
|
26
|
|
|
27
|
|
|
18
|
|
|
20
|
|
|
17
|
|
|
34
|
|
|
21
|
|
|
33
|
|
|
16
|
|
|
14
|
|
|
37
|
|
|
32
|
|
|
15
|
|
|
24
|
|
|
23
|
|
|
36
|
|
|
(xact_type == COHERENT) && ( (coherent_xact_type == WRITENOSNOOP) || (coherent_xact_type == WRITEUNIQUE) || `ifdef SVT_ACE5_ENABLE (coherent_xact_type == WRITEUNIQUEPTLSTASH) || (coherent_xact_type == WRITEUNIQUEFULLSTASH) || (coherent_xact_type == STASHONCEUNIQUE) || (coherent_xact_type == STASHONCESHARED) || (coherent_xact_type == STASHTRANSLATION) || (coherent_xact_type == CMO) || (coherent_xact_type == WRITEPTLCMO) || (coherent_xact_type == WRITEFULLCMO) || `ifdef SVT_AXI_WRITE_DEFERRABLE_INTERNAL_ENABLE (coherent_xact_type == WRITEDEFERRABLE) || `endif `ifdef SVT_AXI_PREFETCH_INTERNAL_ENABLE (coherent_xact_type == PREFETCH) || `endif `ifdef SVT_AXI_WRITE_ZERO_INTERNAL_ENABLE (coherent_xact_type == WRITEZERO) || `endif `ifdef SVT_AXI_WRITENOSNPFULL_XACT_INTERNAL_ENABLE (coherent_xact_type == WRITENOSNPFULL) || `endif `endif (coherent_xact_type == WRITELINEUNIQUE) || (coherent_xact_type == WRITEBACK) || (coherent_xact_type == WRITECLEAN) || (coherent_xact_type == WRITEBARRIER) || (coherent_xact_type == WRITEEVICT) || (coherent_xact_type == EVICT) ) |
|
|
(xact.get_xact_type() == svt_axi_transaction::COHERENT) && ( (xact.coherent_xact_type == svt_axi_transaction::WRITENOSNOOP) || (xact.coherent_xact_type == svt_axi_transaction::WRITEUNIQUE) || `ifdef SVT_ACE5_ENABLE (xact.coherent_xact_type == svt_axi_transaction::WRITEUNIQUEPTLSTASH) || (xact.coherent_xact_type == svt_axi_transaction::WRITEUNIQUEFULLSTASH) || (xact.coherent_xact_type == svt_axi_transaction::STASHONCESHARED) || (xact.coherent_xact_type == svt_axi_transaction::STASHONCEUNIQUE) || (xact.coherent_xact_type == svt_axi_transaction::STASHTRANSLATION) || `endif (xact.coherent_xact_type == svt_axi_transaction::WRITELINEUNIQUE) || (xact.coherent_xact_type == svt_axi_transaction::WRITEBACK) || (xact.coherent_xact_type == svt_axi_transaction::WRITECLEAN) || (xact.coherent_xact_type == svt_axi_transaction::WRITEBARRIER) || (xact.coherent_xact_type == svt_axi_transaction::WRITEEVICT) || (xact.coherent_xact_type == svt_axi_transaction::EVICT) ) |
|
|
0
|
|
|
3'b010
|
|
|
3'b011
|
|
|
3'b000
|
|
|
3'b001
|
|
|
'b11
|
|
|
1
|
|
|
0
|
|
|
2
|
|
|
3
|
|
|
14
|
|
|
13
|
|
|
12
|
|
|
11
|
|
|
10
|
|
|
9
|
|
|
8
|
|
|
0
|
|
|
2
|
|
|
1
|
|
|
0
|
|
|
(((cfg.get_axi_interface_type() == svt_axi_port_configuration::AXI3 || cfg.get_axi_interface_type() == svt_axi_port_configuration::AXI4)&& (xact.get_xact_type() != svt_axi_transaction::IDLE)) || ((cfg.get_axi_interface_type() == svt_axi_port_configuration::ACE_LITE || cfg.get_axi_interface_type() == svt_axi_port_configuration::AXI_ACE) && `ifdef SVT_ACE5_ENABLE (xact.get_xact_type() == svt_axi_transaction::ATOMIC) || `endif (xact.get_xact_type() == svt_axi_transaction::COHERENT && (xact.coherent_xact_type == svt_axi_transaction::WRITENOSNOOP || `ifdef SVT_ACE5_ENABLE xact.coherent_xact_type == svt_axi_transaction::WRITEPTLCMO || xact.coherent_xact_type == svt_axi_transaction::WRITEFULLCMO || `ifdef SVT_AXI_WRITE_DEFERRABLE_INTERNAL_ENABLE xact.coherent_xact_type == svt_axi_transaction::WRITEDEFERRABLE || `endif `ifdef SVT_AXI_WRITE_ZERO_INTERNAL_ENABLE xact.coherent_xact_type == svt_axi_transaction::WRITEZERO || `endif `endif xact.coherent_xact_type == svt_axi_transaction::READNOSNOOP ) ) ) ) |
|
|
'b01
|
|
|
|
|
17
|
|
|
1
|
|
|
11
|
|
|
10
|
|
|
8
|
|
|
9
|
|
|
`ifdef SVT_VMM_TECHNOLOGY xact.notify.timestamp(vmm_data::ENDED) `else xact.get_end_realtime() `endif |
|
|
`ifdef SVT_VMM_TECHNOLOGY xact.notify.timestamp(vmm_data::STARTED) `else xact.get_begin_realtime() `endif |
|
|
svt_axi_ic_modport
|
|
|
svt_axi_ic_modport
|
|
|
1
|
|
|
0
|
|
|
2
|
|
|
5
|
|
|
3
|
|
|
4
|
|
|
1
|
|
|
0
|
|
|
4
|
|
|
5
|
|
|
2
|
|
|
3
|
|
|
3'b110
|
|
|
3'b111
|
|
|
3'b100
|
|
|
3'b101
|
|
|
4
|
|
|
5
|
|
|
0
|
|
|
1
|
|
|
2
|
|
|
3
|
|
|
2
|
|
|
1
|
|
|
12
|
|
|
(obj.get_xact_type() == svt_axi_transaction::DATA_STREAM) |
|
|
((obj.xact_type == svt_axi_transaction::READ) || ((obj.xact_type == svt_axi_transaction::COHERENT) && ((obj.coherent_xact_type == svt_axi_transaction::READNOSNOOP) || (obj.coherent_xact_type == svt_axi_transaction::READONCE) || (obj.coherent_xact_type == svt_axi_transaction::READSHARED) || (obj.coherent_xact_type == svt_axi_transaction::READCLEAN) || (obj.coherent_xact_type == svt_axi_transaction::READNOTSHAREDDIRTY) || (obj.coherent_xact_type == svt_axi_transaction::READUNIQUE) || (obj.coherent_xact_type == svt_axi_transaction::CLEANUNIQUE) || (obj.coherent_xact_type == svt_axi_transaction::MAKEUNIQUE) || (obj.coherent_xact_type == svt_axi_transaction::CLEANSHARED) || (obj.coherent_xact_type == svt_axi_transaction::CLEANSHAREDPERSIST) || (obj.coherent_xact_type == svt_axi_transaction::READONCECLEANINVALID) || (obj.coherent_xact_type == svt_axi_transaction::READONCEMAKEINVALID) || (obj.coherent_xact_type == svt_axi_transaction::CLEANINVALID) || (obj.coherent_xact_type == svt_axi_transaction::MAKEINVALID) || (obj.coherent_xact_type == svt_axi_transaction::DVMCOMPLETE) || (obj.coherent_xact_type == svt_axi_transaction::DVMMESSAGE) || (obj.coherent_xact_type == svt_axi_transaction::READBARRIER ) ) ) ) |
|
|
((obj.xact_type == svt_axi_transaction::WRITE) || ((obj.xact_type == svt_axi_transaction::COHERENT) && ((obj.coherent_xact_type == svt_axi_transaction::WRITENOSNOOP) || (obj.coherent_xact_type == svt_axi_transaction::WRITEUNIQUE) || `ifdef SVT_ACE5_ENABLE (obj.coherent_xact_type == svt_axi_transaction::WRITEUNIQUEPTLSTASH) || (obj.coherent_xact_type == svt_axi_transaction::WRITEUNIQUEFULLSTASH) || (obj.coherent_xact_type == svt_axi_transaction::STASHONCESHARED) || (obj.coherent_xact_type == svt_axi_transaction::STASHONCEUNIQUE) || (obj.coherent_xact_type == svt_axi_transaction::STASHTRANSLATION) || `endif (obj.coherent_xact_type == svt_axi_transaction::WRITELINEUNIQUE) || (obj.coherent_xact_type == svt_axi_transaction::WRITECLEAN) || (obj.coherent_xact_type == svt_axi_transaction::WRITEBACK) || (obj.coherent_xact_type == svt_axi_transaction::WRITEEVICT) || (obj.coherent_xact_type == svt_axi_transaction::EVICT) || (obj.coherent_xact_type == svt_axi_transaction::WRITEBARRIER) ) ) `ifdef SVT_ACE5_ENABLE || ((obj.xact_type == svt_axi_transaction::ATOMIC) && ((obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_ADD) || (obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_CLR) || (obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_EOR) || (obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_SET) || (obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_SMAX) || (obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_SMIN) || (obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_UMAX) || (obj.atomic_xact_op_type == svt_axi_transaction::ATOMICSTORE_UMIN) ) ) `endif ) |
|
|
1
|
|
|
2
|
|
|
2
|
|
|
3
|
|
|
3
|
|
|
1'b0
|
|
|
0
|
|
|
svt_axi_master_if
|
|
|
0
|
|
|
0
|
|
|
3
|
|
|
2
|
|
|
0
|
|
|
6
|
|
|
1
|
|
|
0
|
|
|
4
|
|
|
1
|
|
|
0
|
|
|
2
|
|
|
4
|
|
|
3
|
|
|
5
|
|
|
svt_axi_master_transaction_scenario
|
|
|
svt_axi_master_transaction
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
1
|
|
|
16
|
|
|
16
|
|
|
1
|
|
|
5
|
|
|
$sformatf("{OBJECT_NUM('d%0d) PORT_ID('d%0d) PORT_NAME(%0s) TYPE(%0s) COHERENT_XACT_TYPE(%0s) ID('h%0x) SECURE('d%0d) ADDR('h%0x) } ", ((xact != null)?xact.object_id:-1), ((xact != null)?xact.port_id:-1), (((xact != null)&&(xact.port_cfg!=null))?xact.port_cfg.get_port_name():""), ((xact != null)?xact.xact_type.name:"null"), ((xact != null)?xact.coherent_xact_type.name:"null"), ((xact != null)?xact.id:0), ((xact != null)?!xact.prot_type[1]:0), ((xact != null)?xact.addr:0)) |
|
|
1'b1
|
|
|
0
|
|
|
2
|
|
|
0
|
|
|
7
|
|
|
6
|
|
|
5
|
|
|
4
|
|
|
3
|
|
|
2
|
|
|
1
|
|
|
64
|
|
|
'b00
|
|
|
1
|
|
|
$sformatf("{%0sOBJECT_NUM('d%0d) PORT_ID('d%0d) %0s PORT_NAME(%0s) TYPE(%0s)%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s}", (((xact != null) && (xact.object_info != ""))?$sformatf("OBJ_INFO(%0s) ", xact.object_info):""), ((xact != null)?xact.object_id:-1), ((xact != null)?xact.port_id:-1), ((xact != null)?((xact.xact_type.name!="DATA_STREAM")?($sformatf("AUTO_GENERATED_XACT('b%0b)",xact.is_auto_generated)):""):""), (((xact != null)&&(xact.port_cfg!=null))?xact.port_cfg.get_port_name():""), ((xact != null)?xact.xact_type.name:"null"), ((xact != null && xact.xact_type == svt_axi_transaction::WRITE)?($sformatf(" WLAST('b%0b)",xact.is_last_write_data_beat)):""), ((xact != null) && (xact.xact_type == svt_axi_transaction::READ)?($sformatf(" RLAST('b%0b)",xact.is_last_read_data_beat)):""), ((xact != null && xact.get_transmitted_channel() == svt_axi_transaction::WRITE)?($sformatf(" DATA_BEFORE_ADDR('b%0b)",xact.data_before_addr)):""), ((xact != null)?((xact.xact_type == svt_axi_transaction::COHERENT)?{$sformatf(" COHERENT_XACT_TYPE(%0s)",xact.coherent_xact_type.name)}:""):""), ((xact != null && xact.xact_type.name == "DATA_STREAM")?($sformatf(" TID('h%0x)",xact.tid)):""), ((xact != null && xact.xact_type.name == "DATA_STREAM")?($sformatf(" TDEST('h%0x)",xact.tdest)):""), ((xact != null && xact.xact_type.name != "DATA_STREAM")?($sformatf(" ID('h%0x)",xact.id)):""), ((xact != null && xact.xact_type.name != "DATA_STREAM")?($sformatf(" PROT_TYPE(%0s)",xact.prot_type.name)):""), ((xact != null && xact.xact_type.name != "DATA_STREAM")?($sformatf(" ADDR('h%0x)",xact.addr)):""), ((xact != null && xact.xact_type.name != "DATA_STREAM")?($sformatf(" BURST(%0s)",xact.burst_type.name)):""), ((xact != null && xact.xact_type.name != "DATA_STREAM")?($sformatf(" SIZE(%0s)",xact.burst_size.name)):""), ((xact != null)?((xact.xact_type.name!="DATA_STREAM")?($sformatf(" LENGTH('d%0d)",xact.burst_length)):($sformatf(" LENGTH('d%0d)",xact.stream_burst_length))):""), ((xact != null && xact.xact_type.name != "DATA_STREAM")?($sformatf(" CACHE_TYPE('d%0d)",xact.cache_type)):"")) |
|
|
3
|
|
|
4
|
|
|
0
|
|
|
1
|
|
|
2
|
|
|
3
|
|
|
0
|
|
|
'b100
|
|
|
|
|
$sformatf("%0s('d%0d) : {TYPE(%0s) ID('h%0x) ADDR('h%0x)}", SVT_DATA_UTIL_ARG_TO_STRING(function_name), ((xact != null)?xact.object_id:-1), ((xact != null)?xact.xact_type.name:"null"), ((xact != null)?xact.id:0), ((xact != null)?xact.addr:0)) |
|
|
$sformatf("{%0sOBJECT_NUM('d%0d) PORT_ID('d%0d) %0s PORT_NAME(%0s) TYPE(%0s)%0s%0s LENGTH('h%0h)%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s%0s} ", (((xact != null) && (xact.object_info != ""))?$sformatf("OBJ_INFO(%0s) ", xact.object_info):""), ((xact != null)?xact.object_id:-1), ((xact != null)?xact.port_id:-1), ((xact != null)?((xact.xact_type.name!="DATA_STREAM")?($sformatf("AUTO_GENERATED_XACT('b%0b)",xact.is_auto_generated)):""):""), (((xact != null)&&(xact.port_cfg!=null))?xact.port_cfg.get_port_name():""), ((xact != null)?xact.xact_type.name:"null"), ((xact != null)?((xact.xact_type.name!="DATA_STREAM")?($sformatf(" BURST(%0s)",xact.burst_type.name)):""):""), ((xact != null)?((xact.xact_type.name!="DATA_STREAM")?($sformatf(" SIZE(%0s)",xact.burst_size.name)):""):""), ((xact != null)?((xact.xact_type.name!="DATA_STREAM")?xact.burst_length:xact.stream_burst_length):0), ((xact != null && xact.xact_type == svt_axi_transaction::WRITE)?($sformatf(" WLAST('b%0b)",xact.is_last_write_data_beat)):""), ((xact != null) && (xact.xact_type == svt_axi_transaction::READ)?($sformatf(" RLAST('b%0b)",xact.is_last_read_data_beat)):""), ((xact != null && xact.get_transmitted_channel() == svt_axi_transaction::WRITE)?($sformatf(" DATA_BEFORE_ADDR('b%0b)",xact.data_before_addr)):""), ((xact != null)?((xact.xact_type == svt_axi_transaction::COHERENT)?{$sformatf(" COHERENT_XACT_TYPE(%0s)",xact.coherent_xact_type.name)}:""):""), ((xact != null && xact.xact_type.name!="DATA_STREAM")?($sformatf(" ID('h%0x)",xact.id)):""), ((xact != null && xact.xact_type.name!="DATA_STREAM")?($sformatf(" SECURE('h%0h)",!xact.prot_type[1])):""), ((xact != null && xact.xact_type.name!="DATA_STREAM")?($sformatf(" ADDR('h%0x)",xact.addr)):""), ((xact != null && xact.xact_type.name!="DATA_STREAM")?($sformatf(" CACHE_TYPE('h%0h)",xact.cache_type)):""), ((xact != null && xact.xact_type.name == "DATA_STREAM")?($sformatf(" TID('h%0x)",xact.tid)):""), ((xact != null && xact.xact_type.name == "DATA_STREAM")?($sformatf(" TDEST('h%0x)",xact.tdest)):""), ((xact != null)?(xact.atomic_type==svt_axi_transaction::EXCLUSIVE)?" EXCL":"":""), ((xact != null)?((xact.get_begin_time()==-1)?"":($sformatf(" START_TIME(%0t)",xact.get_begin_realtime()))):""), ((xact != null)?((xact.get_end_time()==-1)?"":($sformatf(" END_TIME(%0t)",xact.get_end_realtime()))):"")) |
|
|
0
|
|
|
1
|
|
|
2
|
|
|
0
|
|
|
0
|
|
|
1
|
|
|
3
|
|
|
5
|
|
|
1
|
|
|
1
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
( (xact.get_xact_type() == svt_axi_master_transaction::COHERENT) && ( ( (xact.coherent_xact_type == svt_axi_master_transaction::READONCE) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::READONCE) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::WRITEUNIQUE) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::CLEANSHARED) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANSHARED) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::CLEANSHAREDPERSIST) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANSHARED) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::READONCECLEANINVALID) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::READONCEMAKEINVALID) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::CLEANINVALID) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::MAKEINVALID) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::MAKEINVALID) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::READCLEAN) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::READCLEAN) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::READNOTSHAREDDIRTY) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::READNOTSHAREDDIRTY) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::READSHARED) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::READSHARED) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::READUNIQUE) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::READUNIQUE) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::CLEANUNIQUE) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::CLEANINVALID) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::MAKEUNIQUE) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::MAKEINVALID) ) || ( (xact.coherent_xact_type == svt_axi_master_transaction::WRITELINEUNIQUE) && (snoop.snoop_xact_type == svt_axi_snoop_transaction::MAKEINVALID) ) ) ) |
|
|
2
|
|
|
2
|
|
|
1
|
|
|
0
|
|
|
1
|
|
|
2
|
|
|
2
|
|
|
`define var``_``val |
|
|
0
|
|
|
3
|
|
|
1
|
|
|
svt_axi_slave_if
|
|
|
1
|
|
|
0
|
|
|
6
|
|
|
0
|
|
|
5
|
|
|
3
|
|
|
2
|
|
|
4
|
|
|
1
|
|
|
0
|
|
|
svt_axi_slave_transaction_scenario_gen_callbacks
|
|
|
svt_axi_slave_transaction_scenario_gen
|
|
|
svt_axi_slave_transaction_scenario
|
|
|
svt_axi_slave_transaction
|
|
|
4
|
|
|
'b10
|
|
|
16
|
|
|
1
|
|
|
2
|
|
|
4
|
|
|
8
|
|
|
0
|
|
|
1
|
|
|
5
|
|
|
0
|
|
|
2
|
|
|
1
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
2
|
|
|
1
|
|
|
9
|
|
|
8
|
|
|
14
|
|
|
15
|
|
|
13
|
|
|
2
|
|
|
3
|
|
|
0
|
|
|
1
|
|
|
7
|
|
|
|
|
128
|
|
|
16
|
|
|
512
|
|
|
$sformatf("{%0sOBJECT_NUM('d%0d) PORT_ID('d%0d) PORT_NAME(%0s) TYPE(%0s) BURST_LENGTH('d%0d) TID('h%0x) TDEST('h%0x)%0s%0s} ", (((xact != null) && (xact.object_info != ""))?$sformatf("OBJ_INFO(%0s) ", xact.object_info):""), ((xact != null)?xact.object_id:-1), ((xact != null)?xact.port_id:-1), (((xact != null) && (xact.port_cfg!=null))?xact.port_cfg.get_port_name():""), ((xact != null)?xact.xact_type.name:"null"), ((xact != null)?xact.stream_burst_length:0), ((xact != null)?xact.tid:0), ((xact != null)?xact.tdest:0), ((xact != null)?((xact.get_begin_time()==-1)?"":($sformatf(" START_TIME(%0t)",xact.get_begin_realtime()))):""), ((xact != null)?((xact.get_end_time()==-1)?"":($sformatf(" END_TIME(%0t)",xact.get_end_realtime()))):"")) |
|
|
0
|
|
|
1
|
|
|
2
|
|
|
3
|
|
|
4
|
|
|
3
|
|
|
1
|
|
|
0
|
|
|
1
|
|
|
7
|
|
|
4
|
|
|
1
|
|
|
8
|
|
|
5
|
|
|
2
|
|
|
9
|
|
|
6
|
|
|
3
|
|
|
0
|
|
|
2
|
|
|
4
|
|
|
7
|
|
|
6
|
|
|
1
|
|
|
0
|
|
|
2
|
|
|
0
|
|
|
0
|
|
|
4
|
|
|
3
|
|
|
2
|
|
|
1
|
|
|
5
|
|
|
3
|
|
|
2
|
|
|
0
|
|
|
6
|
|
|
1
|
|
|
'b101
|
|
|
3
|
|
|
4
|
|
|
2
|
|
|
0
|
|
|
5
|
|
|
1
|
|
|
'b111
|
|
|
1
|
|
|
1
|
|
|
7
|
|
|
1
|
|
|
|
|
`define SVT_AXI_VALID_MASTER_IDX_0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`define SVT_AXI_VALID_SLAVE_IDX_0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10
|
|
|
12
|
|
|
14
|
|
|
15
|
|
|
2,4,8,16
|
|
|
|
|
0
|
|
|
1
|
|
|
2
|
|
|
0
|
|
|
0
|
|
|
1
|
|
|
16
|
|
|
0
|
|
|
3
|
|
|
2
|
|
|
5
|
|
|
17
|
|
|
4
|
|
|
7
|
|
|
6
|
|
|
9
|
|
|
18
|
|
|
11
|
|
|
10
|
|
|
13
|
|
|
19
|
|
|
12
|
|
|
15
|
|
|
14
|
|
|
8
|
|
|
2
|
|
|
0
|
|
|
1
|
|
|
1
|
|
|
( ( ( (this_xact.port_cfg.axi_interface_type == svt_axi_port_configuration::AXI_ACE) || (this_xact.port_cfg.axi_interface_type == svt_axi_port_configuration::ACE_LITE) ) && (this_xact.is_coherent_xact_dropped == 1) ) || ( (this_xact.port_cfg.axi_interface_type == svt_axi_port_configuration::AXI_ACE) && ( (this_xact.ack_status == svt_axi_transaction::ACCEPT) || (this_xact.ack_status == svt_axi_transaction::ABORTED) ) ) || ( (this_xact.port_cfg.axi_interface_type != svt_axi_port_configuration::AXI_ACE) && (SVT_AXI_IS_TRANSMITTED_CHANNEL_WRITE(this_xact)) && ( ( (this_xact.write_resp_status == svt_axi_transaction::ACCEPT) || (this_xact.write_resp_status == svt_axi_transaction::ABORTED) ) ) ) || `ifdef SVT_ACE5_ENABLE ( (this_xact.port_cfg.axi_interface_type != svt_axi_port_configuration::AXI_ACE) && (`SVT_AXI_IS_TRANSMITTED_CHANNEL_READ_WRITE(this_xact)) && ( ( (this_xact.write_resp_status == svt_axi_transaction::ACCEPT) || (this_xact.write_resp_status == svt_axi_transaction::ABORTED) || (this_xact.atomic_read_data_status == svt_axi_transaction::ACCEPT) || (this_xact.atomic_read_data_status == svt_axi_transaction::ABORTED) ) ) ) || `endif ( (this_xact.port_cfg.axi_interface_type != svt_axi_port_configuration::AXI_ACE) && (SVT_AXI_IS_TRANSMITTED_CHANNEL_READ(this_xact)) && ( ( (this_xact.data_status == svt_axi_transaction::ACCEPT) || (this_xact.data_status == svt_axi_transaction::ABORTED) ) ) ) ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1
|
|
|
2
|
|
|
1
|
|
|
3
|
|
|
1
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
`ifdef SVT_UVM_TECHNOLOGY uvm_object_utils(obj) `elsif SVT_OVM_TECHNOLOGY `ovm_object_utils(obj) `endif |
|
|
|
`ifdef SVT_UVM_TECHNOLOGY uvm_``str `elsif SVT_OVM_TECHNOLOGY ovm_``str `endif |
|
|
INACTIVE_CHAN_LOW_VAL, INACTIVE_CHAN_HIGH_VAL, INACTIVE_CHAN_PREV_VAL, INACTIVE_CHAN_X_VAL , INACTIVE_CHAN_Z_VAL , INACTIVE_CHAN_RAND_VAL
|
|
|
`ifdef SVT_AMBA_DATA_UTIL_ENABLE_INTERNAL_MESSAGING svt_debug(id, msg) `else do begin end while(0) `endif |
|
|
svt_err_check_stats
|
|
|
|
2
|
|
|
6
|
|
|
slave_0,slave_1,slave_2,slave_3,slave_4,slave_5
|
|
|
`ifdef SVT_AMBA_DATA_UTIL_ENABLE_INTERNAL_MESSAGING svt_verbose(id, msg) `else do begin end while(0) `endif |
|
|
|
|
50
|
|
|
100
|
|
|
1
|
|
|
[0:10]
|
|
|
0:=96,1:=4
|
|
|
1
|
|
|
0
|
|
|
2
|
|
|
5
|
|
|
3
|
|
|
4
|
|
|
0
|
|
|
1
|
|
|
0
|
|
|
if (`SVT_ATB_MASTER_IS_SIGNAL_ENABLED(atb_signal_enable)) begin if(!($cast(prop_name,observed_val))) svt_fatal("Failed when attempting to cast"); end else prop_name = default_val; |
|
|
0.1
|
|
|
0.1
|
|
|
5,15,20
|
|
|
10:=40,[15:30]:/60
|
|
|
50
|
|
|
1
|
|
|
20
|
|
|
if ((port_cfg != null) && (port_cfg.``enablefieldwdth > 0)) begin `SVT_DATA_UTIL_COMPARE_BITVEC_SLICE(fieldname,fieldmaxwidth,port_cfg.``enablefieldwdth``-1,0) end else begin `SVT_DATA_UTIL_COMPARE_BITVEC(fieldname) end | |
Transaction Class Macros definition and utility methods definition
|
|
|
if ((port_cfg != null) && (port_cfg.``enablefieldwdth > 0)) begin `SVT_DATA_UTIL_COMPARE_BITVEC_SLICE_ARRAY(fieldname,fieldname.size(),fieldmaxwidth,port_cfg.``enablefieldwdth``-1,0) end else begin `SVT_DATA_UTIL_COMPARE_INT_SIZE_ARRAY(fieldname) end |
|
|
((1<<SVT_ATB_MAX_ADDR_WIDTH)-1)
|
|
|
32
|
|
|
4
|
|
|
16
|
|
|
2
|
|
|
16
|
|
|
32
|
|
|
7
|
|
|
1
|
|
|
16
|
|
|
16
|
|
|
2
|
|
|
32
|
|
|
7
|
|
|
0.1
|
|
|
0.1
|
|
|
3
|
|
|
$sformatf("{TYPE(%0s) OBJ_ID('d%0d) ID('h%0x)}", ((xact != null)?xact.xact_type.name:"null"), ((xact != null)?xact.object_id:-1), ((xact != null)?xact.id:0)) |
|
|
7'h0, [7'h70 : 7'h7C], 7'h7E, 7'h7F
|
|
|
driver_mp.atb_master_cb.atid <= {SVT_ATB_MAX_ID_WIDTH{1'b``enable_sig_val}}; driver_mp.atb_master_cb.atdata <= {SVT_ATB_MAX_DATA_WIDTH{1'b``enable_sig_val}}; driver_mp.atb_master_cb.atbytes <= {SVT_ATB_MAX_DATA_VALID_BYTES_WIDTH{1'b``enable_sig_val}}; |
|
|
1
|
|
|
0.1
|
|
|
0.1
|
|
|
[50:90]
|
|
|
5:=40,15:=30,20:=30
|
|
|
10:=1,[11:30]:=4,[31:50]:=50,[51:150]:=45
|
|
|
5:=40,[6:20]:/60
|
|
|
10:=40,[15:30]:/60
|
|
|
2
|
|
|
[0:10]
|
|
|
0:=97,1:=3
|
|
|
if ((port_cfg != null) && (port_cfg.``enablefieldwdth > 0)) begin `SVT_DATA_UTIL_COMPARE_BITVEC_SLICE(fieldname,fieldmaxwidth,port_cfg.``enablefieldwdth``-1,0) end else begin `SVT_DATA_UTIL_COMPARE_BITVEC(fieldname) end | |
Transaction Class Macros definition and utility methods definition
|
|
|
if ((port_cfg != null) && (port_cfg.``enablefieldwdth > 0)) begin `SVT_DATA_UTIL_COMPARE_BITVEC_SLICE_ARRAY(fieldname,fieldname.size(),fieldmaxwidth,port_cfg.``enablefieldwdth``-1,0) end else begin `SVT_DATA_UTIL_COMPARE_INT_SIZE_ARRAY(fieldname) end |
|
|
1
|
|
|
1
|
|
|
0
|
|
|
0
|
|
|
1
|
|
|
0
|
|
|
3
|
|
|
2
|
|
|
7'h7D
|
|
|
|
|
`define SVT_ATB_VALID_MASTER_IDX_0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`define SVT_ATB_VALID_SLAVE_IDX_0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[7'h01 : 7'h6F]
|
|
|
2
|
|
|
28
|
|
|
29
|
|
|
0
|
|
|
|
|
8
| |
@groupname
|
|
|
|
|
8
| |
@groupname
|
|
|
|
|
|
|
1
|
|
|
32
|
|
|
4
|
|
|
16
|
|
|
0
|
|
|
0
|
|
|
EXCLUDE_UNSTARTED_XACT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32
|