openlane/user_module: convert config to json
diff --git a/openlane/user_module/config.json b/openlane/user_module/config.json
new file mode 100644
index 0000000..6b67357
--- /dev/null
+++ b/openlane/user_module/config.json
@@ -0,0 +1,40 @@
+{
+    "DESIGN_NAME": "user_module",
+    "DESIGN_IS_CORE": 0,
+    "VERILOG_FILES": [
+	"dir::../../verilog/rtl/defines.v",
+	"dir::../../verilog/rtl/cells.v",
+	"dir::../../verilog/rtl/user_module.v"
+    ],
+    "CLOCK_PERIOD": 10,
+    "CLOCK_PORT": "",
+    "CLOCK_NET": "",
+    "FP_SIZING": "absolute",
+    "DIE_AREA": "0 0 250 250",
+    "FP_CORE_UTIL": 45,
+    "PL_BASIC_PLACEMENT": 1,
+    "PL_TARGET_DENSITY": 0.55,
+    "VDD_NETS": ["vccd1"],
+    "GND_NETS": ["vssd1"],
+    "DIODE_INSERTION_STRATEGY": 4,
+    "PL_RESIZER_BUFFER_OUTPUT_PORTS": 0,
+    "SYNTH_READ_BLACKBOX_LIB": 1,
+    "RUN_CVC": 1,
+    "RUN_KLAYOUT_XOR": 0,
+    "RUN_KLAYOUT_DRC": 0,
+    "pdk::sky130*": {
+	"DECAP_CELL": [
+	    "sky130_fd_sc_hd__decap_3",
+	    "sky130_fd_sc_hd__decap_4",
+	    "sky130_fd_sc_hd__decap_6",
+	    "sky130_fd_sc_hd__decap_8",
+	    "sky130_ef_sc_hd__decap_12"
+	],
+        "RT_MAX_LAYER": "met4"
+    },
+    "pdk::gf180mcuC": {
+        "STD_CELL_LIBRARY": "gf180mcu_fd_sc_mcu7t5v0",
+        "RT_MAX_LAYER": "Metal4",
+        "SYNTH_MAX_FANOUT": 4
+    }
+}
diff --git a/openlane/user_module/config.tcl b/openlane/user_module/config.tcl
deleted file mode 100755
index f6e5e24..0000000
--- a/openlane/user_module/config.tcl
+++ /dev/null
@@ -1,62 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-
-# User config
-set script_dir [file dirname [file normalize [info script]]]
-
-# has to match the module name from wokwi
-set ::env(DESIGN_NAME) user_module
-
-# save some time
-set ::env(RUN_KLAYOUT_XOR) 0
-set ::env(RUN_KLAYOUT_DRC) 0
-
-# don't put clock buffers on the outputs
-set ::env(PL_RESIZER_BUFFER_OUTPUT_PORTS) 0
-
-# allow use of specific sky130 cells
-set ::env(SYNTH_READ_BLACKBOX_LIB) 1
-
-# read all verilog files
-set ::env(VERILOG_FILES) "\
-	$::env(CARAVEL_ROOT)/verilog/rtl/defines.v \
-	$script_dir/../../verilog/rtl/cells.v
-	$script_dir/../../verilog/rtl/user_module.v"
-
-# absolute die size
-set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) "0 0 250 250"
-set ::env(FP_CORE_UTIL) 45
-set ::env(PL_BASIC_PLACEMENT) {1}
-
-# use alternative efabless decap cells to solve LI density issue
-set ::env(DECAP_CELL) "\
-    sky130_fd_sc_hd__decap_3 \
-    sky130_fd_sc_hd__decap_4 \
-    sky130_fd_sc_hd__decap_6 \
-    sky130_fd_sc_hd__decap_8 \
-    sky130_ef_sc_hd__decap_12"
-
-# clock
-set ::env(CLOCK_PERIOD) "10"
-set ::env(CLOCK_PORT) ""
-
-# don't use power rings or met5
-set ::env(DESIGN_IS_CORE) 0
-set ::env(RT_MAX_LAYER) {met4}
-
-# connect to first digital rails
-set ::env(VDD_NETS) [list {vccd1}]
-set ::env(GND_NETS) [list {vssd1}]
diff --git a/openlane/user_module/pin_order.cfg b/openlane/user_module/pin_order.cfg
new file mode 100644
index 0000000..666737f
--- /dev/null
+++ b/openlane/user_module/pin_order.cfg
@@ -0,0 +1,10 @@
+#BUS_SORT
+
+#S
+wb_.*
+wbs_.*
+la_.*
+irq.*
+
+#N
+io_.*
\ No newline at end of file