[fpv] Fix fusesoc dependecy issue
When CSR assertions can be generated automatically, we encountered some
fusesoc dependency issue. Because CSR auto-gen assertions depend on
RTL(reg core file), for most of IPs, there isn't an independent reg file
core, thus the auto-gen file directly used the rtl core file. And formal
target is build on the default RTL core file. Now we try to import the
CSR auto-gen core file, and this creates a dependency issue.
To solve this issue, the new formal core file is built on IP_sva.core
instead of RTL core file.
Signed-off-by: Cindy Chen <chencindy@google.com>
diff --git a/hw/ip/aes/aes.core b/hw/ip/aes/aes.core
index d5fcdef..2586fde 100644
--- a/hw/ip/aes/aes.core
+++ b/hw/ip/aes/aes.core
@@ -60,11 +60,6 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/aes_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -77,13 +72,6 @@
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- - files_rtl
- toplevel: aes
-
- formal:
- filesets:
- - files_formal
- files_rtl
toplevel: aes
diff --git a/hw/ip/aes/dv/sva/aes_sva.core b/hw/ip/aes/dv/sva/aes_sva.core
index 674f2f6..18e4569 100644
--- a/hw/ip/aes/dv/sva/aes_sva.core
+++ b/hw/ip/aes/dv/sva/aes_sva.core
@@ -13,6 +13,10 @@
- aes_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:aes
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:aes
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: aes
diff --git a/hw/ip/alert_handler/alert_handler.core b/hw/ip/alert_handler/alert_handler.core
index 3ff7156..c83489d 100644
--- a/hw/ip/alert_handler/alert_handler.core
+++ b/hw/ip/alert_handler/alert_handler.core
@@ -11,11 +11,6 @@
- lowrisc:ip:alert_handler_reg
- lowrisc:ip:alert_handler_component
- files_formal:
- files:
- - dv/tb/alert_handler_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -25,16 +20,9 @@
targets:
default: &default_target
filesets:
- - target_formal ? (files_formal)
- files_rtl
toplevel: alert_handler
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: alert_handler
-
lint:
<<: *default_target
default_tool: verilator
diff --git a/hw/ip/alert_handler/dv/sva/alert_handler_sva.core b/hw/ip/alert_handler/dv/sva/alert_handler_sva.core
index fb88846..2899f19 100644
--- a/hw/ip/alert_handler/dv/sva/alert_handler_sva.core
+++ b/hw/ip/alert_handler/dv/sva/alert_handler_sva.core
@@ -13,6 +13,10 @@
- alert_handler_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:alert_handler
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:alert_handler_reg
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: alert_handler
diff --git a/hw/ip/entropy_src/dv/sva/entropy_src_sva.core b/hw/ip/entropy_src/dv/sva/entropy_src_sva.core
index 35a447d..224f26c 100644
--- a/hw/ip/entropy_src/dv/sva/entropy_src_sva.core
+++ b/hw/ip/entropy_src/dv/sva/entropy_src_sva.core
@@ -13,6 +13,10 @@
- entropy_src_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:entropy_src
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:entropy_src
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: entropy_src
diff --git a/hw/ip/flash_ctrl/dv/sva/flash_ctrl_sva.core b/hw/ip/flash_ctrl/dv/sva/flash_ctrl_sva.core
index 63a52a4..a4eb36d 100644
--- a/hw/ip/flash_ctrl/dv/sva/flash_ctrl_sva.core
+++ b/hw/ip/flash_ctrl/dv/sva/flash_ctrl_sva.core
@@ -13,6 +13,10 @@
- flash_ctrl_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:flash_ctrl
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:flash_ctrl
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: flash_ctrl
diff --git a/hw/ip/flash_ctrl/flash_ctrl.core b/hw/ip/flash_ctrl/flash_ctrl.core
index 1363bfa..e2bd570 100644
--- a/hw/ip/flash_ctrl/flash_ctrl.core
+++ b/hw/ip/flash_ctrl/flash_ctrl.core
@@ -59,11 +59,6 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/flash_ctrl_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -76,16 +71,9 @@
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: flash_ctrl
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: flash_ctrl
-
lint:
<<: *default_target
default_tool: verilator
diff --git a/hw/ip/gpio/dv/sva/gpio_sva.core b/hw/ip/gpio/dv/sva/gpio_sva.core
index a2837c6..0fb097c 100644
--- a/hw/ip/gpio/dv/sva/gpio_sva.core
+++ b/hw/ip/gpio/dv/sva/gpio_sva.core
@@ -13,6 +13,10 @@
- gpio_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:gpio
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:gpio
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: gpio
diff --git a/hw/ip/gpio/gpio.core b/hw/ip/gpio/gpio.core
index a6533e1..0517262 100644
--- a/hw/ip/gpio/gpio.core
+++ b/hw/ip/gpio/gpio.core
@@ -39,11 +39,6 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/gpio_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -56,16 +51,9 @@
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: gpio
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: gpio
-
lint:
<<: *default_target
default_tool: verilator
@@ -80,5 +68,3 @@
mode: lint-only
verilator_options:
- "-Wall"
-
-
diff --git a/hw/ip/hmac/dv/sva/hmac_sva.core b/hw/ip/hmac/dv/sva/hmac_sva.core
index a7b4b98..d5754c9 100644
--- a/hw/ip/hmac/dv/sva/hmac_sva.core
+++ b/hw/ip/hmac/dv/sva/hmac_sva.core
@@ -13,6 +13,10 @@
- hmac_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:hmac
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:hmac
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: hmac
diff --git a/hw/ip/hmac/hmac.core b/hw/ip/hmac/hmac.core
index 9488395..58a9560 100644
--- a/hw/ip/hmac/hmac.core
+++ b/hw/ip/hmac/hmac.core
@@ -43,11 +43,6 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/hmac_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -60,16 +55,9 @@
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: hmac
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: hmac
-
lint:
<<: *default_target
default_tool: verilator
@@ -84,5 +72,3 @@
mode: lint-only
verilator_options:
- "-Wall"
-
-
diff --git a/hw/ip/i2c/dv/sva/i2c_sva.core b/hw/ip/i2c/dv/sva/i2c_sva.core
index c1774f6..a492097 100644
--- a/hw/ip/i2c/dv/sva/i2c_sva.core
+++ b/hw/ip/i2c/dv/sva/i2c_sva.core
@@ -13,6 +13,10 @@
- i2c_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:i2c
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:i2c
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: i2c
diff --git a/hw/ip/i2c/i2c.core b/hw/ip/i2c/i2c.core
index 64d8936..972aacf 100644
--- a/hw/ip/i2c/i2c.core
+++ b/hw/ip/i2c/i2c.core
@@ -42,11 +42,6 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/i2c_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -59,16 +54,9 @@
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: i2c
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: i2c
-
lint:
<<: *default_target
default_tool: verilator
@@ -83,5 +71,3 @@
mode: lint-only
verilator_options:
- "-Wall"
-
-
diff --git a/hw/ip/keymgr/dv/sva/keymgr_sva.core b/hw/ip/keymgr/dv/sva/keymgr_sva.core
index 4f4ba7e..bab8b47 100644
--- a/hw/ip/keymgr/dv/sva/keymgr_sva.core
+++ b/hw/ip/keymgr/dv/sva/keymgr_sva.core
@@ -13,6 +13,10 @@
- keymgr_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:keymgr
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:keymgr
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: keymgr
diff --git a/hw/ip/keymgr/keymgr.core b/hw/ip/keymgr/keymgr.core
index b81e0a7..fd7ae4d 100644
--- a/hw/ip/keymgr/keymgr.core
+++ b/hw/ip/keymgr/keymgr.core
@@ -41,11 +41,6 @@
- lint/keymgr.waiver
file_type: waiver
- files_formal:
- files:
- - dv/tb/keymgr_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -57,16 +52,9 @@
filesets:
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: keymgr
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: keymgr
-
lint:
<<: *default_target
default_tool: verilator
diff --git a/hw/ip/otp_ctrl/dv/sva/otp_ctrl_sva.core b/hw/ip/otp_ctrl/dv/sva/otp_ctrl_sva.core
index e362fab..91b96b5 100644
--- a/hw/ip/otp_ctrl/dv/sva/otp_ctrl_sva.core
+++ b/hw/ip/otp_ctrl/dv/sva/otp_ctrl_sva.core
@@ -13,6 +13,10 @@
- otp_ctrl_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:otp_ctrl
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:otp_ctrl_pkg
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: otp_ctrl
diff --git a/hw/ip/otp_ctrl/otp_ctrl.core b/hw/ip/otp_ctrl/otp_ctrl.core
index 9bb0deb..5925fb3 100644
--- a/hw/ip/otp_ctrl/otp_ctrl.core
+++ b/hw/ip/otp_ctrl/otp_ctrl.core
@@ -47,11 +47,6 @@
- lint/otp_ctrl.waiver
file_type: waiver
- files_formal:
- files:
- - dv/tb/otp_ctrl_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -63,16 +58,9 @@
filesets:
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: otp_ctrl
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: otp_ctrl
-
lint:
<<: *default_target
default_tool: verilator
diff --git a/hw/ip/rv_timer/dv/sva/rv_timer_sva.core b/hw/ip/rv_timer/dv/sva/rv_timer_sva.core
index 6f3cd33..2b67caa 100644
--- a/hw/ip/rv_timer/dv/sva/rv_timer_sva.core
+++ b/hw/ip/rv_timer/dv/sva/rv_timer_sva.core
@@ -13,6 +13,10 @@
- rv_timer_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:rv_timer
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:rv_timer
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: rv_timer
diff --git a/hw/ip/rv_timer/rv_timer.core b/hw/ip/rv_timer/rv_timer.core
index 24b5a9a..014023b 100644
--- a/hw/ip/rv_timer/rv_timer.core
+++ b/hw/ip/rv_timer/rv_timer.core
@@ -40,33 +40,20 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/rv_timer_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
paramtype: vlogdefine
-
targets:
default: &default_target
filesets:
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: rv_timer
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: rv_timer
-
lint:
<<: *default_target
default_tool: verilator
@@ -81,5 +68,3 @@
mode: lint-only
verilator_options:
- "-Wall"
-
-
diff --git a/hw/ip/spi_device/dv/sva/spi_device_sva.core b/hw/ip/spi_device/dv/sva/spi_device_sva.core
index 23cdd99..69193c9 100644
--- a/hw/ip/spi_device/dv/sva/spi_device_sva.core
+++ b/hw/ip/spi_device/dv/sva/spi_device_sva.core
@@ -13,6 +13,10 @@
- spi_device_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:spi_device
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:spi_device
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: spi_device
diff --git a/hw/ip/spi_device/spi_device.core b/hw/ip/spi_device/spi_device.core
index 72e2dd9..f5b0d63 100644
--- a/hw/ip/spi_device/spi_device.core
+++ b/hw/ip/spi_device/spi_device.core
@@ -48,11 +48,6 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/spi_device_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -65,16 +60,9 @@
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: spi_device
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: spi_device
-
lint:
<<: *default_target
default_tool: verilator
@@ -89,5 +77,3 @@
mode: lint-only
verilator_options:
- "-Wall"
-
-
diff --git a/hw/ip/uart/dv/sva/uart_sva.core b/hw/ip/uart/dv/sva/uart_sva.core
index 9b397e8..73c14bc 100644
--- a/hw/ip/uart/dv/sva/uart_sva.core
+++ b/hw/ip/uart/dv/sva/uart_sva.core
@@ -13,6 +13,10 @@
- uart_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:uart
+
generate:
csr_assert_gen:
generator: csr_assert_gen
@@ -21,8 +25,15 @@
depend: lowrisc:ip:uart
targets:
- default:
+ default: &default_target
filesets:
- files_dv
generate:
- csr_assert_gen
+
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: uart
diff --git a/hw/ip/uart/uart.core b/hw/ip/uart/uart.core
index 75bf2e2..0405cbf 100644
--- a/hw/ip/uart/uart.core
+++ b/hw/ip/uart/uart.core
@@ -43,11 +43,6 @@
- lowrisc:lint:common
- lowrisc:lint:comportable
- files_formal:
- files:
- - dv/tb/uart_bind.sv
- file_type: systemVerilogSource
-
parameters:
SYNTHESIS:
datatype: bool
@@ -60,16 +55,9 @@
- tool_verilator ? (files_verilator_waiver)
- tool_ascentlint ? (files_ascentlint_waiver)
- tool_veriblelint ? (files_veriblelint_waiver)
- - target_formal ? (files_formal)
- files_rtl
toplevel: uart
- formal:
- filesets:
- - files_rtl
- - files_formal
- toplevel: uart
-
lint:
<<: *default_target
default_tool: verilator
diff --git a/hw/top_earlgrey/fpv/top_earlgrey_fpv_cfgs.hjson b/hw/top_earlgrey/fpv/top_earlgrey_fpv_cfgs.hjson
index 6b268a3..6a7dabf 100644
--- a/hw/top_earlgrey/fpv/top_earlgrey_fpv_cfgs.hjson
+++ b/hw/top_earlgrey/fpv/top_earlgrey_fpv_cfgs.hjson
@@ -18,71 +18,160 @@
name: prim_arbiter_ppc_fpv
fusesoc_core: lowrisc:fpv:prim_arbiter_ppc_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_arbiter_tree_fpv
fusesoc_core: lowrisc:fpv:prim_arbiter_tree_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_arbiter_fixed_fpv
fusesoc_core: lowrisc:fpv:prim_arbiter_fixed_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_lfsr_fpv
fusesoc_core: lowrisc:fpv:prim_lfsr_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_fifo_sync_fpv
fusesoc_core: lowrisc:fpv:prim_fifo_sync_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_alert_rxtx_fpv
fusesoc_core: lowrisc:fpv:prim_alert_rxtx_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_alert_rxtx_async_fpv
fusesoc_core: lowrisc:fpv:prim_alert_rxtx_async_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_esc_rxtx_fpv
fusesoc_core: lowrisc:fpv:prim_esc_rxtx_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: prim_packer_fpv
fusesoc_core: lowrisc:fpv:prim_packer_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: padctrl_fpv
fusesoc_core: lowrisc:fpv:padctrl_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: pinmux_fpv
fusesoc_core: lowrisc:fpv:pinmux_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: rv_plic_fpv
fusesoc_core: lowrisc:fpv:rv_plic_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: rv_plic_generic_fpv
fusesoc_core: lowrisc:fpv:rv_plic_generic_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
}
{
name: sha3pad_fpv
fusesoc_core: lowrisc:fpv:sha3pad_fpv
import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: true
+ }
+ // Below are IPs that already has a DV testbench,
+ // FPV only verifies TLUL interface and build-in assertions,
+ // so will not collect FPV coverage.
+ {
+ name: aes
+ fusesoc_core: lowrisc:dv:aes_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: alert_handler
+ fusesoc_core: lowrisc:dv:alert_handler_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: entropy_src
+ fusesoc_core: lowrisc:dv:entropy_src_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: flash_ctrl
+ fusesoc_core: lowrisc:dv:flash_ctrl_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: gpio
+ fusesoc_core: lowrisc:dv:gpio_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: hmac
+ fusesoc_core: lowrisc:dv:hmac_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: i2c
+ fusesoc_core: lowrisc:dv:i2c_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: keymgr
+ fusesoc_core: lowrisc:dv:keymgr_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: otp_ctrl
+ fusesoc_core: lowrisc:dv:otp_ctrl_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: rv_timer
+ fusesoc_core: lowrisc:dv:rv_timer_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: spi_device
+ fusesoc_core: lowrisc:dv:spi_device_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
+ }
+ {
+ name: uart
+ fusesoc_core: lowrisc:dv:uart_sva
+ import_cfgs: ["{proj_root}/hw/formal/tools/dvsim/common_fpv_cfg.hjson"]
+ cov: false
}
]
}
diff --git a/util/uvmdvgen/sva.core.tpl b/util/uvmdvgen/sva.core.tpl
index 89863d7..3324369 100644
--- a/util/uvmdvgen/sva.core.tpl
+++ b/util/uvmdvgen/sva.core.tpl
@@ -15,6 +15,10 @@
- ${name}_bind.sv
file_type: systemVerilogSource
+ files_formal:
+ depend:
+ - lowrisc:ip:${name}
+
% if has_ral:
generate:
csr_assert_gen:
@@ -25,10 +29,16 @@
% endif
targets:
- default:
+ default: &default_target
filesets:
- files_dv
% if has_ral:
generate:
- csr_assert_gen
+ formal:
+ <<: *default_target
+ filesets:
+ - files_formal
+ - files_dv
+ toplevel: ${name}
% endif