Resolve clock port and net issue by making clock_mux
diff --git a/openlane/openram_testchip/config.tcl b/openlane/openram_testchip/config.tcl
index 6448023..4533576 100644
--- a/openlane/openram_testchip/config.tcl
+++ b/openlane/openram_testchip/config.tcl
@@ -7,11 +7,12 @@
 set ::env(GLB_RT_MAXLAYER) 5
 
 set ::env(VERILOG_FILES) "$script_dir/../../verilog/rtl/openram_defines.v \
-			 $script_dir/../../verilog/rtl/openram_testchip.v"
+    			  $script_dir/../../verilog/rtl/clock_mux.v \
+			  $script_dir/../../verilog/rtl/openram_testchip.v"
 set ::env(BASE_SDC_FILE) "$script_dir/openram_testchip.sdc"
 
-set ::env(CLOCK_PORT) "la_clk"
-set ::env(CLOCK_NET) "clk"
+set ::env(CLOCK_PORT) "clkmux.clk"
+set ::env(CLOCK_NET) "clkmux.clk"
 set ::env(RESET_PORT) "resetn"
 
 #set ::env(CLOCK_NET) ""
diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl
index deb410e..2b7b886 100755
--- a/openlane/user_project_wrapper/config.tcl
+++ b/openlane/user_project_wrapper/config.tcl
@@ -27,14 +27,12 @@
 ## Source Verilog Files
 set ::env(VERILOG_FILES) "\
 	$script_dir/../../caravel/verilog/rtl/defines.v \
+	$script_dir/../../verilog/rtl/clock_mux.v \
 	$script_dir/../../verilog/rtl/user_project_wrapper.v "
 
 ## Clock configurations
-# This is la_sram_clk
-# This should be la_data_in[126]
-#set ::env(CLOCK_PORT) "la_sram_clk"
-set ::env(CLOCK_PORT) {la_data_in\[126\]}
-set ::env(CLOCK_NET) "sram_clk"
+set ::env(CLOCK_PORT) "clkmux.clk"
+set ::env(CLOCK_NET) "clkmux.clk"
 
 set ::env(CLOCK_PERIOD) "20"
 set ::env(BASE_SDC_FILE) "$script_dir/user_project_wrapper.sdc"
diff --git a/verilog/rtl/clock_mux.v b/verilog/rtl/clock_mux.v
new file mode 100644
index 0000000..c1a92b1
--- /dev/null
+++ b/verilog/rtl/clock_mux.v
@@ -0,0 +1,11 @@
+module clock_mux(
+		 input 	clk0,
+		 input 	clk1,
+		 input 	sel,
+		 output reg clk);
+
+always @(*) begin
+   clk = sel ? clk1 : clk0;
+end
+
+endmodule // clock_mux
diff --git a/verilog/rtl/openram_testchip.v b/verilog/rtl/openram_testchip.v
index c8d89bb..0bff047 100644
--- a/verilog/rtl/openram_testchip.v
+++ b/verilog/rtl/openram_testchip.v
@@ -85,8 +85,6 @@
 			output reg gpio_out
 );
 
