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