Skip to content

Commit

Permalink
Merge pull request openhwgroup#2097 from silabs-hfegran/dev_hf_wfe_wu…
Browse files Browse the repository at this point in the history
…_agent

Added wfe wakeup uvm agent
  • Loading branch information
silabs-robin authored Aug 7, 2023
2 parents 15be17e + b61166b commit 72e162a
Show file tree
Hide file tree
Showing 40 changed files with 2,130 additions and 189 deletions.
34 changes: 20 additions & 14 deletions cv32e40s/env/uvme/uvme_cv32e40s_cfg.sv
Original file line number Diff line number Diff line change
Expand Up @@ -52,26 +52,27 @@ class uvme_cv32e40s_cfg_c extends uvma_core_cntrl_cfg_c;
rand uvma_interrupt_cfg_c interrupt_cfg;
rand uvma_clic_cfg_c clic_cfg;
rand uvma_debug_cfg_c debug_cfg;
rand uvma_wfe_wu_cfg_c wfe_wu_cfg;
rand uvma_obi_memory_cfg_c obi_memory_instr_cfg;
rand uvma_obi_memory_cfg_c obi_memory_data_cfg;
rand uvma_fencei_cfg_c fencei_cfg;
rand uvma_rvfi_cfg_c#(ILEN,XLEN) rvfi_cfg;
rand uvma_pma_cfg_c#(ILEN,XLEN) pma_cfg;