-   reg clk;
-
 // Store input instruction
    reg [`TOTAL_SIZE-1:0] sram_register;
    reg 		       csb0_temp;
@@ -109,10 +107,13 @@
 
 
 
-//Selecting clock pin
-always @(*) begin
-    clk = in_select ? gpio_clk : la_clk;
-end
+   // Selecting clock pin
+   wire 		  clk;
+   clock_mux clkmux(.clk0(la_clk),
+		    .clk1(gpio_clk),
+		    .sel(in_select),
+		    .clk(clk));
+
 
 always @ (posedge clk) begin
    if(!resetn) begin
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 5b1e7e3..40a8938 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -141,85 +141,84 @@
    assign io_out[21] = gpio_out;
    assign io_out[20:0] = 0;
 
-   wire la_sram_clk = la_data_in[126];
+   wire sram_clk;
+   clock_mux clkmux(.clk0(la_data_in[126]),
+		    .clk1(gpio_sram_clk),
+		    .sel(in_select),
+		    .clk(sram_clk));
 
-   reg 	sram_clk;
 
-always @(*) begin
-    sram_clk = in_select ? gpio_sram_clk : la_sram_clk;
-end
+   openram_testchip CONTROL_LOGIC(
+				  .resetn(resetn & wb_rst_i),
+				  .in_select(in_select),
+				  .gpio_clk(gpio_clk),
+				  .gpio_scan(gpio_scan),
+				  .gpio_sram_load(gpio_sram_load),
 
-openram_testchip CONTROL_LOGIC(
-			       .resetn(resetn & wb_rst_i),
-			       .in_select(in_select),
-			       .gpio_clk(gpio_clk),
-			       .gpio_scan(gpio_scan),
-			       .gpio_sram_load(gpio_sram_load),
+				  .la_clk(la_data_in[127]),
+				  .la_in_load(la_data_in[125]),
+				  .la_sram_load(la_data_in[124]),
+				  .la_data_in(la_data_in[111:0]),
+				  .la_data_out(la_data_out[111:0]),
+				  .gpio_out(gpio_out),
 
-			       .la_clk(la_data_in[127]),
-			       .la_in_load(la_data_in[125]),
-			       .la_sram_load(la_data_in[124]),
-			       .la_data_in(la_data_in[111:0]),
-			       .la_data_out(la_data_out[111:0]),
-			       .gpio_out(gpio_out),
+				  // Shared control/data to the SRAMs
+				  .left_addr0(left_addr0),
+				  .left_din0(left_din0),
+				  .left_web0(left_web0),
+				  .left_wmask0(left_wmask0),
+				  .left_addr1(left_addr1),
+				  .left_web1(left_web1),
+				  .left_wmask1(left_wmask1),
+				  // One CSB for each SRAM
+				  .left_csb0(left_csb0),
+				  .left_csb1(left_csb1),
 
-			       // Shared control/data to the SRAMs
-			       .left_addr0(left_addr0),
-			       .left_din0(left_din0),
-			       .left_web0(left_web0),
-			       .left_wmask0(left_wmask0),
-			       .left_addr1(left_addr1),
-			       .left_web1(left_web1),
-			       .left_wmask1(left_wmask1),
-			       // One CSB for each SRAM
-			       .left_csb0(left_csb0),
-			       .left_csb1(left_csb1),
+				  // Shared control/data to the SRAMs
+				  .right_addr0(right_addr0),
+				  .right_din0(right_din0),
+				  .right_web0(right_web0),
+				  .right_wmask0(right_wmask0),
+				  // One CSB for each SRAM
+				  .right_csb0(right_csb0),
 
-			       // Shared control/data to the SRAMs
-			       .right_addr0(right_addr0),
-			       .right_din0(right_din0),
-			       .right_web0(right_web0),
-			       .right_wmask0(right_wmask0),
-			       // One CSB for each SRAM
-			       .right_csb0(right_csb0),
+				  // SRAM data outputs to be captured
+				  .sram0_data0(sram0_data0),
+				  .sram0_data1(sram0_data1),
+				  .sram1_data0(sram1_data0),
+				  .sram1_data1(sram1_data1),
+				  .sram2_data0(sram2_data0),
+				  .sram2_data1(sram2_data1),
+				  .sram3_data0(sram3_data0),
+				  .sram3_data1(sram3_data1),
+				  .sram4_data0(sram4_data0),
+				  .sram4_data1(sram4_data1),
+				  .sram5_data0(sram5_data0),
+				  .sram5_data1(sram5_data1),
+				  .sram6_data0(sram6_data0),
+				  .sram6_data1(sram6_data1),
+				  .sram7_data0(sram7_data0),
+				  .sram7_data1(sram7_data1),
+				  .sram8_data0(sram8_data0),
+				  .sram8_data1(sram8_data1),
+				  .sram9_data0(sram9_data0),
+				  .sram9_data1(sram9_data1),
+				  .sram10_data0(sram10_data0),
+				  .sram10_data1(sram10_data1),
+				  .sram11_data0(sram11_data0),
+				  .sram11_data1(sram11_data1),
+				  .sram12_data0(sram12_data0),
+				  .sram12_data1(sram12_data1),
+				  .sram13_data0(sram13_data0),
+				  .sram13_data1(sram13_data1),
+				  .sram14_data0(sram14_data0),
+				  .sram14_data1(sram14_data1),
+				  .sram15_data0(sram15_data0),
+				  .sram15_data1(sram15_data1)
 
-			       // SRAM data outputs to be captured
-			       .sram0_data0(sram0_data0),
-			       .sram0_data1(sram0_data1),
-			       .sram1_data0(sram1_data0),
-			       .sram1_data1(sram1_data1),
-			       .sram2_data0(sram2_data0),
-			       .sram2_data1(sram2_data1),
-			       .sram3_data0(sram3_data0),
-			       .sram3_data1(sram3_data1),
-			       .sram4_data0(sram4_data0),
-			       .sram4_data1(sram4_data1),
-			       .sram5_data0(sram5_data0),
-			       .sram5_data1(sram5_data1),
-			       .sram6_data0(sram6_data0),
-			       .sram6_data1(sram6_data1),
-			       .sram7_data0(sram7_data0),
-			       .sram7_data1(sram7_data1),
-			       .sram8_data0(sram8_data0),
-			       .sram8_data1(sram8_data1),
-			       .sram9_data0(sram9_data0),
-			       .sram9_data1(sram9_data1),
-			       .sram10_data0(sram10_data0),
-			       .sram10_data1(sram10_data1),
-			       .sram11_data0(sram11_data0),
-			       .sram11_data1(sram11_data1),
-			       .sram12_data0(sram12_data0),
-			       .sram12_data1(sram12_data1),
-			       .sram13_data0(sram13_data0),
-			       .sram13_data1(sram13_data1),
-			       .sram14_data0(sram14_data0),
-			       .sram14_data1(sram14_data1),
-			       .sram15_data0(sram15_data0),
-			       .sram15_data1(sram15_data1)
+				  );
 
-);
-
-   wire [`ADDR_SIZE-1:0]  left_addr0;
+   wire [`ADDR_SIZE-1:0] left_addr0;
    wire [`DATA_SIZE-1:0] left_din0;
    wire 		 left_web0;
    wire [`WMASK_SIZE-1:0] left_wmask0;
@@ -231,43 +230,43 @@
    wire [`MAX_CHIPS-1:0]  left_csb1;
 
    wire [`ADDR_SIZE-1:0]  right_addr0;
-   wire [`DATA_SIZE-1:0] right_din0;
-   wire 		 right_web0;
+   wire [`DATA_SIZE-1:0]  right_din0;
+   wire 		  right_web0;
    wire [`WMASK_SIZE-1:0] right_wmask0;
    wire [`MAX_CHIPS-1:0]  right_csb0;
 
-   wire [`DATA_SIZE-1:0] sram0_dout0;
-   wire [`DATA_SIZE-1:0] sram0_dout1;
-   wire [`DATA_SIZE-1:0] sram1_dout0;
-   wire [`DATA_SIZE-1:0] sram1_dout1;
-   wire [`DATA_SIZE-1:0] sram2_dout0;
-   wire [`DATA_SIZE-1:0] sram2_dout1;
-   wire [`DATA_SIZE-1:0] sram3_dout0;
-   wire [`DATA_SIZE-1:0] sram3_dout1;
-   wire [`DATA_SIZE-1:0] sram4_dout0;
-   wire [`DATA_SIZE-1:0] sram4_dout1;
-   wire [`DATA_SIZE-1:0] sram5_dout0;
-   wire [`DATA_SIZE-1:0] sram5_dout1;
-   wire [`DATA_SIZE-1:0] sram6_dout0;
-   wire [`DATA_SIZE-1:0] sram6_dout1;
-   wire [`DATA_SIZE-1:0] sram7_dout0;
-   wire [`DATA_SIZE-1:0] sram7_dout1;
-   wire [`DATA_SIZE-1:0] sram8_dout0;
-   wire [`DATA_SIZE-1:0] sram8_dout1;
-   wire [`DATA_SIZE-1:0] sram9_dout0;
-   wire [`DATA_SIZE-1:0] sram9_dout1;
-   wire [`DATA_SIZE-1:0] sram10_dout0;
-   wire [`DATA_SIZE-1:0] sram10_dout1;
-   wire [`DATA_SIZE-1:0] sram11_dout0;
-   wire [`DATA_SIZE-1:0] sram11_dout1;
-   wire [`DATA_SIZE-1:0] sram12_dout0;
-   wire [`DATA_SIZE-1:0] sram12_dout1;
-   wire [`DATA_SIZE-1:0] sram13_dout0;
-   wire [`DATA_SIZE-1:0] sram13_dout1;
-   wire [`DATA_SIZE-1:0] sram14_dout0;
-   wire [`DATA_SIZE-1:0] sram14_dout1;
-   wire [`DATA_SIZE-1:0] sram15_dout0;
-   wire [`DATA_SIZE-1:0] sram15_dout1;
+   wire [`DATA_SIZE-1:0]  sram0_dout0;
+   wire [`DATA_SIZE-1:0]  sram0_dout1;
+   wire [`DATA_SIZE-1:0]  sram1_dout0;
+   wire [`DATA_SIZE-1:0]  sram1_dout1;
+   wire [`DATA_SIZE-1:0]  sram2_dout0;
+   wire [`DATA_SIZE-1:0]  sram2_dout1;
+   wire [`DATA_SIZE-1:0]  sram3_dout0;
+   wire [`DATA_SIZE-1:0]  sram3_dout1;
+   wire [`DATA_SIZE-1:0]  sram4_dout0;
+   wire [`DATA_SIZE-1:0]  sram4_dout1;
+   wire [`DATA_SIZE-1:0]  sram5_dout0;
+   wire [`DATA_SIZE-1:0]  sram5_dout1;
+   wire [`DATA_SIZE-1:0]  sram6_dout0;
+   wire [`DATA_SIZE-1:0]  sram6_dout1;
+   wire [`DATA_SIZE-1:0]  sram7_dout0;
+   wire [`DATA_SIZE-1:0]  sram7_dout1;
+   wire [`DATA_SIZE-1:0]  sram8_dout0;
+   wire [`DATA_SIZE-1:0]  sram8_dout1;
+   wire [`DATA_SIZE-1:0]  sram9_dout0;
+   wire [`DATA_SIZE-1:0]  sram9_dout1;
+   wire [`DATA_SIZE-1:0]  sram10_dout0;
+   wire [`DATA_SIZE-1:0]  sram10_dout1;
+   wire [`DATA_SIZE-1:0]  sram11_dout0;
+   wire [`DATA_SIZE-1:0]  sram11_dout1;
+   wire [`DATA_SIZE-1:0]  sram12_dout0;
+   wire [`DATA_SIZE-1:0]  sram12_dout1;
+   wire [`DATA_SIZE-1:0]  sram13_dout0;
+   wire [`DATA_SIZE-1:0]  sram13_dout1;
+   wire [`DATA_SIZE-1:0]  sram14_dout0;
+   wire [`DATA_SIZE-1:0]  sram14_dout1;
+   wire [`DATA_SIZE-1:0]  sram15_dout0;
+   wire [`DATA_SIZE-1:0]  sram15_dout1;
 
 sky130_sram_1kbyte_1rw1r_8x1024_8 SRAM0
      (