mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-23 13:27:10 -04:00
Add the "invalidation" icache test sequence
Also move the shared "run_opts" options to top-level in ibex_icache_sim_cfg.hjson.
This commit is contained in:
parent
3c35e44301
commit
f53d5ac645
5 changed files with 37 additions and 5 deletions
|
@ -63,7 +63,7 @@
|
|||
and seed updates for the memory to try and hit any race conditions
|
||||
between the request tracking logic and the invalidation logic.'''
|
||||
milestone: V2
|
||||
tests: []
|
||||
tests: ["ibex_icache_invalidation"]
|
||||
}
|
||||
|
||||
{
|
||||
|
|
1
dv/uvm/icache/dv/env/ibex_icache_env.core
vendored
1
dv/uvm/icache/dv/env/ibex_icache_env.core
vendored
|
@ -22,6 +22,7 @@ filesets:
|
|||
- seq_lib/ibex_icache_sanity_vseq.sv: {is_include_file: true}
|
||||
- seq_lib/ibex_icache_passthru_vseq.sv: {is_include_file: true}
|
||||
- seq_lib/ibex_icache_caching_vseq.sv: {is_include_file: true}
|
||||
- seq_lib/ibex_icache_invalidation_vseq.sv: {is_include_file: true}
|
||||
file_type: systemVerilogSource
|
||||
|
||||
targets:
|
||||
|
|
25
dv/uvm/icache/dv/env/seq_lib/ibex_icache_invalidation_vseq.sv
vendored
Normal file
25
dv/uvm/icache/dv/env/seq_lib/ibex_icache_invalidation_vseq.sv
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
// Copyright lowRISC contributors.
|
||||
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
class ibex_icache_invalidation_vseq extends ibex_icache_base_vseq;
|
||||
|
||||
`uvm_object_utils(ibex_icache_invalidation_vseq)
|
||||
`uvm_object_new
|
||||
|
||||
virtual task pre_start();
|
||||
super.pre_start();
|
||||
|
||||
// Constrain branch targets and force the cache to be enabled
|
||||
core_seq.constrain_branches = 1'b1;
|
||||
core_seq.initial_enable = 1'b1;
|
||||
core_seq.const_enable = 1'b1;
|
||||
|
||||
// Invalidate the cache occasionally. This test is all about checking that invalidation works,
|
||||
// so we don't want it too small, but it only makes sense if we actually have some gaps between
|
||||
// our "bouts of invalidation".
|
||||
core_seq.gap_between_seeds = 19;
|
||||
|
||||
endtask : pre_start
|
||||
|
||||
endclass : ibex_icache_invalidation_vseq
|
|
@ -6,3 +6,4 @@
|
|||
`include "ibex_icache_sanity_vseq.sv"
|
||||
`include "ibex_icache_passthru_vseq.sv"
|
||||
`include "ibex_icache_caching_vseq.sv"
|
||||
`include "ibex_icache_invalidation_vseq.sv"
|
||||
|
|
|
@ -36,24 +36,28 @@
|
|||
uvm_test: ibex_icache_base_test
|
||||
uvm_test_seq: ibex_icache_base_vseq
|
||||
|
||||
run_opts: ["+test_timeout_ns=1000000000"]
|
||||
|
||||
// List of test specifications.
|
||||
tests: [
|
||||
{
|
||||
name: ibex_icache_sanity
|
||||
uvm_test_seq: ibex_icache_sanity_vseq
|
||||
run_opts: ["+test_timeout_ns=1000000000"]
|
||||
}
|
||||
|
||||
{
|
||||
name: ibex_icache_passthru
|
||||
uvm_test_seq: ibex_icache_passthru_vseq
|
||||
run_opts: ["+test_timeout_ns=1000000000"]
|
||||
}
|
||||
|
||||
{
|
||||
name: ibex_icache_caching
|
||||
uvm_test_seq: ibex_icache_caching_vseq
|
||||
run_opts: ["+test_timeout_ns=1000000000"]
|
||||
}
|
||||
|
||||
{
|
||||
name: ibex_icache_invalidation
|
||||
uvm_test_seq: ibex_icache_invalidation_vseq
|
||||
}
|
||||
]
|
||||
|
||||
|
@ -63,7 +67,8 @@
|
|||
name: sanity
|
||||
tests: ["ibex_icache_sanity",
|
||||
"ibex_icache_passthru",
|
||||
"ibex_icache_caching"]
|
||||
"ibex_icache_caching",
|
||||
"ibex_icache_invalidation"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue