[flash_ctrl,dv] Enable random device param for all tests
Signed-off-by: Jaedon Kim <jdonjdon@google.com>
diff --git a/hw/ip/flash_ctrl/dv/flash_ctrl_base_sim_cfg.hjson b/hw/ip/flash_ctrl/dv/flash_ctrl_base_sim_cfg.hjson
index 38047bb..ba0eb8e 100644
--- a/hw/ip/flash_ctrl/dv/flash_ctrl_base_sim_cfg.hjson
+++ b/hw/ip/flash_ctrl/dv/flash_ctrl_base_sim_cfg.hjson
@@ -52,6 +52,9 @@
// Default iterations for all tests - each test entry can override this.
reseed: 50
+ // Add default run opt
+ run_opts: ["+flash_rand_delay_en=1"]
+
// Default UVM test and seq class name.
uvm_test: flash_ctrl_base_test
uvm_test_seq: flash_ctrl_base_vseq
diff --git a/hw/ip/prim_generic/rtl/prim_generic_flash_bank.sv b/hw/ip/prim_generic/rtl/prim_generic_flash_bank.sv
index d61a9a6..b6e0d8b 100644
--- a/hw/ip/prim_generic/rtl/prim_generic_flash_bank.sv
+++ b/hw/ip/prim_generic/rtl/prim_generic_flash_bank.sv
@@ -53,9 +53,19 @@
int EraseLatency = 200;
initial begin
+ bit flash_rand_delay_en;
+ void'($value$plusargs("flash_rand_delay_en=%0b", flash_rand_delay_en));
+
+ if (flash_rand_delay_en) begin
+ ReadLatency = $urandom_range(1, 5);
+ ProgLatency = $urandom_range(25, 50);
+ EraseLatency = $urandom_range(125, 200);
+ end
void'($value$plusargs("flash_read_latency=%0d", ReadLatency));
void'($value$plusargs("flash_program_latency=%0d", ProgLatency));
void'($value$plusargs("flash_erase_latency=%0d", EraseLatency));
+ $display("%m: ReadLatency:%0d ProgLatency:%0d EraseLatency:%0d",
+ ReadLatency, ProgLatency, EraseLatency);
end
`endif