| // Copyright lowRISC contributors. |
| // 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"] |
| } |
| ] |
| } |