# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
#
# This is a list of files to be passed to Verible formatter
# by calling verible-format.sh

hw/ip/adc_ctrl/dv/tests/adc_ctrl_test_pkg.sv
hw/ip/adc_ctrl/dv/env/adc_ctrl_env_pkg.sv
hw/ip/gpio/dv/tests/gpio_test_pkg.sv
hw/dv/sv/alert_esc_agent/alert_esc_base_monitor.sv
hw/dv/sv/alert_esc_agent/alert_esc_probe_if.sv
hw/dv/sv/dv_utils/dv_test_status_pkg.sv
hw/ip/tlul/generic_dv/tests/xbar_test_pkg.sv
hw/ip/usbdev/rtl/usbdev_pkg.sv
hw/ip/adc_ctrl/dv/env/adc_ctrl_env_cfg.sv
hw/ip/adc_ctrl/dv/env/adc_ctrl_env_cov.sv
hw/ip/adc_ctrl/dv/env/adc_ctrl_virtual_sequencer.sv
hw/ip/adc_ctrl/dv/env/seq_lib/adc_ctrl_vseq_list.sv
hw/ip/adc_ctrl/dv/env/seq_lib/adc_ctrl_smoke_vseq.sv
hw/ip/adc_ctrl/dv/env/seq_lib/adc_ctrl_base_vseq.sv
hw/ip/adc_ctrl/rtl/adc_ctrl.sv
hw/ip/adc_ctrl/dv/tb.sv
hw/ip/adc_ctrl/dv/tests/adc_ctrl_base_test.sv
hw/ip/prim_xilinx/rtl/prim_xilinx_buf.sv
hw/ip/prim_xilinx/rtl/prim_xilinx_clock_gating.sv
hw/ip/prim_xilinx/rtl/prim_xilinx_flop.sv
hw/ip/prim_xilinx/rtl/prim_xilinx_clock_buf.sv
hw/ip/prim_xilinx/rtl/prim_xilinx_clock_mux2.sv
hw/ip/pwm/dv/env/pwm_env_cov.sv
hw/ip/pwm/dv/env/pwm_virtual_sequencer.sv
hw/ip/pwm/dv/env/seq_lib/pwm_base_vseq.sv
hw/ip/pwm/dv/tests/pwm_base_test.sv
hw/ip/pwm/dv/tests/pwm_test_pkg.sv
hw/ip/pwm/dv/env/pwm_env_pkg.sv
hw/ip/pwm/dv/env/seq_lib/pwm_smoke_vseq.sv
hw/ip/pwm/dv/env/seq_lib/pwm_vseq_list.sv
hw/ip/rstmgr/rtl/rstmgr_crash_info.sv
hw/ip/gpio/dv/env/gpio_env.sv
hw/ip/gpio/dv/env/gpio_env_cfg.sv
hw/ip/gpio/dv/env/seq_lib/gpio_intr_rand_pgm_vseq.sv
hw/ip/gpio/dv/tb/tb.sv
hw/ip/gpio/dv/tests/gpio_base_test.sv
hw/ip/gpio/dv/env/seq_lib/gpio_vseq_list.sv
hw/ip/pinmux/rtl/pinmux_jtag_buf.sv
