blob: bd73b8ec6bef129e3b45d0168e9252a635118a29 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// ---------------------------------------------
// Xbar environment package
// ---------------------------------------------
package xbar_env_pkg;
import uvm_pkg::*;
import tl_agent_pkg::*;
typedef struct {
string device_name;
bit [top_pkg::TL_AW-1 : 0] start_address;
bit [top_pkg::TL_AW-1 : 0] end_address;
} tl_device_t;
typedef struct {
string host_name;
int host_id;
string valid_devices[$];
} tl_host_t;
`include "xbar_params.svh"
function automatic int get_host_id(string name);
foreach (xbar_hosts[i]) begin
if (xbar_hosts[i].host_name == name) return i;
end
return -1;
endfunction
function automatic bit is_valid_path(string host_name, string device_name);
foreach (xbar_hosts[i]) begin
if (xbar_hosts[i].host_name == host_name) begin
foreach (xbar_hosts[i].valid_devices[j]) begin
if (xbar_hosts[i].valid_devices[j] == device_name)
return 1;
end
end
end
return 0;
endfunction
`include "xbar_vseqr.sv"
`include "xbar_scoreboard.sv"
`include "xbar_env_cfg.sv"
`include "xbar_env.sv"
endpackage