`uvm_object_utils_begin(uvme_cv32e40s_cfg_c)
`uvm_field_int ( enabled , UVM_DEFAULT )
`uvm_field_enum(uvm_active_passive_enum, is_active , UVM_DEFAULT )
`uvm_field_int ( cov_model_enabled , UVM_DEFAULT )
`uvm_field_int ( trn_log_enabled , UVM_DEFAULT )
`uvm_field_int ( buserr_scoreboarding_enabled, UVM_DEFAULT )
`uvm_field_int ( sys_clk_period , UVM_DEFAULT | UVM_DEC)
`uvm_field_enum (b_ext_e, b_ext , UVM_DEFAULT )
`uvm_field_int ( obi_memory_instr_random_err_enabled, UVM_DEFAULT )
`uvm_field_int ( obi_memory_instr_one_shot_err_enabled, UVM_DEFAULT )
`uvm_field_int ( obi_memory_data_random_err_enabled, UVM_DEFAULT )
`uvm_field_int ( obi_memory_data_one_shot_err_enabled, UVM_DEFAULT )
`uvm_field_int ( iss_suppress_invalid_msg, UVM_DEFAULT )
`uvm_field_int ( fetch_toggle_initial_delay, UVM_DEFAULT )
`uvm_field_int ( enabled, UVM_DEFAULT )
`uvm_field_enum(uvm_active_passive_enum, is_active, UVM_DEFAULT )
`uvm_field_int ( cov_model_enabled, UVM_DEFAULT )
`uvm_field_int ( trn_log_enabled, UVM_DEFAULT )
`uvm_field_int ( buserr_scoreboarding_enabled, UVM_DEFAULT )
`uvm_field_int ( sys_clk_period, UVM_DEFAULT | UVM_DEC )
`uvm_field_enum (b_ext_e, b_ext, UVM_DEFAULT )
`uvm_field_int ( obi_memory_instr_random_err_enabled, UVM_DEFAULT )
`uvm_field_int ( obi_memory_instr_one_shot_err_enabled, UVM_DEFAULT )
`uvm_field_int ( obi_memory_data_random_err_enabled, UVM_DEFAULT )
`uvm_field_int ( obi_memory_data_one_shot_err_enabled, UVM_DEFAULT )
`uvm_field_int ( iss_suppress_invalid_msg, UVM_DEFAULT )
`uvm_field_int ( fetch_toggle_initial_delay, UVM_DEFAULT )
`uvm_field_int ( nmi_timeout_instr, UVM_DEFAULT | UVM_DEC )
`uvm_field_int ( single_step_min_limit, UVM_DEFAULT | UVM_DEC )
`uvm_field_int ( irq_min_limit, UVM_DEFAULT | UVM_DEC )
Expand All @@ -82,6 +83,7 @@ class uvme_cv32e40s_cfg_c extends uvma_core_cntrl_cfg_c;
`uvm_field_object(interrupt_cfg , UVM_DEFAULT)
`uvm_field_object(clic_cfg , UVM_DEFAULT)
`uvm_field_object(debug_cfg , UVM_DEFAULT)
`uvm_field_object(wfe_wu_cfg , UVM_DEFAULT)
`uvm_field_object(obi_memory_instr_cfg , UVM_DEFAULT)
`uvm_field_object(obi_memory_data_cfg , UVM_DEFAULT)
`uvm_field_object(rvfi_cfg , UVM_DEFAULT)
Expand Down Expand Up @@ -189,6 +191,7 @@ class uvme_cv32e40s_cfg_c extends uvma_core_cntrl_cfg_c;
interrupt_cfg.enabled == basic_interrupt_enable;
clic_cfg.enabled == clic_interrupt_enable;
debug_cfg.enabled == 1;
wfe_wu_cfg.enabled == 1;
rvfi_cfg.enabled == 1;
obi_memory_instr_cfg.enabled == 1;
obi_memory_data_cfg.enabled == 1;
Expand Down Expand Up @@ -259,6 +262,7 @@ class uvme_cv32e40s_cfg_c extends uvma_core_cntrl_cfg_c;
clknrst_cfg.is_active == UVM_ACTIVE;
interrupt_cfg.is_active == UVM_ACTIVE;
clic_cfg.is_active == UVM_ACTIVE;
wfe_wu_cfg.is_active == UVM_ACTIVE;
debug_cfg.is_active == UVM_ACTIVE;
obi_memory_instr_cfg.is_active == UVM_ACTIVE;
obi_memory_data_cfg.is_active == UVM_ACTIVE;
Expand All @@ -272,6 +276,7 @@ class uvme_cv32e40s_cfg_c extends uvma_core_cntrl_cfg_c;
debug_cfg.trn_log_enabled == 0;
interrupt_cfg.trn_log_enabled == 0;
clic_cfg.trn_log_enabled == 0;
wfe_wu_cfg.trn_log_enabled == 0;
isacov_cfg.trn_log_enabled == 0;
obi_memory_data_cfg.trn_log_enabled == 1;
obi_memory_instr_cfg.trn_log_enabled == 1;
Expand All @@ -281,6 +286,7 @@ class uvme_cv32e40s_cfg_c extends uvma_core_cntrl_cfg_c;
debug_cfg.trn_log_enabled == 0;
interrupt_cfg.trn_log_enabled == 0;
clic_cfg.trn_log_enabled == 0;
wfe_wu_cfg.trn_log_enabled == 0;
isacov_cfg.trn_log_enabled == 0;
obi_memory_data_cfg.trn_log_enabled == 0;
obi_memory_instr_cfg.trn_log_enabled == 0;
Expand Down Expand Up @@ -409,7 +415,6 @@ function uvme_cv32e40s_cfg_c::new(string name="uvme_cv32e40s_cfg");
single_step_min_limit.rand_mode(0);
end


if ($test$plusargs("enable_clic")) begin
clic_interrupt_enable = 1;
basic_interrupt_enable = 0;
Expand All @@ -426,6 +431,7 @@ function uvme_cv32e40s_cfg_c::new(string name="uvme_cv32e40s_cfg");
interrupt_cfg = uvma_interrupt_cfg_c::type_id::create("interrupt_cfg");
clic_cfg = uvma_clic_cfg_c::type_id::create("clic_cfg");
debug_cfg = uvma_debug_cfg_c::type_id::create("debug_cfg");
wfe_wu_cfg = uvma_wfe_wu_cfg_c::type_id::create("wfe_wu_cfg");
obi_memory_instr_cfg = uvma_obi_memory_cfg_c::type_id::create("obi_memory_instr_cfg");
obi_memory_data_cfg = uvma_obi_memory_cfg_c::type_id::create("obi_memory_data_cfg" );
rvfi_cfg = uvma_rvfi_cfg_c#(ILEN,XLEN)::type_id::create("rvfi_cfg");
Expand Down
4 changes: 4 additions & 0 deletions cv32e40s/env/uvme/uvme_cv32e40s_cntxt.sv
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,15 @@ class uvme_cv32e40s_cntxt_c extends uvm_object;
virtual uvmt_cv32e40s_vp_status_if_t vp_status_vif; ///< Virtual interface for Virtual Peripherals
virtual uvma_interrupt_if_t intr_vif; ///< Virtual interface for interrupts
virtual uvma_clic_if_t#(CORE_PARAM_CLIC_ID_WIDTH) clic_vif; ///< Virtual interface for clic interrupts
virtual uvma_wfe_wu_if_t wfe_wu_vif;
virtual uvma_debug_if_t debug_vif; ///< Virtual interface for debug

// Agent context handles
uvma_cv32e40s_core_cntrl_cntxt_c core_cntrl_cntxt;
uvma_clknrst_cntxt_c clknrst_cntxt;
uvma_interrupt_cntxt_c interrupt_cntxt;
uvma_clic_cntxt_c#(CORE_PARAM_CLIC_ID_WIDTH) clic_cntxt;
uvma_wfe_wu_cntxt_c wfe_wu_cntxt;
uvma_debug_cntxt_c debug_cntxt;
uvma_obi_memory_cntxt_c#(
.AUSER_WIDTH(ENV_PARAM_INSTR_AUSER_WIDTH),
Expand Down Expand Up @@ -74,6 +76,7 @@ class uvme_cv32e40s_cntxt_c extends uvm_object;
`uvm_field_object(interrupt_cntxt, UVM_DEFAULT)
`uvm_field_object(clic_cntxt, UVM_DEFAULT)
`uvm_field_object(debug_cntxt , UVM_DEFAULT)
`uvm_field_object(wfe_wu_cntxt , UVM_DEFAULT)
`uvm_field_object(obi_memory_instr_cntxt, UVM_DEFAULT)
`uvm_field_object(obi_memory_data_cntxt , UVM_DEFAULT)
`uvm_field_object(rvfi_cntxt, UVM_DEFAULT)
Expand Down Expand Up @@ -105,6 +108,7 @@ function uvme_cv32e40s_cntxt_c::new(string name="uvme_cv32e40s_cntxt");
fencei_cntxt = uvma_fencei_cntxt_c::type_id::create("fencei_cntxt");
interrupt_cntxt = uvma_interrupt_cntxt_c::type_id::create("interrupt_cntxt");
clic_cntxt = uvma_clic_cntxt_c#(CORE_PARAM_CLIC_ID_WIDTH)::type_id::create("clic_cntxt");
wfe_wu_cntxt = uvma_wfe_wu_cntxt_c::type_id::create("wfe_wu_cntxt");
obi_memory_data_cntxt = uvma_obi_memory_cntxt_c#(
.AUSER_WIDTH(ENV_PARAM_INSTR_AUSER_WIDTH),
.WUSER_WIDTH(ENV_PARAM_INSTR_WUSER_WIDTH),
Expand Down
2 changes: 2 additions & 0 deletions cv32e40s/env/uvme/uvme_cv32e40s_core_cntrl_if.sv
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ interface uvme_cv32e40s_core_cntrl_if_t

