[xbar/dv] Support unmapped addr and add tests 1. update random seq framework 2. update scb to support unmapped addr 3. add tests - xbar_access_same_device - xbar_same_source - xbar_error_test: test d_error from device and disable protocol related constraint - xbar_unmapped_addr
diff --git a/hw/ip/tlul/dv/env/xbar_env_cfg.sv b/hw/ip/tlul/dv/env/xbar_env_cfg.sv index 2ca7a9b..ad85e3e 100644 --- a/hw/ip/tlul/dv/env/xbar_env_cfg.sv +++ b/hw/ip/tlul/dv/env/xbar_env_cfg.sv
@@ -9,18 +9,23 @@ rand tl_agent_cfg host_agent_cfg[]; rand tl_agent_cfg device_agent_cfg[]; - int num_of_hosts; - int num_of_devices; - uint min_req_delay = 0; - uint max_req_delay = 20; - uint min_rsp_delay = 0; - uint max_rsp_delay = 20; + uint num_hosts; + uint num_devices; + uint num_enabled_hosts; + uint min_host_req_delay = 0; + uint max_host_req_delay = 20; + uint min_host_rsp_delay = 0; + uint max_host_rsp_delay = 20; + uint min_device_req_delay = 0; + uint max_device_req_delay = 20; + uint min_device_rsp_delay = 0; + uint max_device_rsp_delay = 20; `uvm_object_utils_begin(xbar_env_cfg) `uvm_field_array_object(host_agent_cfg, UVM_DEFAULT) `uvm_field_array_object(device_agent_cfg, UVM_DEFAULT) - `uvm_field_int(num_of_hosts, UVM_DEFAULT) - `uvm_field_int(num_of_devices, UVM_DEFAULT) + `uvm_field_int(num_hosts, UVM_DEFAULT) + `uvm_field_int(num_devices, UVM_DEFAULT) `uvm_object_utils_end `uvm_object_new @@ -29,22 +34,21 @@ bit [TL_AW-1:0] csr_addr_map_size = 2048); has_ral = 0; // no csr in xbar // Host TL agent cfg - num_of_hosts = xbar_hosts.size(); - host_agent_cfg = new[num_of_hosts]; + num_hosts = xbar_hosts.size(); + num_enabled_hosts = xbar_hosts.size(); + host_agent_cfg = new[num_hosts]; foreach (host_agent_cfg[i]) begin host_agent_cfg[i] = tl_agent_cfg::type_id:: create($sformatf("%0s_agent_cfg", xbar_hosts[i].host_name)); host_agent_cfg[i].is_host = 1; - host_agent_cfg[i].use_seq_item_a_valid_delay = 1; end // Device TL agent cfg - num_of_devices = xbar_devices.size(); - device_agent_cfg = new[num_of_devices]; + num_devices = xbar_devices.size(); + device_agent_cfg = new[num_devices]; foreach (device_agent_cfg[i]) begin device_agent_cfg[i] = tl_agent_cfg::type_id:: create($sformatf("%0s_agent_cfg", xbar_devices[i].device_name)); device_agent_cfg[i].is_host = 0; - device_agent_cfg[i].use_seq_item_d_valid_delay = 1; end endfunction endclass