blob: 8d08b1e5775e5a43979e657bb9c4dbde4637d22d [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
name: "pattgen"
import_testplans: ["hw/dv/tools/testplans/csr_testplan.hjson",
"hw/dv/tools/testplans/intr_test_testplan.hjson",
"hw/dv/tools/testplans/stress_all_with_reset_testplan.hjson",
"hw/dv/tools/testplans/tl_device_access_types_testplan.hjson"],
entries: [
{
name: sanity
desc: '''
Basic sanity test for pattgen ip in which dut is randomly programmed
to generate random patterns on output channels.
Stimulus:
- Program the configuration registers of the output channels
- Randomly activate the output channels
- Re-program the configuration registers of the output channels once
completion interrupts are asserted
Checking:
- Check divided clock rate for the active channels
matching with the values of pre-divider registers
- Check generated pattern matching on the active channels
matching with the values of pattern data registers
- Check completion interrupts are asserted once a pattern
is completely generated on the active channels
'''
milestone: V1
tests: ["pattgen_sanity"]
}
{
name: intr_perf
desc: '''
Checking ip operation at min/max bandwidth
Stimulus:
- Program the pre-divider registers to highest/lowest values (lowest/highest data rate)
- Program the pattern data registers, the pattern length per output, and
repeat counter registers to smallest values
- Clear interrupts quickly
Checking:
- Ensure patterns are correctly generated
- Ensure interrupts are robust asserted and cleared (e.g. at the highest data rate)
'''
milestone: V2
tests: ["pattgen_perf"]
}
{
name: error
desc: '''
Reset then re-start the output channel on the fly.
Stimulus:
- Programm the configuration registers of the output channels
- Randomly reset the output channel in progress
- Re-program the configuration registers of the output channels
Checking:
- Ensure patterns are dropped when reset
- Ensure the output channels get back normal after reset
'''
milestone: V2
tests: ["pattgen_error"]
}
{
name: stress_all
desc: '''
Combine above sequences in one test to run sequentially,
Stimulus:
- Start sequences and randomly add reset between each sequence
Checking:
- All sequences should be finished and checked by the scoreboard
'''
milestone: V2
tests: ["pattgen_stress_all"]
}
]
}