Skip to content

Commit

Permalink
[RV_DM] rv_dm_sba_debug_disabled_vseq
Browse files Browse the repository at this point in the history
The test ensures that the SBA interface is disabled when 'lc_hw_debug_en' is not set to true, ensuring no SBA TL accesses occur.

Signed-off-by: Shahid Mehmood <[email protected]>
  • Loading branch information
shahid-mehmod committed Jan 22, 2024
1 parent 5a92acb commit 89b8535
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 4 deletions.
2 changes: 1 addition & 1 deletion hw/ip/rv_dm/data/rv_dm_testplan.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@
- Verify via assertion checks, no transactions were seen on the SBA TL interface.
'''
stage: V2
tests: [] // TODO(#15668)
tests: ["rv_dm_sba_debug_disabled"]
}
{
name: ndmreset_req
Expand Down
1 change: 1 addition & 0 deletions hw/ip/rv_dm/dv/env/rv_dm_env.core
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ filesets:
- seq_lib/rv_dm_jtag_dmi_dm_inactive_vseq.sv: {is_include_file: true}
- seq_lib/rv_dm_jtag_dmi_debug_disabled_vseq.sv: {is_include_file: true}
- seq_lib/rv_dm_jtag_dtm_hard_reset_vseq.sv: {is_include_file: true}
- seq_lib/rv_dm_sba_debug_disabled_vseq.sv: {is_include_file: true}
file_type: systemVerilogSource

generate:
Expand Down
6 changes: 3 additions & 3 deletions hw/ip/rv_dm/dv/env/rv_dm_scoreboard.sv
Original file line number Diff line number Diff line change
Expand Up @@ -186,10 +186,10 @@ class rv_dm_scoreboard extends cip_base_scoreboard #(
item.sprint(uvm_default_line_printer)), UVM_HIGH)
if (sba_tl_access_q.size() > 0) begin
compare_sba_access(item, sba_tl_access_q.pop_front());
end else begin
`uvm_error(`gfn, $sformatf({"Received predicted SBA access but no transaction was seen on ",
end else if (cfg.rv_dm_vif.lc_hw_debug_en==lc_ctrl_pkg::Off) begin
`uvm_info(`gfn, $sformatf({"Received predicted SBA access but no transaction was seen on ",
"the SBA TL host interface: %0s"},
item.sprint(uvm_default_line_printer)))
item.sprint(uvm_default_line_printer)), UVM_HIGH)
end
end
endtask
Expand Down
33 changes: 33 additions & 0 deletions hw/ip/rv_dm/dv/env/seq_lib/rv_dm_sba_debug_disabled_vseq.sv
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0

class rv_dm_sba_debug_disabled_vseq extends rv_dm_sba_tl_access_vseq;
`uvm_object_utils(rv_dm_sba_debug_disabled_vseq)

`uvm_object_new

constraint lc_hw_debug_en_c {
lc_hw_debug_en == lc_ctrl_pkg::On;
}
constraint scanmode_c {
scanmode == prim_mubi_pkg::MuBi4False;
}

task sba_access();
csr_wr(.ptr(jtag_dmi_ral.dmcontrol.dmactive), .value(1));
req = sba_access_item::type_id::create("req");
randomize_req(req);
cfg.debugger.sba_access(req);
endtask

task body();
repeat ($urandom_range(1, 10)) begin
sba_access();
cfg.clk_rst_vif.wait_clks($urandom_range(0, 1000));
cfg.rv_dm_vif.lc_hw_debug_en = get_rand_lc_tx_val(.t_weight(0), .f_weight(1), .other_weight(4));

Check warning on line 28 in hw/ip/rv_dm/dv/env/seq_lib/rv_dm_sba_debug_disabled_vseq.sv

View workflow job for this annotation

GitHub Actions / verible-verilog-lint

[verible-verilog-lint] hw/ip/rv_dm/dv/env/seq_lib/rv_dm_sba_debug_disabled_vseq.sv#L28

Line length exceeds max: 100; is: 102 [Style: line-length] [line-length]
Raw output
message:"Line length exceeds max: 100; is: 102 [Style: line-length] [line-length]"  location:{path:"./hw/ip/rv_dm/dv/env/seq_lib/rv_dm_sba_debug_disabled_vseq.sv"  range:{start:{line:28  column:101}}}  severity:WARNING  source:{name:"verible-verilog-lint"  url:"https://github.com/chipsalliance/verible"}
sba_access();
`DV_CHECK_EQ(req.is_err, SbaErrNone)
end
endtask : body
endclass : rv_dm_sba_debug_disabled_vseq
1 change: 1 addition & 0 deletions hw/ip/rv_dm/dv/env/seq_lib/rv_dm_vseq_list.sv
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@
`include "rv_dm_jtag_dmi_dm_inactive_vseq.sv"
`include "rv_dm_jtag_dmi_debug_disabled_vseq.sv"
`include "rv_dm_jtag_dtm_hard_reset_vseq.sv"
`include "rv_dm_sba_debug_disabled_vseq.sv"
5 changes: 5 additions & 0 deletions hw/ip/rv_dm/dv/rv_dm_sim_cfg.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,11 @@
uvm_test_seq: rrv_dm_jtag_dtm_hard_reset_vseq
reseed: 2
}
{
name: rv_dm_sba_debug_disabled
uvm_test_seq: rv_dm_sba_debug_disabled_vseq
reseed: 2
}
]

// List of regressions.
Expand Down

0 comments on commit 89b8535

Please sign in to comment.