forked from lowRISC/opentitan
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tlul_testplan.hjson
81 lines (81 loc) · 2.95 KB
/
tlul_testplan.hjson
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// Copyright lowRISC contributors (OpenTitan project).
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
// Use the name 'main' for this generic testplan. The actual testplan that imports
// this file can override the name if needed.
name: main
testpoints: [
{
name: xbar_smoke
desc: '''Sequentially test each host to access any device'''
stage: V1
tests: ["xbar_smoke"]
}
{
name: xbar_base_random_sequence
desc: '''Enable all hosts to randomly send transactions to any device'''
stage: V2
tests: ["xbar_random"]
}
{
name: xbar_random_delay
desc: '''Control delays through plusargs to create tests for below types of delay
- Zero delay for sending a/d_valid and a/d_ready
- Large delay from 0 ~ 1000 cycles
- Small delay (0-10 cycles) for a_channel, large delay (0-1000 cycles) for d_channel'''
stage: V2
tests: ["xbar_smoke_zero_delays", "xbar_smoke_large_delays", "xbar_smoke_slow_rsp",
"xbar_random_zero_delays", "xbar_random_large_delays", "xbar_random_slow_rsp"]
}
{
name: xbar_unmapped_address
desc: '''
- Host randomly drives transactions with mapped and unmapped address
- Ensure DUT returns d_error=1 if address is unmapped and transaction isn't passed down
to any device'''
stage: V2
tests: ["xbar_unmapped_addr", "xbar_error_and_unmapped_addr"]
}
{
name: xbar_error_cases
desc: '''
- Drive any random value on size, mask, opcode in both channels
- Ensure everything just pass through host to device or device to host'''
stage: V2
tests: ["xbar_error_random", "xbar_error_and_unmapped_addr"]
}
{
name: xbar_all_access_same_device
desc: '''
- Randomly pick a device, make all hosts to access this device
- If the device isn't accessible for the host, let the host randomly access the other
devices'''
stage: V2
tests: ["xbar_access_same_device", "xbar_access_same_device_slow_rsp"]
}
{
name: xbar_all_hosts_use_same_source_id
desc: '''Test all hosts use same ID at the same same'''
stage: V2
tests: ["xbar_same_source"]
}
{
name: xbar_stress_all
desc: '''
- Combine all sequences and run in parallel
- Add random reset between each iteration'''
stage: V2
tests: ["xbar_stress_all", "xbar_stress_all_with_error"]
}
{
name: xbar_stress_with_reset
desc: '''
- Inject reset while stress_all is running, after reset is completed, kill the
stress seq and then start a new stress seq
- Run a few iteration to ensure reset doesn't break the design'''
stage: V2
tests: ["xbar_stress_all_with_rand_reset", "xbar_stress_all_with_reset_error"]
}
]
}