logic clk;
logic fetch_en;
logic wu_wfe;

logic scan_cg_en;
logic [31:0] boot_addr;
Expand All @@ -31,6 +32,7 @@ interface uvme_cv32e40s_core_cntrl_if_t

clocking drv_cb @(posedge clk);
output fetch_en;
output wu_wfe;
endclocking : drv_cb

endinterface : uvme_cv32e40s_core_cntrl_if_t
12 changes: 12 additions & 0 deletions cv32e40s/env/uvme/uvme_cv32e40s_env.sv
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class uvme_cv32e40s_env_c extends uvm_env;
uvma_clknrst_agent_c clknrst_agent;
uvma_interrupt_agent_c interrupt_agent;
uvma_clic_agent_c#(CORE_PARAM_CLIC_ID_WIDTH) clic_agent;
uvma_wfe_wu_agent_c wfe_wu_agent;
uvma_debug_agent_c debug_agent;
uvma_obi_memory_agent_c#(
.AUSER_WIDTH(ENV_PARAM_INSTR_AUSER_WIDTH),
Expand Down Expand Up @@ -360,6 +361,13 @@ function void uvme_cv32e40s_env_c::retrieve_vifs();
`uvm_info("VIF", $sformatf("Found clic_vif handle of type %s in uvm_config_db", $typename(cntxt.clic_vif)), UVM_DEBUG)
end

if (!uvm_config_db#(virtual uvma_wfe_wu_if_t)::get(this, "", "wfe_wu_vif", cntxt.wfe_wu_vif)) begin
`uvm_fatal("VIF", $sformatf("Could not find wfe_wu_vif handle of type %s in uvm_config_db", $typename(cntxt.wfe_wu_vif)))
end
else begin
`uvm_info("VIF", $sformatf("Found wfe_wu_vif handle of type %s in uvm_config_db", $typename(cntxt.wfe_wu_vif)), UVM_DEBUG)
end

if (!uvm_config_db#(virtual uvma_debug_if_t)::get(this, "", "debug_vif", cntxt.debug_vif)) begin
`uvm_fatal("VIF", $sformatf("Could not find debug_vif handle of type %s in uvm_config_db", $typename(cntxt.debug_vif)))
end
Expand All @@ -384,6 +392,7 @@ function void uvme_cv32e40s_env_c::assign_cfg();
uvm_config_db#(uvma_fencei_cfg_c)::set(this, "fencei_agent", "cfg", cfg.fencei_cfg);
uvm_config_db#(uvma_interrupt_cfg_c)::set(this, "*interrupt_agent", "cfg", cfg.interrupt_cfg);
uvm_config_db#(uvma_clic_cfg_c)::set(this, "*clic_agent", "cfg", cfg.clic_cfg);
uvm_config_db#(uvma_wfe_wu_cfg_c)::set(this, "*wfe_wu_agent", "cfg", cfg.wfe_wu_cfg);
uvm_config_db#(uvma_isacov_cfg_c)::set(this, "*isacov_agent", "cfg", cfg.isacov_cfg);
uvm_config_db#(uvma_obi_memory_cfg_c)::set(this, "obi_memory_data_agent", "cfg", cfg.obi_memory_data_cfg);
uvm_config_db#(uvma_obi_memory_cfg_c)::set(this, "obi_memory_instr_agent", "cfg", cfg.obi_memory_instr_cfg);
Expand All @@ -403,6 +412,7 @@ function void uvme_cv32e40s_env_c::assign_cntxt();
uvm_config_db#(uvma_fencei_cntxt_c)::set(this, "fencei_agent", "cntxt", cntxt.fencei_cntxt);
uvm_config_db#(uvma_interrupt_cntxt_c)::set(this, "interrupt_agent", "cntxt", cntxt.interrupt_cntxt);
uvm_config_db#(uvma_clic_cntxt_c#(CORE_PARAM_CLIC_ID_WIDTH))::set(this, "clic_agent", "cntxt", cntxt.clic_cntxt);
uvm_config_db#(uvma_wfe_wu_cntxt_c)::set(this, "wfe_wu_agent", "cntxt", cntxt.wfe_wu_cntxt);
uvm_config_db#(uvma_obi_memory_cntxt_c#(
.AUSER_WIDTH(ENV_PARAM_DATA_AUSER_WIDTH),
.WUSER_WIDTH(ENV_PARAM_DATA_WUSER_WIDTH),
Expand Down Expand Up @@ -435,6 +445,7 @@ function void uvme_cv32e40s_env_c::create_agents();
clknrst_agent = uvma_clknrst_agent_c::type_id::create("clknrst_agent", this);
interrupt_agent = uvma_interrupt_agent_c::type_id::create("interrupt_agent", this);
clic_agent = uvma_clic_agent_c#(CORE_PARAM_CLIC_ID_WIDTH)::type_id::create("clic_agent", this);
wfe_wu_agent = uvma_wfe_wu_agent_c::type_id::create("wfe_wu_agent", this);
debug_agent = uvma_debug_agent_c::type_id::create("debug_agent", this);
obi_memory_instr_agent = uvma_obi_memory_agent_c#(
.AUSER_WIDTH(ENV_PARAM_INSTR_AUSER_WIDTH),
Expand Down Expand Up @@ -536,6 +547,7 @@ function void uvme_cv32e40s_env_c::assemble_vsequencer();
vsequencer.clknrst_sequencer = clknrst_agent.sequencer;
vsequencer.interrupt_sequencer = interrupt_agent.sequencer;
vsequencer.clic_sequencer = clic_agent.sequencer;
vsequencer.wfe_wu_sequencer = wfe_wu_agent.sequencer;
vsequencer.debug_sequencer = debug_agent.sequencer;
vsequencer.obi_memory_instr_sequencer = obi_memory_instr_agent.sequencer;
vsequencer.obi_memory_data_sequencer = obi_memory_data_agent.sequencer;
Expand Down
2 changes: 2 additions & 0 deletions cv32e40s/env/uvme/uvme_cv32e40s_pkg.sv
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ package uvme_cv32e40s_pkg;
import uvma_isacov_pkg::*;
import uvma_clknrst_pkg::*;
import uvma_clic_pkg::*;
import uvma_wfe_wu_pkg::*;
import uvma_interrupt_pkg::*;
import uvma_debug_pkg::*;
import uvma_obi_memory_pkg::*;
Expand Down Expand Up @@ -82,6 +83,7 @@ package uvme_cv32e40s_pkg;
`include "uvme_cv32e40s_vseq_lib.sv"
`include "uvme_cv32e40s_core_cntrl_base_seq.sv"
`include "uvme_cv32e40s_core_cntrl_fetch_toggle_seq.sv"
`include "uvme_cv32e40s_wu_wfe_noise_vseq.sv"
`include "uvme_cv32e40s_random_debug_vseq.sv"
`include "uvme_cv32e40s_random_debug_reset_vseq.sv"
`include "uvme_cv32e40s_random_debug_bootset_vseq.sv"
Expand Down
1 change: 1 addition & 0 deletions cv32e40s/env/uvme/uvme_cv32e40s_vsqr.sv
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ class uvme_cv32e40s_vsqr_c extends uvm_sequencer#(
uvma_clknrst_sqr_c clknrst_sequencer;
uvma_interrupt_sqr_c interrupt_sequencer;
uvma_clic_sqr_c#(CORE_PARAM_CLIC_ID_WIDTH) clic_sequencer;
uvma_wfe_wu_sqr_c wfe_wu_sequencer;
uvma_debug_sqr_c debug_sequencer;
uvma_obi_memory_sqr_c#(
.AUSER_WIDTH(ENV_PARAM_INSTR_AUSER_WIDTH),
Expand Down
10 changes: 5 additions & 5 deletions cv32e40s/env/uvme/vseq/uvme_cv32e40s_clic_noise_vseq.sv
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ task uvme_cv32e40s_clic_noise_c::body();

repeat (initial_delay_assert_until_ack) @(cntxt.clic_cntxt.vif.drv_cb);

while(1) begin
forever begin
uvma_clic_seq_item_c irq_req;

`uvm_create_on(irq_req, p_sequencer.clic_sequencer);
Expand All @@ -117,11 +117,11 @@ task uvme_cv32e40s_clic_noise_c::body();

