[fpv] Add lint checking to FPV tb
This PR adds lint checking for FPV testbench.
Signed-off-by: Cindy Chen <chencindy@google.com>
diff --git a/hw/_index.md b/hw/_index.md
index 0760122..ef14a85 100644
--- a/hw/_index.md
+++ b/hw/_index.md
@@ -23,6 +23,7 @@
* [Verilator lint summary results (nightly)](https://reports.opentitan.org/hw/top_earlgrey/lint/verilator/summary.html)
* [Style lint summary results (nightly)](https://reports.opentitan.org/hw/top_earlgrey/lint/veriblelint/summary.html)
* [DV Style lint summary results (nightly)](https://reports.opentitan.org/hw/top_earlgrey/dv/lint/veriblelint/summary.html)
+* [FPV Style lint summary results (nightly)](https://reports.opentitan.org/hw/top_earlgrey/fpv/lint/veriblelint/summary.html)
## Comportable IPs
diff --git a/hw/ip/kmac/fpv/sha3pad_fpv.core b/hw/ip/kmac/fpv/sha3pad_fpv.core
index 547fb3c..c500307 100644
--- a/hw/ip/kmac/fpv/sha3pad_fpv.core
+++ b/hw/ip/kmac/fpv/sha3pad_fpv.core
@@ -25,3 +25,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/padctrl/fpv/padctrl_fpv.core b/hw/ip/padctrl/fpv/padctrl_fpv.core
index 07e33dd..820a2da 100644
--- a/hw/ip/padctrl/fpv/padctrl_fpv.core
+++ b/hw/ip/padctrl/fpv/padctrl_fpv.core
@@ -40,3 +40,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/pinmux/fpv/pinmux_fpv.core b/hw/ip/pinmux/fpv/pinmux_fpv.core
index dc7f03c..baeeb52 100644
--- a/hw/ip/pinmux/fpv/pinmux_fpv.core
+++ b/hw/ip/pinmux/fpv/pinmux_fpv.core
@@ -35,3 +35,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_alert_rxtx_async_fpv.core b/hw/ip/prim/fpv/prim_alert_rxtx_async_fpv.core
index 3189f81..36569b6 100644
--- a/hw/ip/prim/fpv/prim_alert_rxtx_async_fpv.core
+++ b/hw/ip/prim/fpv/prim_alert_rxtx_async_fpv.core
@@ -26,3 +26,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_alert_rxtx_fpv.core b/hw/ip/prim/fpv/prim_alert_rxtx_fpv.core
index 492fa28..55b36fc 100644
--- a/hw/ip/prim/fpv/prim_alert_rxtx_fpv.core
+++ b/hw/ip/prim/fpv/prim_alert_rxtx_fpv.core
@@ -26,3 +26,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_arbiter_fixed_fpv.core b/hw/ip/prim/fpv/prim_arbiter_fixed_fpv.core
index 4264fee..4b3359b 100644
--- a/hw/ip/prim/fpv/prim_arbiter_fixed_fpv.core
+++ b/hw/ip/prim/fpv/prim_arbiter_fixed_fpv.core
@@ -23,3 +23,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_arbiter_ppc_fpv.core b/hw/ip/prim/fpv/prim_arbiter_ppc_fpv.core
index 9fba5d0..aad2830 100644
--- a/hw/ip/prim/fpv/prim_arbiter_ppc_fpv.core
+++ b/hw/ip/prim/fpv/prim_arbiter_ppc_fpv.core
@@ -23,3 +23,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_arbiter_tree_fpv.core b/hw/ip/prim/fpv/prim_arbiter_tree_fpv.core
index 7c84d8d..72abea8 100644
--- a/hw/ip/prim/fpv/prim_arbiter_tree_fpv.core
+++ b/hw/ip/prim/fpv/prim_arbiter_tree_fpv.core
@@ -23,3 +23,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_esc_rxtx_fpv.core b/hw/ip/prim/fpv/prim_esc_rxtx_fpv.core
index d3f4bf7..3aa4c5a 100644
--- a/hw/ip/prim/fpv/prim_esc_rxtx_fpv.core
+++ b/hw/ip/prim/fpv/prim_esc_rxtx_fpv.core
@@ -26,3 +26,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_fifo_sync_fpv.core b/hw/ip/prim/fpv/prim_fifo_sync_fpv.core
index 00dd74f..79bb7fa 100644
--- a/hw/ip/prim/fpv/prim_fifo_sync_fpv.core
+++ b/hw/ip/prim/fpv/prim_fifo_sync_fpv.core
@@ -25,3 +25,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_keccak_fpv.core b/hw/ip/prim/fpv/prim_keccak_fpv.core
index 348342f..13a4541 100644
--- a/hw/ip/prim/fpv/prim_keccak_fpv.core
+++ b/hw/ip/prim/fpv/prim_keccak_fpv.core
@@ -13,7 +13,7 @@
file_type: systemVerilogSource
targets:
- default:
+ default: &default_target
# note, this setting is just used
# to generate a file list for jg
default_tool: icarus
@@ -21,3 +21,6 @@
- files_fpv
toplevel:
- prim_keccak_fpv
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_lfsr_fpv.core b/hw/ip/prim/fpv/prim_lfsr_fpv.core
index 3bdba9e..394d306 100644
--- a/hw/ip/prim/fpv/prim_lfsr_fpv.core
+++ b/hw/ip/prim/fpv/prim_lfsr_fpv.core
@@ -24,3 +24,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/prim/fpv/prim_packer_fpv.core b/hw/ip/prim/fpv/prim_packer_fpv.core
index a19b916..c1f882b 100644
--- a/hw/ip/prim/fpv/prim_packer_fpv.core
+++ b/hw/ip/prim/fpv/prim_packer_fpv.core
@@ -25,3 +25,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/ip/rv_plic/fpv/rv_plic_generic_fpv.core b/hw/ip/rv_plic/fpv/rv_plic_generic_fpv.core
index 305b989..660058f 100644
--- a/hw/ip/rv_plic/fpv/rv_plic_generic_fpv.core
+++ b/hw/ip/rv_plic/fpv/rv_plic_generic_fpv.core
@@ -38,3 +38,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/top_earlgrey/ip/rv_plic/fpv/rv_plic_fpv.core b/hw/top_earlgrey/ip/rv_plic/fpv/rv_plic_fpv.core
index ac91eb7..9ccba26 100644
--- a/hw/top_earlgrey/ip/rv_plic/fpv/rv_plic_fpv.core
+++ b/hw/top_earlgrey/ip/rv_plic/fpv/rv_plic_fpv.core
@@ -36,3 +36,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target
diff --git a/hw/top_earlgrey/lint/top_earlgrey_fpv_lint_cfgs.hjson b/hw/top_earlgrey/lint/top_earlgrey_fpv_lint_cfgs.hjson
new file mode 100644
index 0000000..bdd2c9b
--- /dev/null
+++ b/hw/top_earlgrey/lint/top_earlgrey_fpv_lint_cfgs.hjson
@@ -0,0 +1,106 @@
+// Copyright lowRISC contributors.
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+{
+
+ // This is the primary cfg hjson for FPV linting. It imports ALL individual lint
+ // cfgs of the IPs FPV environments.
+ // This enables to run them all as a regression in one shot.
+ name: top_earlgrey_fpv_batch
+
+ import_cfgs: [// common server configuration for results upload
+ "{proj_root}/hw/data/common_project_cfg.hjson"
+ // tool-specific configuration
+ "{proj_root}/hw/lint/tools/dvsim/{tool}.hjson"]
+
+ // Different dashboard output path for each tool
+ rel_path: "hw/top_earlgrey/fpv/lint/{tool}"
+
+ use_cfgs: [{
+ name: prim_arbiter_ppc_fpv
+ fusesoc_core: lowrisc:fpv:prim_arbiter_ppc_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_arbiter_tree_fpv
+ fusesoc_core: lowrisc:fpv:prim_arbiter_tree_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_arbiter_fixed_fpv
+ fusesoc_core: lowrisc:fpv:prim_arbiter_fixed_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_lfsr_fpv
+ fusesoc_core: lowrisc:fpv:prim_lfsr_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_fifo_sync_fpv
+ fusesoc_core: lowrisc:fpv:prim_fifo_sync_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_alert_rxtx_fpv
+ fusesoc_core: lowrisc:fpv:prim_alert_rxtx_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_alert_rxtx_async_fpv
+ fusesoc_core: lowrisc:fpv:prim_alert_rxtx_async_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_esc_rxtx_fpv
+ fusesoc_core: lowrisc:fpv:prim_esc_rxtx_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: prim_packer_fpv
+ fusesoc_core: lowrisc:fpv:prim_packer_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ }
+ {
+ name: padctrl_fpv
+ fusesoc_core: lowrisc:fpv:padctrl_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/padctrl/fpv/lint/{tool}"
+ }
+ {
+ name: pinmux_fpv
+ fusesoc_core: lowrisc:fpv:pinmux_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/pinmux/fpv/lint/{tool}"
+ }
+ {
+ name: rv_plic_fpv
+ fusesoc_core: lowrisc:fpv:rv_plic_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/top_earlgrey/ip/rv_plic/fpv/lint/{tool}"
+ }
+ {
+ name: rv_plic_generic_fpv
+ fusesoc_core: lowrisc:fpv:rv_plic_generic_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/prim/fpv/lint/{tool}"
+ rel_path: "hw/ip/rv_plic/fpv/lint/{tool}"
+ }
+ {
+ name: sha3pad_fpv
+ fusesoc_core: lowrisc:fpv:sha3pad_fpv
+ import_cfgs: ["{proj_root}/hw/lint/tools/dvsim/common_lint_cfg.hjson"]
+ rel_path: "hw/ip/kmac/fpv/lint/{tool}"
+ }
+ ]
+}
+
diff --git a/util/fpvgen/fusesoc.core.tpl b/util/fpvgen/fusesoc.core.tpl
index 5f64dda..10afa50 100644
--- a/util/fpvgen/fusesoc.core.tpl
+++ b/util/fpvgen/fusesoc.core.tpl
@@ -44,3 +44,6 @@
formal:
<<: *default_target
+
+ lint:
+ <<: *default_target