[rom_ctrl, dv] combined successful_rom_chk test with smoke test
Based on V1 review comments, successful_rom_chk test is combined with
rom_ctrl_smoke testcase.
Signed-off-by: Prajwala Puttappa <prajwalaputtappa@lowrisc.org>
diff --git a/hw/ip/rom_ctrl/data/rom_ctrl_testplan.hjson b/hw/ip/rom_ctrl/data/rom_ctrl_testplan.hjson
index 633fef9..c699a21 100644
--- a/hw/ip/rom_ctrl/data/rom_ctrl_testplan.hjson
+++ b/hw/ip/rom_ctrl/data/rom_ctrl_testplan.hjson
@@ -19,33 +19,20 @@
image and load into memory model
- Allow the rom check to complete
- Perform some random memory accesses
+ - Create a random valid ROM where expected digest matches with the KMAC digest
+ - Repeat steps 2 and 3.
**Checks**:
- Check that all data supplied to kmac is correct
- Check that the rom checking sequence gives the expected result
- Check that the memory accesses return expected data
- - Check that pwrmgr_data_o.good is not asserted.
+ - Check that pwrmgr_data_o.good is not asserted in first iteration.
+ - Check that pwrmgr_data_o.good is asserted in second iteration.
'''
milestone: V1
tests: ["rom_ctrl_smoke"]
}
{
- name: successful_rom_chk
- desc: '''
- Test successful completion of rom check
-
- **Stimulus**:
- - Create a random valid ROM image and load into memory model.
- - Ensure that KMAC and expected digest match.
-
- **Checks**:
- - Check that pwrmgr_data_o.good is asserted.
- '''
- milestone: V1
- tests: []
-
- }
- {
name: corrupt_sig_fatal_chk
desc: '''
Corrupt integrity of signals like the select signal to addr mux.
diff --git a/hw/ip/rom_ctrl/dv/env/rom_ctrl_env.core b/hw/ip/rom_ctrl/dv/env/rom_ctrl_env.core
index b6ee91e..73fabfe 100644
--- a/hw/ip/rom_ctrl/dv/env/rom_ctrl_env.core
+++ b/hw/ip/rom_ctrl/dv/env/rom_ctrl_env.core
@@ -26,7 +26,6 @@
- seq_lib/rom_ctrl_base_vseq.sv: {is_include_file: true}
- seq_lib/rom_ctrl_common_vseq.sv: {is_include_file: true}
- seq_lib/rom_ctrl_smoke_vseq.sv: {is_include_file: true}
- - seq_lib/rom_ctrl_chk_successful_vseq.sv: {is_include_file: true}
- seq_lib/rom_ctrl_stress_all_vseq.sv: {is_include_file: true}
file_type: systemVerilogSource
diff --git a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_chk_successful_vseq.sv b/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_chk_successful_vseq.sv
deleted file mode 100644
index de3f16a..0000000
--- a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_chk_successful_vseq.sv
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright lowRISC contributors.
-// Licensed under the Apache License, Version 2.0, see LICENSE for details.
-// SPDX-License-Identifier: Apache-2.0
-
-// smoke test vseq
-class rom_ctrl_chk_successful_vseq extends rom_ctrl_base_vseq;
- `uvm_object_utils(rom_ctrl_chk_successful_vseq)
- `uvm_object_new
-
- // Indicates the number of memory accesses to be performed
- rand int num_mem_reads;
-
- constraint num_mem_reads_c {
- num_mem_reads inside {[20 : 50]};
- }
-
- task body();
- set_kmac_digest();
- `DV_CHECK_MEMBER_RANDOMIZE_FATAL(num_mem_reads)
- do_rand_ops(num_mem_reads);
- read_digest_regs();
- endtask : body
-
-endclass : rom_ctrl_chk_successful_vseq
diff --git a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_smoke_vseq.sv b/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_smoke_vseq.sv
index 21d9f49..1db8239 100644
--- a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_smoke_vseq.sv
+++ b/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_smoke_vseq.sv
@@ -19,6 +19,11 @@
`DV_CHECK_MEMBER_RANDOMIZE_FATAL(num_mem_reads)
do_rand_ops(num_mem_reads);
read_digest_regs();
+ dut_init();
+ set_kmac_digest();
+ `DV_CHECK_MEMBER_RANDOMIZE_FATAL(num_mem_reads)
+ do_rand_ops(num_mem_reads);
+ read_digest_regs();
endtask : body
endclass : rom_ctrl_smoke_vseq
diff --git a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_stress_all_vseq.sv b/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_stress_all_vseq.sv
index a390625..c379da1 100644
--- a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_stress_all_vseq.sv
+++ b/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_stress_all_vseq.sv
@@ -14,8 +14,7 @@
task body();
string seq_names[] = {"rom_ctrl_smoke_vseq",
- "rom_ctrl_common_vseq",
- "rom_ctrl_chk_successful_vseq"};
+ "rom_ctrl_common_vseq"};
for (int i = 1; i <= num_trans; i++) begin
uvm_sequence seq;
rom_ctrl_base_vseq rom_ctrl_vseq;
diff --git a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_vseq_list.sv b/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_vseq_list.sv
index cbf10e7..922eee6 100644
--- a/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_vseq_list.sv
+++ b/hw/ip/rom_ctrl/dv/env/seq_lib/rom_ctrl_vseq_list.sv
@@ -5,5 +5,4 @@
`include "rom_ctrl_base_vseq.sv"
`include "rom_ctrl_smoke_vseq.sv"
`include "rom_ctrl_common_vseq.sv"
-`include "rom_ctrl_chk_successful_vseq.sv"
`include "rom_ctrl_stress_all_vseq.sv"
diff --git a/hw/ip/rom_ctrl/dv/rom_ctrl_sim_cfg.hjson b/hw/ip/rom_ctrl/dv/rom_ctrl_sim_cfg.hjson
index 63c7baf..62b7f5b 100644
--- a/hw/ip/rom_ctrl/dv/rom_ctrl_sim_cfg.hjson
+++ b/hw/ip/rom_ctrl/dv/rom_ctrl_sim_cfg.hjson
@@ -56,10 +56,6 @@
uvm_test_seq: rom_ctrl_smoke_vseq
}
{
- name: successful_rom_chk
- uvm_test_seq: rom_ctrl_chk_successful_vseq
- }
- {
name: rom_ctrl_stress_all
uvm_test_seq: rom_ctrl_stress_all_vseq
}