repeat (initial_delay_assert) @(cntxt.clic_cntxt.vif.drv_cb);

while(1) begin
forever begin
uvma_clic_seq_item_c irq_req;

`uvm_do_on_with(irq_req, p_sequencer.clic_sequencer, {
action == UVMA_CLIC_SEQ_ITEM_ACTION_DEASSERT;
action == UVMA_CLIC_SEQ_ITEM_ACTION_ASSERT;
})

rand_delay();
Expand All @@ -133,11 +133,11 @@ task uvme_cv32e40s_clic_noise_c::body();

repeat (initial_delay_deassert) @(cntxt.clic_cntxt.vif.drv_cb);

while(1) begin
forever begin
uvma_clic_seq_item_c irq_req;

`uvm_do_on_with(irq_req, p_sequencer.clic_sequencer, {
action == UVMA_CLIC_SEQ_ITEM_ACTION_ASSERT;
action == UVMA_CLIC_SEQ_ITEM_ACTION_DEASSERT;
})

rand_delay();
Expand Down
120 changes: 120 additions & 0 deletions cv32e40s/env/uvme/vseq/uvme_cv32e40s_wu_wfe_noise_vseq.sv
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
// Copyright 2023 Silicon Labs. Inc.
//
// Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://solderpad.org/licenses/
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


