[uart/dv] Fix regression failure Reduce TL delay when uart clock is fast to have more margin to predict status and interrupt correctly Reduce num_trans for stess_all, as very a few cases may run over 3hr Signed-off-by: Weicai Yang <weicai@google.com>
diff --git a/hw/ip/uart/dv/env/seq_lib/uart_base_vseq.sv b/hw/ip/uart/dv/env/seq_lib/uart_base_vseq.sv index a8555a4..8e5dd67 100644 --- a/hw/ip/uart/dv/env/seq_lib/uart_base_vseq.sv +++ b/hw/ip/uart/dv/env/seq_lib/uart_base_vseq.sv
@@ -69,6 +69,13 @@ virtual task uart_init(); int nco = get_nco(baud_rate, cfg.clk_freq_mhz, ral.ctrl.nco.get_n_bits()); + // we skip writting some CSRs at the last 1-2 uart cycles, when baud rate is 1.5Mbps, uart + // cycle is small, need to reduce the TL delay, so that the write doesn't happen at the + // ignore period + if (baud_rate == BaudRate1p5Mbps && p_sequencer.cfg.clk_freq_mhz == ClkFreq24Mhz) begin + if (cfg.m_tl_agent_cfg.d_ready_delay_max > 5) cfg.m_tl_agent_cfg.d_ready_delay_max = 5; + end + cfg.m_uart_agent_cfg.set_uart_period_glitch_pct(uart_period_glitch_pct); // cfg uart agent to set the baud rate & parity
diff --git a/hw/ip/uart/dv/env/seq_lib/uart_stress_all_vseq.sv b/hw/ip/uart/dv/env/seq_lib/uart_stress_all_vseq.sv index d002e85..52cfe0f 100644 --- a/hw/ip/uart/dv/env/seq_lib/uart_stress_all_vseq.sv +++ b/hw/ip/uart/dv/env/seq_lib/uart_stress_all_vseq.sv
@@ -10,6 +10,10 @@ `uvm_object_new + constraint num_trans_c { + num_trans inside {[3:6]}; + } + task body(); string seq_names[] = {"uart_smoke_vseq", "uart_tx_rx_vseq",