[DV] Increase number of resets in reset_test (#418)

This commit is contained in:
udinator 2019-10-25 14:28:06 -07:00 committed by GitHub
parent d3c7b887d7
commit edf9371c6c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 23 deletions

View file

@ -19,3 +19,4 @@
--override riscvOVPsim/cpu/reset_address=0x80000080
--override riscvOVPsim/cpu/simulateexceptions=T
--override riscvOVPsim/cpu/wfi_is_nop=T
--override riscvOVPsim/cpu/tval_ii_code=T

View file

@ -237,7 +237,7 @@
+no_fence=1
+no_wfi=1
+no_ebreak=1
+instr_cnt=6000
+instr_cnt=10000
+randomize_csr=1
rtl_test: core_ibex_debug_ebreak_test
sim_opts: >
@ -276,7 +276,7 @@
iterations: 15
gen_test: riscv_rand_instr_test
gen_opts: >
+instr_cnt=6000
+instr_cnt=10000
+require_signature_addr=1
+enable_interrupt=1
+randomize_csr=1
@ -366,7 +366,7 @@
+gen_debug_section=1
+no_ebreak=1
+no_branch_jump=1
+instr_cnt=6000
+instr_cnt=10000
+no_csr_instr=1
+no_fence=1
+num_of_sub_program=0
@ -387,8 +387,9 @@
iterations: 15
gen_test: riscv_rand_instr_test
gen_opts: >
+instr_cnt=10000
+num_of_sub_program=5
+enable_unaligned_load_store=1
+directed_instr_0=riscv_load_store_rand_instr_stream,10
rtl_test: core_ibex_reset_test
compare_opts:
compare_final_value_only: 1

View file

@ -37,27 +37,32 @@ class core_ibex_reset_test extends core_ibex_base_test;
`uvm_component_utils(core_ibex_reset_test)
`uvm_component_new
bit [5:0] num_reset;
virtual task send_stimulus();
vseq.start(env.vseqr);
// Mid-test reset is possible in a wide range of times
clk_vif.wait_clks($urandom_range(20000, 200000));
fork
begin
dut_vif.fetch_enable = 1'b0;
clk_vif.reset();
end
begin
clk_vif.wait_clks(1);
// Flush FIFOs
item_collected_port.flush();
irq_collected_port.flush();
// Reset testbench state
env.reset();
load_binary_to_mem();
end
join
// Assert fetch_enable to have the core start executing from boot address
dut_vif.fetch_enable = 1'b1;
`DV_CHECK_STD_RANDOMIZE_WITH_FATAL(num_reset, num_reset > 20;)
for (int i = 0; i < num_reset; i = i + 1) begin
// Mid-test reset is possible in a wide range of times
clk_vif.wait_clks($urandom_range(0, 50000));
fork
begin
dut_vif.fetch_enable = 1'b0;
clk_vif.reset();
end
begin
clk_vif.wait_clks(1);
// Flush FIFOs
item_collected_port.flush();
irq_collected_port.flush();
// Reset testbench state
env.reset();
load_binary_to_mem();
end
join
// Assert fetch_enable to have the core start executing from boot address
dut_vif.fetch_enable = 1'b1;
end
endtask
endclass