`ifndef __UVME_CV32E40S_WU_WFE_NOISE_VSEQ_C__
`define __UVME_CV32E40S_WU_WFE_NOISE_VSEQ_C__

/**
*
*/
class uvme_cv32e40s_wu_wfe_noise_vseq_c extends uvme_cv32e40s_base_vseq_c;

rand int unsigned initial_delay_assert;
rand int unsigned initial_delay_deassert;

rand int unsigned short_delay_wgt;
rand int unsigned medium_delay_wgt;
rand int unsigned long_delay_wgt;

semaphore asserted_wu;
semaphore deasserted_wu;
`uvm_object_utils_begin(uvme_cv32e40s_wu_wfe_noise_vseq_c);
`uvm_object_utils_end

constraint default_delay_c {
soft short_delay_wgt == 2;
soft medium_delay_wgt == 5;
soft long_delay_wgt == 3;
}

constraint valid_initial_delay_assert_c {
initial_delay_assert dist { 0 :/ 2,
[10:500] :/ 4,
[500:1000] :/ 3};
}

constraint valid_initial_delay_deassert_c {
initial_delay_deassert dist { 0 :/ 2,
[10:500] :/ 4,
[500:1000] :/ 3};
}

extern function new(string name = "");

extern virtual task body();

extern virtual task rand_delay();

