[prim_arbiter,lint] Tell Verilator to split variables for scheduling

Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
diff --git a/hw/ip/prim/lint/prim_arbiter.vlt b/hw/ip/prim/lint/prim_arbiter.vlt
new file mode 100644
index 0000000..91abda9
--- /dev/null
+++ b/hw/ip/prim/lint/prim_arbiter.vlt
@@ -0,0 +1,22 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+`verilator_config
+
+// Tell the Verilator scheduler to split up these variables into
+// separate pieces when it's figuring out process scheduling. This
+// avoids spurious UNOPTFLAT warnings caused by the fact that the
+// arrays feed into themselves (with different bits for different
+// positions in the tree).
+split_var -module "prim_arbiter_fixed" -var "data_tree"
+split_var -module "prim_arbiter_fixed" -var "gnt_tree"
+split_var -module "prim_arbiter_fixed" -var "idx_tree"
+split_var -module "prim_arbiter_fixed" -var "req_tree"
+
+split_var -module "prim_arbiter_tree" -var "req_tree"
+split_var -module "prim_arbiter_tree" -var "prio_tree"
+split_var -module "prim_arbiter_tree" -var "sel_tree"
+split_var -module "prim_arbiter_tree" -var "mask_tree"
+split_var -module "prim_arbiter_tree" -var "idx_tree"
+split_var -module "prim_arbiter_tree" -var "data_tree"
diff --git a/hw/ip/prim/prim_arbiter.core b/hw/ip/prim/prim_arbiter.core
index 18c6d3b..b7aa7f2 100644
--- a/hw/ip/prim/prim_arbiter.core
+++ b/hw/ip/prim/prim_arbiter.core
@@ -19,6 +19,9 @@
     depend:
       # common waivers
       - lowrisc:lint:common
+    files:
+      - lint/prim_arbiter.vlt
+    file_type: vlt
 
   files_ascentlint_waiver:
     depend: