Testplan
Testpoints
Stage V1 Testpoints
xbar_smoke
Test: xbar_smoke
Sequentially test each host to access any device
Stage V2 Testpoints
xbar_base_random_sequence
Test: xbar_random
Enable all hosts to randomly send transactions to any device
xbar_random_delay
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
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
xbar_unmapped_address
Tests:
-
xbar_unmapped_addr
-
xbar_error_and_unmapped_addr
-
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
xbar_error_cases
Tests:
-
xbar_error_random
-
xbar_error_and_unmapped_addr
-
Drive any random value on size, mask, opcode in both channels
-
Ensure everything just pass through host to device or device to host
xbar_all_access_same_device
Tests:
-
xbar_access_same_device
-
xbar_access_same_device_slow_rsp
-
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
xbar_all_hosts_use_same_source_id
Test: xbar_same_source
Test all hosts use same ID at the same same
xbar_stress_all
Tests:
-
xbar_stress_all
-
xbar_stress_all_with_error
-
Combine all sequences and run in parallel
-
Add random reset between each iteration
xbar_stress_with_reset
Tests:
-
xbar_stress_all_with_rand_reset
-
xbar_stress_all_with_reset_error
-
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