endclass : uvme_cv32e40s_wu_wfe_noise_vseq_c

function uvme_cv32e40s_wu_wfe_noise_vseq_c::new(string name = "");
super.new(name);
endfunction : new

task uvme_cv32e40s_wu_wfe_noise_vseq_c::rand_delay();
randcase
short_delay_wgt: repeat($urandom_range(100, 1)) @(cntxt.wfe_wu_cntxt.vif.drv_cb);
medium_delay_wgt: repeat($urandom_range(500, 100)) @(cntxt.wfe_wu_cntxt.vif.drv_cb);
long_delay_wgt: repeat($urandom_range(10_000, 5000)) @(cntxt.wfe_wu_cntxt.vif.drv_cb);
endcase
endtask : rand_delay

task uvme_cv32e40s_wu_wfe_noise_vseq_c::body();
asserted_wu = new(1);
deasserted_wu = new(1);

// start with deasserted
void'(asserted_wu.put(1));

fork
begin : gen_assert
repeat (initial_delay_assert) @(cntxt.wfe_wu_cntxt.vif.drv_cb);

forever begin
@(cntxt.wfe_wu_cntxt.vif.drv_cb)
if (deasserted_wu.try_get(1)) begin
uvma_wfe_wu_seq_item_c wfe_req;

`uvm_do_on_with(wfe_req, p_sequencer.wfe_wu_sequencer, {
action == UVMA_WFE_WU_SEQ_ITEM_ACTION_ASSERT;
})
rand_delay();
asserted_wu.put(1);
end
end
end

begin : gen_deassert
repeat (initial_delay_deassert) @(cntxt.wfe_wu_cntxt.vif.drv_cb);

forever begin
@(cntxt.wfe_wu_cntxt.vif.drv_cb)
if (asserted_wu.try_get(1)) begin
uvma_wfe_wu_seq_item_c wfe_req;

`uvm_do_on_with(wfe_req, p_sequencer.wfe_wu_sequencer, {
action == UVMA_WFE_WU_SEQ_ITEM_ACTION_DEASSERT;
})
rand_delay();
deasserted_wu.put(1);
end
end
end
join

endtask : body

`endif // __UVME_CV32E40S_WU_WFE_NOISE_VSEQ_C__

1 change: 1 addition & 0 deletions cv32e40s/tb/uvmt/uvmt_cv32e40s.flist
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ ${FILE_LIST_IDV_DEPS}
-f ${DV_UVMA_CLIC_PATH}/uvma_clic_pkg.flist
-f ${DV_UVMA_DEBUG_PATH}/uvma_debug_pkg.flist
-f ${DV_UVMA_FENCEI_PATH}/uvma_fencei_pkg.flist
-f ${DV_UVMA_WFE_WU_PATH}/uvma_wfe_wu_pkg.flist


// CV32E40S test bench Directories
Expand Down
Loading

0 comments on commit 72e162a

Please sign in to comment.