Add new hierarchy cva6_pipeline (cva6 without L1 caches)

This commit is contained in:
Casamatta Yannick 2025-02-20 14:54:48 +01:00 committed by JeanRochCoulon
parent 9bba417f01
commit 052fa737bb
7 changed files with 1986 additions and 1723 deletions

View file

@ -117,6 +117,7 @@ ${CVA6_REPO_DIR}/vendor/pulp-platform/obi/src/obi_xbar.sv
// Top-level source files (not necessarily instantiated at the top of the cva6).
${CVA6_REPO_DIR}/core/cva6.sv
${CVA6_REPO_DIR}/core/cva6_pipeline.sv
${CVA6_REPO_DIR}/core/cva6_rvfi_probes.sv
${CVA6_REPO_DIR}/core/alu.sv
// Note: depends on fpnew_pkg, above

File diff suppressed because it is too large Load diff

1496
core/cva6_pipeline.sv Normal file

File diff suppressed because it is too large Load diff

View file

@ -756,8 +756,6 @@ ariane_axi::resp_t axi_ariane_resp;
ariane #(
.CVA6Cfg ( CVA6Cfg ),
.rvfi_probes_instr_t ( rvfi_probes_instr_t ),
.rvfi_probes_csr_t ( rvfi_probes_csr_t ),
.rvfi_probes_t ( rvfi_probes_t )
) i_ariane (
.clk_i ( clk ),

View file

@ -16,8 +16,6 @@
module ariane import ariane_pkg::*; #(
parameter config_pkg::cva6_cfg_t CVA6Cfg = config_pkg::cva6_cfg_empty,
parameter type rvfi_probes_instr_t = logic,
parameter type rvfi_probes_csr_t = logic,
parameter type rvfi_probes_t = struct packed {
logic csr;
logic instr;
@ -70,28 +68,8 @@ module ariane import ariane_pkg::*; #(
cvxif_resp_t cvxif_resp;
cva6 #(
.CVA6Cfg ( CVA6Cfg ),
.rvfi_probes_instr_t ( rvfi_probes_instr_t ),
.rvfi_probes_csr_t ( rvfi_probes_csr_t ),
.rvfi_probes_t ( rvfi_probes_t ),
.axi_ar_chan_t (axi_ar_chan_t),
.axi_aw_chan_t (axi_aw_chan_t),
.axi_w_chan_t (axi_w_chan_t),
.noc_req_t (noc_req_t),
.noc_resp_t (noc_resp_t),
.readregflags_t (readregflags_t),
.writeregflags_t (writeregflags_t),
.id_t (id_t),
.hartid_t (hartid_t),
.x_compressed_req_t (x_compressed_req_t),
.x_compressed_resp_t (x_compressed_resp_t),
.x_issue_req_t (x_issue_req_t),
.x_issue_resp_t (x_issue_resp_t),
.x_register_t (x_register_t),
.x_commit_t (x_commit_t),
.x_result_t (x_result_t),
.cvxif_req_t (cvxif_req_t),
.cvxif_resp_t (cvxif_resp_t)
.CVA6Cfg ( CVA6Cfg ),
.rvfi_probes_t ( rvfi_probes_t )
) i_cva6 (
.clk_i ( clk_i ),
.rst_ni ( rst_ni ),

View file

@ -628,11 +628,7 @@ module ariane_testharness #(
ariane #(
.CVA6Cfg ( CVA6Cfg ),
.rvfi_probes_instr_t ( rvfi_probes_instr_t ),
.rvfi_probes_csr_t ( rvfi_probes_csr_t ),
.rvfi_probes_t ( rvfi_probes_t ),
.noc_req_t ( ariane_axi::req_t ),
.noc_resp_t ( ariane_axi::resp_t )
.rvfi_probes_t ( rvfi_probes_t )
) i_ariane (
.clk_i ( clk_i ),
.rst_ni ( ndmreset_n ),

View file

@ -81,6 +81,7 @@ module cva6_tb_wrapper import uvmt_cva6_pkg::*; #(
uvma_obi_memory_if obi_amo_slave,
uvma_obi_memory_if obi_load_slave,
//uvma_obi_memory_if obi_mmu_ptw_slave,
//uvma_obi_memory_if obi_zcmt_slave,
uvmt_axi_switch_intf axi_switch_vif,
uvmt_default_inputs_intf default_inputs_vif
);
@ -102,9 +103,7 @@ module cva6_tb_wrapper import uvmt_cva6_pkg::*; #(
cva6 #(
.CVA6Cfg ( CVA6Cfg ),
.rvfi_probes_instr_t ( rvfi_probes_instr_t ),
.rvfi_probes_csr_t ( rvfi_probes_csr_t ),
.rvfi_probes_t ( rvfi_probes_t )
.rvfi_probes_t ( rvfi_probes_t )
) i_cva6 (
.clk_i ( clk_i ),
.rst_ni ( rst_ni ),
@ -263,276 +262,329 @@ module cva6_tb_wrapper import uvmt_cva6_pkg::*; #(
//Obi Interface
if (CVA6Cfg.PipelineOnly) begin
assign obi_fetch_slave.req = i_cva6.obi_fetch_req_if_cache.req;
assign obi_fetch_slave.addr = i_cva6.obi_fetch_req_if_cache.a.addr;
assign obi_fetch_slave.we = i_cva6.obi_fetch_req_if_cache.a.we;
assign obi_fetch_slave.be = i_cva6.obi_fetch_req_if_cache.a.be;
assign obi_fetch_slave.wdata = i_cva6.obi_fetch_req_if_cache.a.wdata;
assign obi_fetch_slave.auser = i_cva6.obi_fetch_req_if_cache.a.a_optional.auser;
assign obi_fetch_slave.wuser = i_cva6.obi_fetch_req_if_cache.a.a_optional.wuser;
assign obi_fetch_slave.aid = i_cva6.obi_fetch_req_if_cache.a.aid;
assign obi_fetch_slave.atop = i_cva6.obi_fetch_req_if_cache.a.a_optional.atop;
assign obi_fetch_slave.memtype = i_cva6.obi_fetch_req_if_cache.a.a_optional.memtype;
assign obi_fetch_slave.prot = i_cva6.obi_fetch_req_if_cache.a.a_optional.prot;
assign obi_fetch_slave.reqpar = i_cva6.obi_fetch_req_if_cache.reqpar;
assign obi_fetch_slave.achk = i_cva6.obi_fetch_req_if_cache.a.a_optional.achk;
assign obi_fetch_slave.rready = i_cva6.obi_fetch_req_if_cache.rready;
assign obi_fetch_slave.rreadypar = i_cva6.obi_fetch_req_if_cache.rreadypar;
assign i_cva6.obi_fetch_rsp_cache_if.gnt = obi_fetch_slave.gnt;
assign i_cva6.obi_fetch_rsp_cache_if.gntpar = obi_fetch_slave.gntpar;
assign i_cva6.obi_fetch_rsp_cache_if.rvalid = obi_fetch_slave.rvalid;
assign i_cva6.obi_fetch_rsp_cache_if.r.rdata = obi_fetch_slave.rdata;
assign i_cva6.obi_fetch_rsp_cache_if.r.err = obi_fetch_slave.err;
assign i_cva6.obi_fetch_rsp_cache_if.r.r_optional.ruser = obi_fetch_slave.ruser;
assign i_cva6.obi_fetch_rsp_cache_if.r.rid = obi_fetch_slave.rid;
assign i_cva6.obi_fetch_rsp_cache_if.r.r_optional.exokay = obi_fetch_slave.exokay;
assign i_cva6.obi_fetch_rsp_cache_if.rvalidpar = obi_fetch_slave.rvalidpar;
assign i_cva6.obi_fetch_rsp_cache_if.r.r_optional.rchk = obi_fetch_slave.rchk;
assign obi_fetch_slave.req = i_cva6.obi_fetch_req.req;
assign obi_fetch_slave.addr = i_cva6.obi_fetch_req.a.addr;
assign obi_fetch_slave.we = i_cva6.obi_fetch_req.a.we;
assign obi_fetch_slave.be = i_cva6.obi_fetch_req.a.be;
assign obi_fetch_slave.wdata = i_cva6.obi_fetch_req.a.wdata;
assign obi_fetch_slave.auser = i_cva6.obi_fetch_req.a.a_optional.auser;
assign obi_fetch_slave.wuser = i_cva6.obi_fetch_req.a.a_optional.wuser;
assign obi_fetch_slave.aid = i_cva6.obi_fetch_req.a.aid;
assign obi_fetch_slave.atop = i_cva6.obi_fetch_req.a.a_optional.atop;
assign obi_fetch_slave.memtype = i_cva6.obi_fetch_req.a.a_optional.memtype;
assign obi_fetch_slave.prot = i_cva6.obi_fetch_req.a.a_optional.prot;
assign obi_fetch_slave.reqpar = i_cva6.obi_fetch_req.reqpar;
assign obi_fetch_slave.achk = i_cva6.obi_fetch_req.a.a_optional.achk;
assign obi_fetch_slave.rready = i_cva6.obi_fetch_req.rready;
assign obi_fetch_slave.rreadypar = i_cva6.obi_fetch_req.rreadypar;
assign i_cva6.obi_fetch_rsp.gnt = obi_fetch_slave.gnt;
assign i_cva6.obi_fetch_rsp.gntpar = obi_fetch_slave.gntpar;
assign i_cva6.obi_fetch_rsp.rvalid = obi_fetch_slave.rvalid;
assign i_cva6.obi_fetch_rsp.r.rdata = obi_fetch_slave.rdata;
assign i_cva6.obi_fetch_rsp.r.err = obi_fetch_slave.err;
assign i_cva6.obi_fetch_rsp.r.r_optional.ruser = obi_fetch_slave.ruser;
assign i_cva6.obi_fetch_rsp.r.rid = obi_fetch_slave.rid;
assign i_cva6.obi_fetch_rsp.r.r_optional.exokay = obi_fetch_slave.exokay;
assign i_cva6.obi_fetch_rsp.rvalidpar = obi_fetch_slave.rvalidpar;
assign i_cva6.obi_fetch_rsp.r.r_optional.rchk = obi_fetch_slave.rchk;
initial begin // TODO: workaround, need to emulate with OBI agent
force i_cva6.fetch_dreq_cache_if.ready = 1;
force i_cva6.fetch_dreq_cache_if.invalid_data = 0;
end
assign obi_store_slave.req = i_cva6.obi_store_req_ex_cache.req;
assign obi_store_slave.addr = i_cva6.obi_store_req_ex_cache.a.addr;
assign obi_store_slave.we = i_cva6.obi_store_req_ex_cache.a.we;
assign obi_store_slave.be = i_cva6.obi_store_req_ex_cache.a.be;
assign obi_store_slave.wdata = i_cva6.obi_store_req_ex_cache.a.wdata;
assign obi_store_slave.auser = i_cva6.obi_store_req_ex_cache.a.a_optional.auser;
assign obi_store_slave.wuser = i_cva6.obi_store_req_ex_cache.a.a_optional.wuser;
assign obi_store_slave.aid = i_cva6.obi_store_req_ex_cache.a.aid;
assign obi_store_slave.atop = i_cva6.obi_store_req_ex_cache.a.a_optional.atop;
assign obi_store_slave.memtype = i_cva6.obi_store_req_ex_cache.a.a_optional.memtype;
assign obi_store_slave.prot = i_cva6.obi_store_req_ex_cache.a.a_optional.prot;
assign obi_store_slave.reqpar = i_cva6.obi_store_req_ex_cache.reqpar;
assign obi_store_slave.achk = i_cva6.obi_store_req_ex_cache.a.a_optional.achk;
assign obi_store_slave.rready = i_cva6.obi_store_req_ex_cache.rready;
assign obi_store_slave.rreadypar = i_cva6.obi_store_req_ex_cache.rreadypar;
assign i_cva6.obi_store_rsp_cache_ex.gnt = obi_store_slave.gnt;
assign i_cva6.obi_store_rsp_cache_ex.gntpar = obi_store_slave.gntpar;
assign i_cva6.obi_store_rsp_cache_ex.rvalid = obi_store_slave.rvalid;
assign i_cva6.obi_store_rsp_cache_ex.r.rdata = obi_store_slave.rdata;
assign i_cva6.obi_store_rsp_cache_ex.r.err = obi_store_slave.err;
assign i_cva6.obi_store_rsp_cache_ex.r.r_optional.ruser = obi_store_slave.ruser;
assign i_cva6.obi_store_rsp_cache_ex.r.rid = obi_store_slave.rid;
assign i_cva6.obi_store_rsp_cache_ex.r.r_optional.exokay = obi_store_slave.exokay;
assign i_cva6.obi_store_rsp_cache_ex.rvalidpar = obi_store_slave.rvalidpar;
assign i_cva6.obi_store_rsp_cache_ex.r.r_optional.rchk = obi_store_slave.rchk;
assign obi_store_slave.req = i_cva6.obi_store_req.req;
assign obi_store_slave.addr = i_cva6.obi_store_req.a.addr;
assign obi_store_slave.we = i_cva6.obi_store_req.a.we;
assign obi_store_slave.be = i_cva6.obi_store_req.a.be;
assign obi_store_slave.wdata = i_cva6.obi_store_req.a.wdata;
assign obi_store_slave.auser = i_cva6.obi_store_req.a.a_optional.auser;
assign obi_store_slave.wuser = i_cva6.obi_store_req.a.a_optional.wuser;
assign obi_store_slave.aid = i_cva6.obi_store_req.a.aid;
assign obi_store_slave.atop = i_cva6.obi_store_req.a.a_optional.atop;
assign obi_store_slave.memtype = i_cva6.obi_store_req.a.a_optional.memtype;
assign obi_store_slave.prot = i_cva6.obi_store_req.a.a_optional.prot;
assign obi_store_slave.reqpar = i_cva6.obi_store_req.reqpar;
assign obi_store_slave.achk = i_cva6.obi_store_req.a.a_optional.achk;
assign obi_store_slave.rready = i_cva6.obi_store_req.rready;
assign obi_store_slave.rreadypar = i_cva6.obi_store_req.rreadypar;
assign i_cva6.obi_store_rsp.gnt = obi_store_slave.gnt;
assign i_cva6.obi_store_rsp.gntpar = obi_store_slave.gntpar;
assign i_cva6.obi_store_rsp.rvalid = obi_store_slave.rvalid;
assign i_cva6.obi_store_rsp.r.rdata = obi_store_slave.rdata;
assign i_cva6.obi_store_rsp.r.err = obi_store_slave.err;
assign i_cva6.obi_store_rsp.r.r_optional.ruser = obi_store_slave.ruser;
assign i_cva6.obi_store_rsp.r.rid = obi_store_slave.rid;
assign i_cva6.obi_store_rsp.r.r_optional.exokay = obi_store_slave.exokay;
assign i_cva6.obi_store_rsp.rvalidpar = obi_store_slave.rvalidpar;
assign i_cva6.obi_store_rsp.r.r_optional.rchk = obi_store_slave.rchk;
assign obi_amo_slave.req = i_cva6.obi_amo_req_ex_cache.req;
assign obi_amo_slave.addr = i_cva6.obi_amo_req_ex_cache.a.addr;
assign obi_amo_slave.we = i_cva6.obi_amo_req_ex_cache.a.we;
assign obi_amo_slave.be = i_cva6.obi_amo_req_ex_cache.a.be;
assign obi_amo_slave.wdata = i_cva6.obi_amo_req_ex_cache.a.wdata;
assign obi_amo_slave.auser = i_cva6.obi_amo_req_ex_cache.a.a_optional.auser;
assign obi_amo_slave.wuser = i_cva6.obi_amo_req_ex_cache.a.a_optional.wuser;
assign obi_amo_slave.aid = i_cva6.obi_amo_req_ex_cache.a.aid;
assign obi_amo_slave.atop = i_cva6.obi_amo_req_ex_cache.a.a_optional.atop;
assign obi_amo_slave.memtype = i_cva6.obi_amo_req_ex_cache.a.a_optional.memtype;
assign obi_amo_slave.prot = i_cva6.obi_amo_req_ex_cache.a.a_optional.prot;
assign obi_amo_slave.reqpar = i_cva6.obi_amo_req_ex_cache.reqpar;
assign obi_amo_slave.achk = i_cva6.obi_amo_req_ex_cache.a.a_optional.achk;
assign obi_amo_slave.rready = i_cva6.obi_amo_req_ex_cache.rready;
assign obi_amo_slave.rreadypar = i_cva6.obi_amo_req_ex_cache.rreadypar;
assign i_cva6.obi_amo_rsp_cache_ex.gnt = obi_amo_slave.gnt;
assign i_cva6.obi_amo_rsp_cache_ex.gntpar = obi_amo_slave.gntpar;
assign i_cva6.obi_amo_rsp_cache_ex.rvalid = obi_amo_slave.rvalid;
assign i_cva6.obi_amo_rsp_cache_ex.r.rdata = obi_amo_slave.rdata;
assign i_cva6.obi_amo_rsp_cache_ex.r.err = obi_amo_slave.err;
assign i_cva6.obi_amo_rsp_cache_ex.r.r_optional.ruser = obi_amo_slave.ruser;
assign i_cva6.obi_amo_rsp_cache_ex.r.rid = obi_amo_slave.rid;
assign i_cva6.obi_amo_rsp_cache_ex.r.r_optional.exokay = obi_amo_slave.exokay;
assign i_cva6.obi_amo_rsp_cache_ex.rvalidpar = obi_amo_slave.rvalidpar;
assign i_cva6.obi_amo_rsp_cache_ex.r.r_optional.rchk = obi_amo_slave.rchk;
assign obi_amo_slave.req = i_cva6.obi_amo_req.req;
assign obi_amo_slave.addr = i_cva6.obi_amo_req.a.addr;
assign obi_amo_slave.we = i_cva6.obi_amo_req.a.we;
assign obi_amo_slave.be = i_cva6.obi_amo_req.a.be;
assign obi_amo_slave.wdata = i_cva6.obi_amo_req.a.wdata;
assign obi_amo_slave.auser = i_cva6.obi_amo_req.a.a_optional.auser;
assign obi_amo_slave.wuser = i_cva6.obi_amo_req.a.a_optional.wuser;
assign obi_amo_slave.aid = i_cva6.obi_amo_req.a.aid;
assign obi_amo_slave.atop = i_cva6.obi_amo_req.a.a_optional.atop;
assign obi_amo_slave.memtype = i_cva6.obi_amo_req.a.a_optional.memtype;
assign obi_amo_slave.prot = i_cva6.obi_amo_req.a.a_optional.prot;
assign obi_amo_slave.reqpar = i_cva6.obi_amo_req.reqpar;
assign obi_amo_slave.achk = i_cva6.obi_amo_req.a.a_optional.achk;
assign obi_amo_slave.rready = i_cva6.obi_amo_req.rready;
assign obi_amo_slave.rreadypar = i_cva6.obi_amo_req.rreadypar;
assign i_cva6.obi_amo_rsp.gnt = obi_amo_slave.gnt;
assign i_cva6.obi_amo_rsp.gntpar = obi_amo_slave.gntpar;
assign i_cva6.obi_amo_rsp.rvalid = obi_amo_slave.rvalid;
assign i_cva6.obi_amo_rsp.r.rdata = obi_amo_slave.rdata;
assign i_cva6.obi_amo_rsp.r.err = obi_amo_slave.err;
assign i_cva6.obi_amo_rsp.r.r_optional.ruser = obi_amo_slave.ruser;
assign i_cva6.obi_amo_rsp.r.rid = obi_amo_slave.rid;
assign i_cva6.obi_amo_rsp.r.r_optional.exokay = obi_amo_slave.exokay;
assign i_cva6.obi_amo_rsp.rvalidpar = obi_amo_slave.rvalidpar;
assign i_cva6.obi_amo_rsp.r.r_optional.rchk = obi_amo_slave.rchk;
assign obi_load_slave.req = i_cva6.obi_load_req_ex_cache.req;
assign obi_load_slave.addr = i_cva6.obi_load_req_ex_cache.a.addr;
assign obi_load_slave.we = i_cva6.obi_load_req_ex_cache.a.we;
assign obi_load_slave.be = i_cva6.obi_load_req_ex_cache.a.be;
assign obi_load_slave.wdata = i_cva6.obi_load_req_ex_cache.a.wdata;
assign obi_load_slave.auser = i_cva6.obi_load_req_ex_cache.a.a_optional.auser;
assign obi_load_slave.wuser = i_cva6.obi_load_req_ex_cache.a.a_optional.wuser;
assign obi_load_slave.aid = i_cva6.obi_load_req_ex_cache.a.aid;
assign obi_load_slave.atop = i_cva6.obi_load_req_ex_cache.a.a_optional.atop;
assign obi_load_slave.memtype = i_cva6.obi_load_req_ex_cache.a.a_optional.memtype;
assign obi_load_slave.prot = i_cva6.obi_load_req_ex_cache.a.a_optional.prot;
assign obi_load_slave.reqpar = i_cva6.obi_load_req_ex_cache.reqpar;
assign obi_load_slave.achk = i_cva6.obi_load_req_ex_cache.a.a_optional.achk;
assign obi_load_slave.rready = i_cva6.obi_load_req_ex_cache.rready;
assign obi_load_slave.rreadypar = i_cva6.obi_load_req_ex_cache.rreadypar;
assign i_cva6.obi_load_rsp_cache_ex.gnt = obi_load_slave.gnt;
assign i_cva6.obi_load_rsp_cache_ex.gntpar = obi_load_slave.gntpar;
assign i_cva6.obi_load_rsp_cache_ex.rvalid = obi_load_slave.rvalid;
assign i_cva6.obi_load_rsp_cache_ex.r.rdata = obi_load_slave.rdata;
assign i_cva6.obi_load_rsp_cache_ex.r.err = obi_load_slave.err;
assign i_cva6.obi_load_rsp_cache_ex.r.r_optional.ruser = obi_load_slave.ruser;
assign i_cva6.obi_load_rsp_cache_ex.r.rid = obi_load_slave.rid;
assign i_cva6.obi_load_rsp_cache_ex.r.r_optional.exokay = obi_load_slave.exokay;
assign i_cva6.obi_load_rsp_cache_ex.rvalidpar = obi_load_slave.rvalidpar;
assign i_cva6.obi_load_rsp_cache_ex.r.r_optional.rchk = obi_load_slave.rchk;
assign obi_load_slave.req = i_cva6.obi_load_req.req;
assign obi_load_slave.addr = i_cva6.obi_load_req.a.addr;
assign obi_load_slave.we = i_cva6.obi_load_req.a.we;
assign obi_load_slave.be = i_cva6.obi_load_req.a.be;
assign obi_load_slave.wdata = i_cva6.obi_load_req.a.wdata;
assign obi_load_slave.auser = i_cva6.obi_load_req.a.a_optional.auser;
assign obi_load_slave.wuser = i_cva6.obi_load_req.a.a_optional.wuser;
assign obi_load_slave.aid = i_cva6.obi_load_req.a.aid;
assign obi_load_slave.atop = i_cva6.obi_load_req.a.a_optional.atop;
assign obi_load_slave.memtype = i_cva6.obi_load_req.a.a_optional.memtype;
assign obi_load_slave.prot = i_cva6.obi_load_req.a.a_optional.prot;
assign obi_load_slave.reqpar = i_cva6.obi_load_req.reqpar;
assign obi_load_slave.achk = i_cva6.obi_load_req.a.a_optional.achk;
assign obi_load_slave.rready = i_cva6.obi_load_req.rready;
assign obi_load_slave.rreadypar = i_cva6.obi_load_req.rreadypar;
assign i_cva6.obi_load_rsp.gnt = obi_load_slave.gnt;
assign i_cva6.obi_load_rsp.gntpar = obi_load_slave.gntpar;
assign i_cva6.obi_load_rsp.rvalid = obi_load_slave.rvalid;
assign i_cva6.obi_load_rsp.r.rdata = obi_load_slave.rdata;
assign i_cva6.obi_load_rsp.r.err = obi_load_slave.err;
assign i_cva6.obi_load_rsp.r.r_optional.ruser = obi_load_slave.ruser;
assign i_cva6.obi_load_rsp.r.rid = obi_load_slave.rid;
assign i_cva6.obi_load_rsp.r.r_optional.exokay = obi_load_slave.exokay;
assign i_cva6.obi_load_rsp.rvalidpar = obi_load_slave.rvalidpar;
assign i_cva6.obi_load_rsp.r.r_optional.rchk = obi_load_slave.rchk;
initial begin // TODO: workaround, need to emulate with OBI agent
force i_cva6.load_dreq_cache_exec.gnt = 1;
end
//assign obi_mmu_ptw_slave.req = i_cva6.obi_fetch_req_ex_cache.req;
//assign obi_mmu_ptw_slave.addr = i_cva6.obi_fetch_req_ex_cache.a.addr;
//assign obi_mmu_ptw_slave.we = i_cva6.obi_fetch_req_ex_cache.a.we;
//assign obi_mmu_ptw_slave.be = i_cva6.obi_fetch_req_ex_cache.a.be;
//assign obi_mmu_ptw_slave.wdata = i_cva6.obi_fetch_req_ex_cache.a.wdata;
//assign obi_mmu_ptw_slave.auser = i_cva6.obi_fetch_req_ex_cache.a.a_optional.auser;
//assign obi_mmu_ptw_slave.wuser = i_cva6.obi_fetch_req_ex_cache.a.a_optional.wuser;
//assign obi_mmu_ptw_slave.aid = i_cva6.obi_fetch_req_ex_cache.a.aid;
//assign obi_mmu_ptw_slave.atop = i_cva6.obi_fetch_req_ex_cache.a.a_optional.atop;
//assign obi_mmu_ptw_slave.memtype = i_cva6.obi_fetch_req_ex_cache.a.a_optional.memtype;
//assign obi_mmu_ptw_slave.prot = i_cva6.obi_fetch_req_ex_cache.a.a_optional.prot;
//assign obi_mmu_ptw_slave.reqpar = i_cva6.obi_fetch_req_ex_cache.reqpar;
//assign obi_mmu_ptw_slave.achk = i_cva6.obi_fetch_req_ex_cache.a.a_optional.achk;
//assign obi_mmu_ptw_slave.rready = i_cva6.obi_fetch_req_ex_cache.rready;
//assign obi_mmu_ptw_slave.rreadypar = i_cva6.obi_fetch_req_ex_cache.rreadypar;
//assign i_cva6.obi_fetch_rsp_cache_ex.gnt = obi_mmu_ptw_slave.gnt;
//assign i_cva6.obi_fetch_rsp_cache_ex.gntpar = obi_mmu_ptw_slave.gntpar;
//assign i_cva6.obi_fetch_rsp_cache_ex.rvalid = obi_mmu_ptw_slave.rvalid;
//assign i_cva6.obi_fetch_rsp_cache_ex.r.rdata = obi_mmu_ptw_slave.rdata;
//assign i_cva6.obi_fetch_rsp_cache_ex.r.err = obi_mmu_ptw_slave.err;
//assign i_cva6.obi_fetch_rsp_cache_ex.r.r_optional.ruser = obi_mmu_ptw_slave.ruser;
//assign i_cva6.obi_fetch_rsp_cache_ex.r.rid = obi_mmu_ptw_slave.rid;
//assign i_cva6.obi_fetch_rsp_cache_ex.r.r_optional.exokay = obi_mmu_ptw_slave.exokay;
//assign i_cva6.obi_fetch_rsp_cache_ex.rvalidpar = obi_mmu_ptw_slave.rvalidpar;
//assign i_cva6.obi_fetch_rsp_cache_ex.r.r_optional.rchk = obi_mmu_ptw_slave.rchk;
//assign obi_mmu_ptw_slave.req = i_cva6.obi_fetch_req.req;
//assign obi_mmu_ptw_slave.addr = i_cva6.obi_fetch_req.a.addr;
//assign obi_mmu_ptw_slave.we = i_cva6.obi_fetch_req.a.we;
//assign obi_mmu_ptw_slave.be = i_cva6.obi_fetch_req.a.be;
//assign obi_mmu_ptw_slave.wdata = i_cva6.obi_fetch_req.a.wdata;
//assign obi_mmu_ptw_slave.auser = i_cva6.obi_fetch_req.a.a_optional.auser;
//assign obi_mmu_ptw_slave.wuser = i_cva6.obi_fetch_req.a.a_optional.wuser;
//assign obi_mmu_ptw_slave.aid = i_cva6.obi_fetch_req.a.aid;
//assign obi_mmu_ptw_slave.atop = i_cva6.obi_fetch_req.a.a_optional.atop;
//assign obi_mmu_ptw_slave.memtype = i_cva6.obi_fetch_req.a.a_optional.memtype;
//assign obi_mmu_ptw_slave.prot = i_cva6.obi_fetch_req.a.a_optional.prot;
//assign obi_mmu_ptw_slave.reqpar = i_cva6.obi_fetch_req.reqpar;
//assign obi_mmu_ptw_slave.achk = i_cva6.obi_fetch_req.a.a_optional.achk;
//assign obi_mmu_ptw_slave.rready = i_cva6.obi_fetch_req.rready;
//assign obi_mmu_ptw_slave.rreadypar = i_cva6.obi_fetch_req.rreadypar;
//assign i_cva6.obi_fetch_rsp.gnt = obi_mmu_ptw_slave.gnt;
//assign i_cva6.obi_fetch_rsp.gntpar = obi_mmu_ptw_slave.gntpar;
//assign i_cva6.obi_fetch_rsp.rvalid = obi_mmu_ptw_slave.rvalid;
//assign i_cva6.obi_fetch_rsp.r.rdata = obi_mmu_ptw_slave.rdata;
//assign i_cva6.obi_fetch_rsp.r.err = obi_mmu_ptw_slave.err;
//assign i_cva6.obi_fetch_rsp.r.r_optional.ruser = obi_mmu_ptw_slave.ruser;
//assign i_cva6.obi_fetch_rsp.r.rid = obi_mmu_ptw_slave.rid;
//assign i_cva6.obi_fetch_rsp.r.r_optional.exokay = obi_mmu_ptw_slave.exokay;
//assign i_cva6.obi_fetch_rsp.rvalidpar = obi_mmu_ptw_slave.rvalidpar;
//assign i_cva6.obi_fetch_rsp.r.r_optional.rchk = obi_mmu_ptw_slave.rchk;
//assign obi_zcmt_slave.req = i_cva6.obi_fetch_req.req;
//assign obi_zcmt_slave.addr = i_cva6.obi_fetch_req.a.addr;
//assign obi_zcmt_slave.we = i_cva6.obi_fetch_req.a.we;
//assign obi_zcmt_slave.be = i_cva6.obi_fetch_req.a.be;
//assign obi_zcmt_slave.wdata = i_cva6.obi_fetch_req.a.wdata;
//assign obi_zcmt_slave.auser = i_cva6.obi_fetch_req.a.a_optional.auser;
//assign obi_zcmt_slave.wuser = i_cva6.obi_fetch_req.a.a_optional.wuser;
//assign obi_zcmt_slave.aid = i_cva6.obi_fetch_req.a.aid;
//assign obi_zcmt_slave.atop = i_cva6.obi_fetch_req.a.a_optional.atop;
//assign obi_zcmt_slave.memtype = i_cva6.obi_fetch_req.a.a_optional.memtype;
//assign obi_zcmt_slave.prot = i_cva6.obi_fetch_req.a.a_optional.prot;
//assign obi_zcmt_slave.reqpar = i_cva6.obi_fetch_req.reqpar;
//assign obi_zcmt_slave.achk = i_cva6.obi_fetch_req.a.a_optional.achk;
//assign obi_zcmt_slave.rready = i_cva6.obi_fetch_req.rready;
//assign obi_zcmt_slave.rreadypar = i_cva6.obi_fetch_req.rreadypar;
//assign i_cva6.obi_fetch_rsp.gnt = obi_zcmt_slave.gnt;
//assign i_cva6.obi_fetch_rsp.gntpar = obi_zcmt_slave.gntpar;
//assign i_cva6.obi_fetch_rsp.rvalid = obi_zcmt_slave.rvalid;
//assign i_cva6.obi_fetch_rsp.r.rdata = obi_zcmt_slave.rdata;
//assign i_cva6.obi_fetch_rsp.r.err = obi_zcmt_slave.err;
//assign i_cva6.obi_fetch_rsp.r.r_optional.ruser = obi_zcmt_slave.ruser;
//assign i_cva6.obi_fetch_rsp.r.rid = obi_zcmt_slave.rid;
//assign i_cva6.obi_fetch_rsp.r.r_optional.exokay = obi_zcmt_slave.exokay;
//assign i_cva6.obi_fetch_rsp.rvalidpar = obi_zcmt_slave.rvalidpar;
//assign i_cva6.obi_fetch_rsp.r.r_optional.rchk = obi_zcmt_slave.rchk;
end else begin //OBI in PASSIVE mode
assign obi_fetch_slave.req = i_cva6.obi_fetch_req_if_cache.req;
assign obi_fetch_slave.addr = i_cva6.obi_fetch_req_if_cache.a.addr;
assign obi_fetch_slave.we = i_cva6.obi_fetch_req_if_cache.a.we;
assign obi_fetch_slave.be = i_cva6.obi_fetch_req_if_cache.a.be;
assign obi_fetch_slave.wdata = i_cva6.obi_fetch_req_if_cache.a.wdata;
assign obi_fetch_slave.auser = i_cva6.obi_fetch_req_if_cache.a.a_optional.auser;
assign obi_fetch_slave.wuser = i_cva6.obi_fetch_req_if_cache.a.a_optional.wuser;
assign obi_fetch_slave.aid = i_cva6.obi_fetch_req_if_cache.a.aid;
assign obi_fetch_slave.atop = i_cva6.obi_fetch_req_if_cache.a.a_optional.atop;
assign obi_fetch_slave.memtype = i_cva6.obi_fetch_req_if_cache.a.a_optional.memtype;
assign obi_fetch_slave.prot = i_cva6.obi_fetch_req_if_cache.a.a_optional.prot;
assign obi_fetch_slave.reqpar = i_cva6.obi_fetch_req_if_cache.reqpar;
assign obi_fetch_slave.achk = i_cva6.obi_fetch_req_if_cache.a.a_optional.achk;
assign obi_fetch_slave.rready = i_cva6.obi_fetch_req_if_cache.rready;
assign obi_fetch_slave.rreadypar = i_cva6.obi_fetch_req_if_cache.rreadypar;
assign obi_fetch_slave.gnt = i_cva6.obi_fetch_rsp_cache_if.gnt;
assign obi_fetch_slave.gntpar = i_cva6.obi_fetch_rsp_cache_if.gntpar;
assign obi_fetch_slave.rvalid = i_cva6.obi_fetch_rsp_cache_if.rvalid;
assign obi_fetch_slave.rdata = i_cva6.obi_fetch_rsp_cache_if.r.rdata;
assign obi_fetch_slave.err = i_cva6.obi_fetch_rsp_cache_if.r.err;
assign obi_fetch_slave.ruser = i_cva6.obi_fetch_rsp_cache_if.r.r_optional.ruser;
assign obi_fetch_slave.rid = i_cva6.obi_fetch_rsp_cache_if.r.rid;
assign obi_fetch_slave.exokay = i_cva6.obi_fetch_rsp_cache_if.r.r_optional.exokay;
assign obi_fetch_slave.rvalidpar = i_cva6.obi_fetch_rsp_cache_if.rvalidpar;
assign obi_fetch_slave.rchk = i_cva6.obi_fetch_rsp_cache_if.r.r_optional.rchk;
assign obi_fetch_slave.req = i_cva6.obi_fetch_req.req;
assign obi_fetch_slave.addr = i_cva6.obi_fetch_req.a.addr;
assign obi_fetch_slave.we = i_cva6.obi_fetch_req.a.we;
assign obi_fetch_slave.be = i_cva6.obi_fetch_req.a.be;
assign obi_fetch_slave.wdata = i_cva6.obi_fetch_req.a.wdata;
assign obi_fetch_slave.auser = i_cva6.obi_fetch_req.a.a_optional.auser;
assign obi_fetch_slave.wuser = i_cva6.obi_fetch_req.a.a_optional.wuser;
assign obi_fetch_slave.aid = i_cva6.obi_fetch_req.a.aid;
assign obi_fetch_slave.atop = i_cva6.obi_fetch_req.a.a_optional.atop;
assign obi_fetch_slave.memtype = i_cva6.obi_fetch_req.a.a_optional.memtype;
assign obi_fetch_slave.prot = i_cva6.obi_fetch_req.a.a_optional.prot;
assign obi_fetch_slave.reqpar = i_cva6.obi_fetch_req.reqpar;
assign obi_fetch_slave.achk = i_cva6.obi_fetch_req.a.a_optional.achk;
assign obi_fetch_slave.rready = i_cva6.obi_fetch_req.rready;
assign obi_fetch_slave.rreadypar = i_cva6.obi_fetch_req.rreadypar;
assign obi_fetch_slave.gnt = i_cva6.obi_fetch_rsp.gnt;
assign obi_fetch_slave.gntpar = i_cva6.obi_fetch_rsp.gntpar;
assign obi_fetch_slave.rvalid = i_cva6.obi_fetch_rsp.rvalid;
assign obi_fetch_slave.rdata = i_cva6.obi_fetch_rsp.r.rdata;
assign obi_fetch_slave.err = i_cva6.obi_fetch_rsp.r.err;
assign obi_fetch_slave.ruser = i_cva6.obi_fetch_rsp.r.r_optional.ruser;
assign obi_fetch_slave.rid = i_cva6.obi_fetch_rsp.r.rid;
assign obi_fetch_slave.exokay = i_cva6.obi_fetch_rsp.r.r_optional.exokay;
assign obi_fetch_slave.rvalidpar = i_cva6.obi_fetch_rsp.rvalidpar;
assign obi_fetch_slave.rchk = i_cva6.obi_fetch_rsp.r.r_optional.rchk;
assign obi_store_slave.req = i_cva6.obi_store_req_ex_cache.req;
assign obi_store_slave.addr = i_cva6.obi_store_req_ex_cache.a.addr;
assign obi_store_slave.we = i_cva6.obi_store_req_ex_cache.a.we;
assign obi_store_slave.be = i_cva6.obi_store_req_ex_cache.a.be;
assign obi_store_slave.wdata = i_cva6.obi_store_req_ex_cache.a.wdata;
assign obi_store_slave.auser = i_cva6.obi_store_req_ex_cache.a.a_optional.auser;
assign obi_store_slave.wuser = i_cva6.obi_store_req_ex_cache.a.a_optional.wuser;
assign obi_store_slave.aid = i_cva6.obi_store_req_ex_cache.a.aid;
assign obi_store_slave.atop = i_cva6.obi_store_req_ex_cache.a.a_optional.atop;
assign obi_store_slave.memtype = i_cva6.obi_store_req_ex_cache.a.a_optional.memtype;
assign obi_store_slave.prot = i_cva6.obi_store_req_ex_cache.a.a_optional.prot;
assign obi_store_slave.reqpar = i_cva6.obi_store_req_ex_cache.reqpar;
assign obi_store_slave.achk = i_cva6.obi_store_req_ex_cache.a.a_optional.achk;
assign obi_store_slave.rready = i_cva6.obi_store_req_ex_cache.rready;
assign obi_store_slave.rreadypar = i_cva6.obi_store_req_ex_cache.rreadypar;
assign obi_store_slave.gnt = i_cva6.obi_store_rsp_cache_ex.gnt;
assign obi_store_slave.gntpar = i_cva6.obi_store_rsp_cache_ex.gntpar;
assign obi_store_slave.rvalid = i_cva6.obi_store_rsp_cache_ex.rvalid;
assign obi_store_slave.rdata = i_cva6.obi_store_rsp_cache_ex.r.rdata;
assign obi_store_slave.err = i_cva6.obi_store_rsp_cache_ex.r.err;
assign obi_store_slave.ruser = i_cva6.obi_store_rsp_cache_ex.r.r_optional.ruser;
assign obi_store_slave.rid = i_cva6.obi_store_rsp_cache_ex.r.rid;
assign obi_store_slave.exokay = i_cva6.obi_store_rsp_cache_ex.r.r_optional.exokay;
assign obi_store_slave.rvalidpar = i_cva6.obi_store_rsp_cache_ex.rvalidpar;
assign obi_store_slave.rchk = i_cva6.obi_store_rsp_cache_ex.r.r_optional.rchk;
assign obi_store_slave.req = i_cva6.obi_store_req.req;
assign obi_store_slave.addr = i_cva6.obi_store_req.a.addr;
assign obi_store_slave.we = i_cva6.obi_store_req.a.we;
assign obi_store_slave.be = i_cva6.obi_store_req.a.be;
assign obi_store_slave.wdata = i_cva6.obi_store_req.a.wdata;
assign obi_store_slave.auser = i_cva6.obi_store_req.a.a_optional.auser;
assign obi_store_slave.wuser = i_cva6.obi_store_req.a.a_optional.wuser;
assign obi_store_slave.aid = i_cva6.obi_store_req.a.aid;
assign obi_store_slave.atop = i_cva6.obi_store_req.a.a_optional.atop;
assign obi_store_slave.memtype = i_cva6.obi_store_req.a.a_optional.memtype;
assign obi_store_slave.prot = i_cva6.obi_store_req.a.a_optional.prot;
assign obi_store_slave.reqpar = i_cva6.obi_store_req.reqpar;
assign obi_store_slave.achk = i_cva6.obi_store_req.a.a_optional.achk;
assign obi_store_slave.rready = i_cva6.obi_store_req.rready;
assign obi_store_slave.rreadypar = i_cva6.obi_store_req.rreadypar;
assign obi_store_slave.gnt = i_cva6.obi_store_rsp.gnt;
assign obi_store_slave.gntpar = i_cva6.obi_store_rsp.gntpar;
assign obi_store_slave.rvalid = i_cva6.obi_store_rsp.rvalid;
assign obi_store_slave.rdata = i_cva6.obi_store_rsp.r.rdata;
assign obi_store_slave.err = i_cva6.obi_store_rsp.r.err;
assign obi_store_slave.ruser = i_cva6.obi_store_rsp.r.r_optional.ruser;
assign obi_store_slave.rid = i_cva6.obi_store_rsp.r.rid;
assign obi_store_slave.exokay = i_cva6.obi_store_rsp.r.r_optional.exokay;
assign obi_store_slave.rvalidpar = i_cva6.obi_store_rsp.rvalidpar;
assign obi_store_slave.rchk = i_cva6.obi_store_rsp.r.r_optional.rchk;
assign obi_amo_slave.req = i_cva6.obi_amo_req_ex_cache.req;
assign obi_amo_slave.addr = i_cva6.obi_amo_req_ex_cache.a.addr;
assign obi_amo_slave.we = i_cva6.obi_amo_req_ex_cache.a.we;
assign obi_amo_slave.be = i_cva6.obi_amo_req_ex_cache.a.be;
assign obi_amo_slave.wdata = i_cva6.obi_amo_req_ex_cache.a.wdata;
assign obi_amo_slave.auser = i_cva6.obi_amo_req_ex_cache.a.a_optional.auser;
assign obi_amo_slave.wuser = i_cva6.obi_amo_req_ex_cache.a.a_optional.wuser;
assign obi_amo_slave.aid = i_cva6.obi_amo_req_ex_cache.a.aid;
assign obi_amo_slave.atop = i_cva6.obi_amo_req_ex_cache.a.a_optional.atop;
assign obi_amo_slave.memtype = i_cva6.obi_amo_req_ex_cache.a.a_optional.memtype;
assign obi_amo_slave.prot = i_cva6.obi_amo_req_ex_cache.a.a_optional.prot;
assign obi_amo_slave.reqpar = i_cva6.obi_amo_req_ex_cache.reqpar;
assign obi_amo_slave.achk = i_cva6.obi_amo_req_ex_cache.a.a_optional.achk;
assign obi_amo_slave.rready = i_cva6.obi_amo_req_ex_cache.rready;
assign obi_amo_slave.rreadypar = i_cva6.obi_amo_req_ex_cache.rreadypar;
assign obi_amo_slave.gnt = i_cva6.obi_amo_rsp_cache_ex.gnt;
assign obi_amo_slave.gntpar = i_cva6.obi_amo_rsp_cache_ex.gntpar;
assign obi_amo_slave.rvalid = i_cva6.obi_amo_rsp_cache_ex.rvalid;
assign obi_amo_slave.rdata = i_cva6.obi_amo_rsp_cache_ex.r.rdata;
assign obi_amo_slave.err = i_cva6.obi_amo_rsp_cache_ex.r.err;
assign obi_amo_slave.ruser = i_cva6.obi_amo_rsp_cache_ex.r.r_optional.ruser;
assign obi_amo_slave.rid = i_cva6.obi_amo_rsp_cache_ex.r.rid;
assign obi_amo_slave.exokay = i_cva6.obi_amo_rsp_cache_ex.r.r_optional.exokay;
assign obi_amo_slave.rvalidpar = i_cva6.obi_amo_rsp_cache_ex.rvalidpar;
assign obi_amo_slave.rchk = i_cva6.obi_amo_rsp_cache_ex.r.r_optional.rchk;
assign obi_amo_slave.req = i_cva6.obi_amo_req.req;
assign obi_amo_slave.addr = i_cva6.obi_amo_req.a.addr;
assign obi_amo_slave.we = i_cva6.obi_amo_req.a.we;
assign obi_amo_slave.be = i_cva6.obi_amo_req.a.be;
assign obi_amo_slave.wdata = i_cva6.obi_amo_req.a.wdata;
assign obi_amo_slave.auser = i_cva6.obi_amo_req.a.a_optional.auser;
assign obi_amo_slave.wuser = i_cva6.obi_amo_req.a.a_optional.wuser;
assign obi_amo_slave.aid = i_cva6.obi_amo_req.a.aid;
assign obi_amo_slave.atop = i_cva6.obi_amo_req.a.a_optional.atop;
assign obi_amo_slave.memtype = i_cva6.obi_amo_req.a.a_optional.memtype;
assign obi_amo_slave.prot = i_cva6.obi_amo_req.a.a_optional.prot;
assign obi_amo_slave.reqpar = i_cva6.obi_amo_req.reqpar;
assign obi_amo_slave.achk = i_cva6.obi_amo_req.a.a_optional.achk;
assign obi_amo_slave.rready = i_cva6.obi_amo_req.rready;
assign obi_amo_slave.rreadypar = i_cva6.obi_amo_req.rreadypar;
assign obi_amo_slave.gnt = i_cva6.obi_amo_rsp.gnt;
assign obi_amo_slave.gntpar = i_cva6.obi_amo_rsp.gntpar;
assign obi_amo_slave.rvalid = i_cva6.obi_amo_rsp.rvalid;
assign obi_amo_slave.rdata = i_cva6.obi_amo_rsp.r.rdata;
assign obi_amo_slave.err = i_cva6.obi_amo_rsp.r.err;
assign obi_amo_slave.ruser = i_cva6.obi_amo_rsp.r.r_optional.ruser;
assign obi_amo_slave.rid = i_cva6.obi_amo_rsp.r.rid;
assign obi_amo_slave.exokay = i_cva6.obi_amo_rsp.r.r_optional.exokay;
assign obi_amo_slave.rvalidpar = i_cva6.obi_amo_rsp.rvalidpar;
assign obi_amo_slave.rchk = i_cva6.obi_amo_rsp.r.r_optional.rchk;
assign obi_load_slave.req = i_cva6.obi_load_req_ex_cache.req;
assign obi_load_slave.addr = i_cva6.obi_load_req_ex_cache.a.addr;
assign obi_load_slave.we = i_cva6.obi_load_req_ex_cache.a.we;
assign obi_load_slave.be = i_cva6.obi_load_req_ex_cache.a.be;
assign obi_load_slave.wdata = i_cva6.obi_load_req_ex_cache.a.wdata;
assign obi_load_slave.auser = i_cva6.obi_load_req_ex_cache.a.a_optional.auser;
assign obi_load_slave.wuser = i_cva6.obi_load_req_ex_cache.a.a_optional.wuser;
assign obi_load_slave.aid = i_cva6.obi_load_req_ex_cache.a.aid;
assign obi_load_slave.atop = i_cva6.obi_load_req_ex_cache.a.a_optional.atop;
assign obi_load_slave.memtype = i_cva6.obi_load_req_ex_cache.a.a_optional.memtype;
assign obi_load_slave.prot = i_cva6.obi_load_req_ex_cache.a.a_optional.prot;
assign obi_load_slave.reqpar = i_cva6.obi_load_req_ex_cache.reqpar;
assign obi_load_slave.achk = i_cva6.obi_load_req_ex_cache.a.a_optional.achk;
assign obi_load_slave.rready = i_cva6.obi_load_req_ex_cache.rready;
assign obi_load_slave.rreadypar = i_cva6.obi_load_req_ex_cache.rreadypar;
assign obi_load_slave.gnt = i_cva6.obi_load_rsp_cache_ex.gnt;
assign obi_load_slave.gntpar = i_cva6.obi_load_rsp_cache_ex.gntpar;
assign obi_load_slave.rvalid = i_cva6.obi_load_rsp_cache_ex.rvalid;
assign obi_load_slave.rdata = i_cva6.obi_load_rsp_cache_ex.r.rdata;
assign obi_load_slave.err = i_cva6.obi_load_rsp_cache_ex.r.err;
assign obi_load_slave.ruser = i_cva6.obi_load_rsp_cache_ex.r.r_optional.ruser;
assign obi_load_slave.rid = i_cva6.obi_load_rsp_cache_ex.r.rid;
assign obi_load_slave.exokay = i_cva6.obi_load_rsp_cache_ex.r.r_optional.exokay;
assign obi_load_slave.rvalidpar = i_cva6.obi_load_rsp_cache_ex.rvalidpar;
assign obi_load_slave.rchk = i_cva6.obi_load_rsp_cache_ex.r.r_optional.rchk;
assign obi_load_slave.req = i_cva6.obi_load_req.req;
assign obi_load_slave.addr = i_cva6.obi_load_req.a.addr;
assign obi_load_slave.we = i_cva6.obi_load_req.a.we;
assign obi_load_slave.be = i_cva6.obi_load_req.a.be;
assign obi_load_slave.wdata = i_cva6.obi_load_req.a.wdata;
assign obi_load_slave.auser = i_cva6.obi_load_req.a.a_optional.auser;
assign obi_load_slave.wuser = i_cva6.obi_load_req.a.a_optional.wuser;
assign obi_load_slave.aid = i_cva6.obi_load_req.a.aid;
assign obi_load_slave.atop = i_cva6.obi_load_req.a.a_optional.atop;
assign obi_load_slave.memtype = i_cva6.obi_load_req.a.a_optional.memtype;
assign obi_load_slave.prot = i_cva6.obi_load_req.a.a_optional.prot;
assign obi_load_slave.reqpar = i_cva6.obi_load_req.reqpar;
assign obi_load_slave.achk = i_cva6.obi_load_req.a.a_optional.achk;
assign obi_load_slave.rready = i_cva6.obi_load_req.rready;
assign obi_load_slave.rreadypar = i_cva6.obi_load_req.rreadypar;
assign obi_load_slave.gnt = i_cva6.obi_load_rsp.gnt;
assign obi_load_slave.gntpar = i_cva6.obi_load_rsp.gntpar;
assign obi_load_slave.rvalid = i_cva6.obi_load_rsp.rvalid;
assign obi_load_slave.rdata = i_cva6.obi_load_rsp.r.rdata;
assign obi_load_slave.err = i_cva6.obi_load_rsp.r.err;
assign obi_load_slave.ruser = i_cva6.obi_load_rsp.r.r_optional.ruser;
assign obi_load_slave.rid = i_cva6.obi_load_rsp.r.rid;
assign obi_load_slave.exokay = i_cva6.obi_load_rsp.r.r_optional.exokay;
assign obi_load_slave.rvalidpar = i_cva6.obi_load_rsp.rvalidpar;
assign obi_load_slave.rchk = i_cva6.obi_load_rsp.r.r_optional.rchk;
//assign obi_mmu_ptw_slave.req = i_cva6.obi_mmu_ptw_req_ex_cache.req;
//assign obi_mmu_ptw_slave.addr = i_cva6.obi_mmu_ptw_req_ex_cache.a.addr;
//assign obi_mmu_ptw_slave.we = i_cva6.obi_mmu_ptw_req_ex_cache.a.we;
//assign obi_mmu_ptw_slave.be = i_cva6.obi_mmu_ptw_req_ex_cache.a.be;
//assign obi_mmu_ptw_slave.wdata = i_cva6.obi_mmu_ptw_req_ex_cache.a.wdata;
//assign obi_mmu_ptw_slave.auser = i_cva6.obi_mmu_ptw_req_ex_cache.a.a_optional.auser;
//assign obi_mmu_ptw_slave.wuser = i_cva6.obi_mmu_ptw_req_ex_cache.a.a_optional.wuser;
//assign obi_mmu_ptw_slave.aid = i_cva6.obi_mmu_ptw_req_ex_cache.a.aid;
//assign obi_mmu_ptw_slave.atop = i_cva6.obi_mmu_ptw_req_ex_cache.a.a_optional.atop;
//assign obi_mmu_ptw_slave.memtype = i_cva6.obi_mmu_ptw_req_ex_cache.a.a_optional.memtype;
//assign obi_mmu_ptw_slave.prot = i_cva6.obi_mmu_ptw_req_ex_cache.a.a_optional.prot;
//assign obi_mmu_ptw_slave.reqpar = i_cva6.obi_mmu_ptw_req_ex_cache.reqpar;
//assign obi_mmu_ptw_slave.achk = i_cva6.obi_mmu_ptw_req_ex_cache.a.a_optional.achk;
//assign obi_mmu_ptw_slave.rready = i_cva6.obi_mmu_ptw_req_ex_cache.rready;
//assign obi_mmu_ptw_slave.rreadypar = i_cva6.obi_mmu_ptw_req_ex_cache.rreadypar;
//assign obi_mmu_ptw_slave.gnt = i_cva6.obi_mmu_ptw_rsp_cache_ex.gnt;
//assign obi_mmu_ptw_slave.gntpar = i_cva6.obi_mmu_ptw_rsp_cache_ex.gntpar;
//assign obi_mmu_ptw_slave.rvalid = i_cva6.obi_mmu_ptw_rsp_cache_ex.rvalid;
//assign obi_mmu_ptw_slave.rdata = i_cva6.obi_mmu_ptw_rsp_cache_ex.r.rdata;
//assign obi_mmu_ptw_slave.err = i_cva6.obi_mmu_ptw_rsp_cache_ex.r.err;
//assign obi_mmu_ptw_slave.ruser = i_cva6.obi_mmu_ptw_rsp_cache_ex.r.r_optional.ruser;
//assign obi_mmu_ptw_slave.rid = i_cva6.obi_mmu_ptw_rsp_cache_ex.r.rid;
//assign obi_mmu_ptw_slave.exokay = i_cva6.obi_mmu_ptw_rsp_cache_ex.r.r_optional.exokay;
//assign obi_mmu_ptw_slave.rvalidpar = i_cva6.obi_mmu_ptw_rsp_cache_ex.rvalidpar;
//assign obi_mmu_ptw_slave.rchk = i_cva6.obi_mmu_ptw_rsp_cache_ex.r.r_optional.rchk;
//assign obi_mmu_ptw_slave.req = i_cva6.obi_mmu_ptw_req.req;
//assign obi_mmu_ptw_slave.addr = i_cva6.obi_mmu_ptw_req.a.addr;
//assign obi_mmu_ptw_slave.we = i_cva6.obi_mmu_ptw_req.a.we;
//assign obi_mmu_ptw_slave.be = i_cva6.obi_mmu_ptw_req.a.be;
//assign obi_mmu_ptw_slave.wdata = i_cva6.obi_mmu_ptw_req.a.wdata;
//assign obi_mmu_ptw_slave.auser = i_cva6.obi_mmu_ptw_req.a.a_optional.auser;
//assign obi_mmu_ptw_slave.wuser = i_cva6.obi_mmu_ptw_req.a.a_optional.wuser;
//assign obi_mmu_ptw_slave.aid = i_cva6.obi_mmu_ptw_req.a.aid;
//assign obi_mmu_ptw_slave.atop = i_cva6.obi_mmu_ptw_req.a.a_optional.atop;
//assign obi_mmu_ptw_slave.memtype = i_cva6.obi_mmu_ptw_req.a.a_optional.memtype;
//assign obi_mmu_ptw_slave.prot = i_cva6.obi_mmu_ptw_req.a.a_optional.prot;
//assign obi_mmu_ptw_slave.reqpar = i_cva6.obi_mmu_ptw_req.reqpar;
//assign obi_mmu_ptw_slave.achk = i_cva6.obi_mmu_ptw_req.a.a_optional.achk;
//assign obi_mmu_ptw_slave.rready = i_cva6.obi_mmu_ptw_req.rready;
//assign obi_mmu_ptw_slave.rreadypar = i_cva6.obi_mmu_ptw_req.rreadypar;
//assign obi_mmu_ptw_slave.gnt = i_cva6.obi_mmu_ptw_rsp.gnt;
//assign obi_mmu_ptw_slave.gntpar = i_cva6.obi_mmu_ptw_rsp.gntpar;
//assign obi_mmu_ptw_slave.rvalid = i_cva6.obi_mmu_ptw_rsp.rvalid;
//assign obi_mmu_ptw_slave.rdata = i_cva6.obi_mmu_ptw_rsp.r.rdata;
//assign obi_mmu_ptw_slave.err = i_cva6.obi_mmu_ptw_rsp.r.err;
//assign obi_mmu_ptw_slave.ruser = i_cva6.obi_mmu_ptw_rsp.r.r_optional.ruser;
//assign obi_mmu_ptw_slave.rid = i_cva6.obi_mmu_ptw_rsp.r.rid;
//assign obi_mmu_ptw_slave.exokay = i_cva6.obi_mmu_ptw_rsp.r.r_optional.exokay;
//assign obi_mmu_ptw_slave.rvalidpar = i_cva6.obi_mmu_ptw_rsp.rvalidpar;
//assign obi_mmu_ptw_slave.rchk = i_cva6.obi_mmu_ptw_rsp.r.r_optional.rchk;
//assign obi_zcmt_slave.req = i_cva6.obi_zcmt_req.req;
//assign obi_zcmt_slave.addr = i_cva6.obi_zcmt_req.a.addr;
//assign obi_zcmt_slave.we = i_cva6.obi_zcmt_req.a.we;
//assign obi_zcmt_slave.be = i_cva6.obi_zcmt_req.a.be;
//assign obi_zcmt_slave.wdata = i_cva6.obi_zcmt_req.a.wdata;
//assign obi_zcmt_slave.auser = i_cva6.obi_zcmt_req.a.a_optional.auser;
//assign obi_zcmt_slave.wuser = i_cva6.obi_zcmt_req.a.a_optional.wuser;
//assign obi_zcmt_slave.aid = i_cva6.obi_zcmt_req.a.aid;
//assign obi_zcmt_slave.atop = i_cva6.obi_zcmt_req.a.a_optional.atop;
//assign obi_zcmt_slave.memtype = i_cva6.obi_zcmt_req.a.a_optional.memtype;
//assign obi_zcmt_slave.prot = i_cva6.obi_zcmt_req.a.a_optional.prot;
//assign obi_zcmt_slave.reqpar = i_cva6.obi_zcmt_req.reqpar;
//assign obi_zcmt_slave.achk = i_cva6.obi_zcmt_req.a.a_optional.achk;
//assign obi_zcmt_slave.rready = i_cva6.obi_zcmt_req.rready;
//assign obi_zcmt_slave.rreadypar = i_cva6.obi_zcmt_req.rreadypar;
//assign obi_zcmt_slave.gnt = i_cva6.obi_zcmt_rsp.gnt;
//assign obi_zcmt_slave.gntpar = i_cva6.obi_zcmt_rsp.gntpar;
//assign obi_zcmt_slave.rvalid = i_cva6.obi_zcmt_rsp.rvalid;
//assign obi_zcmt_slave.rdata = i_cva6.obi_zcmt_rsp.r.rdata;
//assign obi_zcmt_slave.err = i_cva6.obi_zcmt_rsp.r.err;
//assign obi_zcmt_slave.ruser = i_cva6.obi_zcmt_rsp.r.r_optional.ruser;
//assign obi_zcmt_slave.rid = i_cva6.obi_zcmt_rsp.r.rid;
//assign obi_zcmt_slave.exokay = i_cva6.obi_zcmt_rsp.r.r_optional.exokay;
//assign obi_zcmt_slave.rvalidpar = i_cva6.obi_zcmt_rsp.rvalidpar;
//assign obi_zcmt_slave.rchk = i_cva6.obi_zcmt_rsp.r.r_optional.rchk;
end
///assign obi_slave.mid = i_cva6.obi_fetch_rsp_cache_if.a.a_optional.mid;
///assign obi_slave.dbg = i_cva6.obi_fetch_rsp_cache_if.a.a_optional.dbg;
///assign obi_slave.mid = i_cva6.obi_fetch_rsp.a.a_optional.mid;
///assign obi_slave.dbg = i_cva6.obi_fetch_rsp.a.a_optional.dbg;
AXI_BUS #(
.AXI_ADDR_WIDTH ( CVA6Cfg.AxiAddrWidth ),