// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  name: "pwm"
  import_testplans: ["hw/dv/tools/dvsim/testplans/csr_testplan.hjson",
                     "hw/dv/tools/dvsim/testplans/intr_test_testplan.hjson",
                     "hw/dv/tools/dvsim/testplans/enable_reg_testplan.hjson",
                     // TODO: enable for V2
                     //"hw/dv/tools/dvsim/testplans/stress_all_with_reset_testplan.hjson",
                     "hw/dv/tools/dvsim/testplans/tl_device_access_types_testplan.hjson"],
  testpoints: [
    {
      name: smoke
      desc: '''
            Smoke test accessing a major datapath within the pwm

            Stimulus:
              - Program pwm enable register (PWM_EN)
              - Program configuration registers (CFG, INVERT)
              - Disable blink and heartbeat enable registers (these mode are verified with other tests)
              - Program REGEN to lock (enable) register settings and start pwm function

            Checks:
              - Ensure the output pulses are correctly modulated for all channels
            '''
      milestone: V1
      tests: ["pwm_smoke"]
    }
    {
      name: perf
      desc: '''
            Checking ip operation at min/max bandwidth

            Stimulus:
              - Program timing registers (CLK_DIV, DC_RESN) to high/low values (slow/fast data rate)
              - Program other required registers for pwm operation
              - Start pwm channels

            Checks:
              - Ensure the output pulses are correctly modulated for all channels
            '''
      milestone: V2
      tests: ["pwm_perf"]
    }
    {
      name: blink
      desc: '''
            Test the blinking mode of pwm

            Stimulus:
              - Program pwm enable register (PWM_EN)
              - Program configuration registers (CFG, INVERT)
              - Enable blink mode (BLINK_EN) and program DUTY_CYCLE register
              - Program REGEN to lock (enable) register settings and start pwm function

            Checks:
              - Ensure the output pulses are correctly modulated for all channels
              - Ensure blinking channel toggles by two duty cycle values programmed to DUTY_CYCLE register
            '''
      milestone: V2
      tests: ["pwm_blink"]
    }
    {
      name: heartbeat
      desc: '''
            Test the heartbeat mode of pwm

            Stimulus:
              - Program pwm enable register (PWM_EN)
              - Program configuration registers (CFG, INVERT)
              - Enable heartbeat mode (HTBT_EN) and programm BLINK_PARAM register
              - Program REGEN to lock (enable) register settings and start pwm function

            Checks:
              - Ensure the output pulses are correctly modulated for all channels
              - Ensure output duty cycle linearly increments and decrements between two
                blink-rate values programmed to BLINK_PARAM register
            '''
      milestone: V2
      tests: ["pwm_heartbeat"]
    }
    {
      name: clock_domain
      desc: '''
            TBD -Verify the function of clock-crossing domain for pwm

            Stimulus:
              - TBD

            Checking:
              - TBD
      '''
      milestone: V2
      tests: ["pwm_clock_domain"]
    }
    {
      name: stress_all
      desc: '''
            Combine above sequences in one test then randomly select for running

            Stimulus:
              - Start sequences and randomly add reset between each sequence

            Checking:
              - All sequences should be finished and checked by the scoreboard
      '''
      milestone: V2
      tests: ["pwm_stress_all"]
    }
  ]
}
