Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RV_DM] rv_dm_sba_debug_disabled_vseq #20739

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not completely sure I understand this. I think the previous code was dying with an error if we saw an SBA access that wasn't expected. Your patch demotes this to uvm_info / UVM_HIGH and makes it happen less often (checking lc_hw_debug_en).

We definitely should not make this change without some careful thought and explanatory comments.

`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
Loading