[dv] reorg gpio_bind and add CSR asserts

Signed-off-by: Srikrishna Iyer <sriyer@google.com>
diff --git a/hw/ip/gpio/dv/gpio_sim.core b/hw/ip/gpio/dv/gpio_sim.core
index 20e8c34..3240490 100644
--- a/hw/ip/gpio/dv/gpio_sim.core
+++ b/hw/ip/gpio/dv/gpio_sim.core
@@ -8,13 +8,11 @@
   files_rtl:
     depend:
       - lowrisc:ip:gpio:0.1
-    files:
-      - tb/gpio_bind.sv
-    file_type: systemVerilogSource
 
   files_dv:
     depend:
       - lowrisc:dv:gpio_test
+      - lowrisc:dv:gpio_sva
     files:
       - tb/tb.sv
     file_type: systemVerilogSource
diff --git a/hw/ip/gpio/dv/tb/gpio_bind.sv b/hw/ip/gpio/dv/sva/gpio_bind.sv
similarity index 63%
rename from hw/ip/gpio/dv/tb/gpio_bind.sv
rename to hw/ip/gpio/dv/sva/gpio_bind.sv
index ee3647c..6e7402e 100644
--- a/hw/ip/gpio/dv/tb/gpio_bind.sv
+++ b/hw/ip/gpio/dv/sva/gpio_bind.sv
@@ -13,4 +13,14 @@
     .d2h  (tl_o)
   );
 
+  import gpio_reg_pkg::*;
+  bind gpio gpio_csr_assert_fpv gpio_csr_assert (
+    .clk_i,
+    .rst_ni,
+    .h2d    (tl_i),
+    .d2h    (tl_o),
+    .reg2hw (reg2hw),
+    .hw2reg (hw2reg)
+  );
+
 endmodule
diff --git a/hw/ip/gpio/dv/sva/gpio_sva.core b/hw/ip/gpio/dv/sva/gpio_sva.core
new file mode 100644
index 0000000..a2837c6
--- /dev/null
+++ b/hw/ip/gpio/dv/sva/gpio_sva.core
@@ -0,0 +1,28 @@
+CAPI=2:
+# Copyright lowRISC contributors.
+# Licensed under the Apache License, Version 2.0, see LICENSE for details.
+# SPDX-License-Identifier: Apache-2.0
+name: "lowrisc:dv:gpio_sva:0.1"
+description: "GPIO assertion modules and bind file."
+filesets:
+  files_dv:
+    depend:
+      - lowrisc:tlul:headers
+      - lowrisc:fpv:csr_assert_gen
+    files:
+      - gpio_bind.sv
+    file_type: systemVerilogSource
+
+generate:
+  csr_assert_gen:
+    generator: csr_assert_gen
+    parameters:
+      spec: ../../data/gpio.hjson
+      depend: lowrisc:ip:gpio
+
+targets:
+  default:
+    filesets:
+      - files_dv
+    generate:
+      - csr_assert_gen