Analog instance modules
diff --git a/verilog/rtl/LVDT.v b/verilog/rtl/LVDT.v
new file mode 100644
index 0000000..ea4046b
--- /dev/null
+++ b/verilog/rtl/LVDT.v
@@ -0,0 +1,21 @@
+module LVDT(
+
+`ifdef USE_POWER_PINS
+    inout vdda1,	
+    inout vssa1,	
+`endif
+input Iin,
+input va,
+input vb,
+input vcap,
+inout vout,
+input a2,
+input a1,
+input clk,
+input re,
+output y0,
+output y1,
+output y2
+);
+
+endmodule
diff --git a/verilog/rtl/analog_macro.v b/verilog/rtl/analog_macro.v
new file mode 100644
index 0000000..178c6ca
--- /dev/null
+++ b/verilog/rtl/analog_macro.v
@@ -0,0 +1,14 @@
+module analog_macro(
+
+`ifdef USE_POWER_PINS
+    inout vdda1,	
+    inout vssa1,	
+`endif
+input vbiasr,
+input vinit,
+input reset,
+output Fvco,
+output v9m
+);
+
+endmodule
diff --git a/verilog/rtl/temp_digital.v b/verilog/rtl/temp_digital.v
new file mode 100644
index 0000000..57e12a6
--- /dev/null
+++ b/verilog/rtl/temp_digital.v
@@ -0,0 +1,115 @@
+// 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
+
+`default_nettype none
+/*
+ *-------------------------------------------------------------
+ *
+ * user_proj_example
+ *
+ * This is an example of a (trivially simple) user project,
+ * showing how the user project can connect to the logic
+ * analyzer, the wishbone bus, and the I/O pads.
+ *
+ * This project generates an integer count, which is output
+ * on the user area GPIO pads (digital output only).  The
+ * wishbone connection allows the project to be controlled
+ * (start and stop) from the management SoC program.
+ *
+ * See the testbenches in directory "mprj_counter" for the
+ * example programs that drive this user project.  The three
+ * testbenches are "io_ports", "la_test1", and "la_test2".
+ *
+ *-------------------------------------------------------------
+ */
+
+
+module temp_digital(
+`ifdef USE_POWER_PINS
+    inout vccd1,	// User area 1 1.8V supply
+    inout vssd1,	// User area 1 digital ground
+`endif
+
+    input counter_clk,
+    input shift_clk,
+    input reset_12,
+    output reg sr_out,
+    output wire ref_clk,
+    output wire c_clk);
+    
+    wire load_enable;  //Output of 13-bit counter must be 3
+    wire count_20_reset; //Output of 13-bit counter must be 7
+    wire sr_reset; //Output of 13-bit counter must be 31
+    wire counter_sel; //13th bit of counter must be 1 to count and 0 to hold
+    
+    reg [19:0] count_20;
+    reg [11:0] count_12;					//The highest measurable unknown frequency is Fxclk < 2^(36-c) where c is the number of 
+    								//stages of the counter producing gate enable
+    								//So, for a 12 bit counter, we can measure upto 16.7 MHz until the 20bit counter overflows
+    reg [19:0] shift_20;
+    
+    assign load_enable = count_12==3 ? 1'b1 : 1'b0 ;
+    assign count_20_reset = count_12==7 ? 1'b1 : 1'b0;
+    assign counter_sel = count_12[11];				//The highest measurable unknown frequency is Fxclk < 2^(36-c) where c is the number of 
+    								//stages of the counter producing gate enable
+    assign sr_reset = count_12==31 ? 1'b1 : 1'b0;
+    assign c_clk = counter_clk;
+  
+    
+    always@ (posedge counter_clk or posedge count_20_reset) begin   //Process 20-bit counter
+        if (count_20_reset == 1'b1) begin
+        count_20 <= 0;
+        end
+        else begin
+            if ((count_20 < 1048575)&&(counter_sel == 1'b1)) begin
+            count_20 <= count_20 + 1;
+            end
+            else if ((count_20 == 1048575)&&(counter_sel == 1'b1))begin
+            count_20 <= 0;
+            end
+        end
+    end 
+    
+    always@ (posedge shift_clk or posedge sr_reset or posedge load_enable) begin  //Parallel In Serial Out Shift Register with Load Enable
+        if (sr_reset == 1'b1) begin
+            shift_20 <= 0;
+        end
+        else if (load_enable == 1'b1) begin
+            shift_20 <= count_20;
+            sr_out <= load_enable;
+        end
+        else begin
+            sr_out <= shift_20[0];
+            shift_20[18:0] <= shift_20[19:1];
+            shift_20[19] <= 1'b0;
+        end
+    end
+    assign ref_clk = shift_clk;
+    always@ (posedge shift_clk or posedge reset_12) begin   //12 - bit counter
+        if (reset_12 == 1'b1) begin
+        count_12 <= 0;
+        end
+        else begin
+            if(count_12 <4095) begin
+                count_12 <= count_12 +1;
+            end
+            else if(count_12 == 4095) begin
+                count_12 <= 0;
+            end
+        end
+    end
+
+    endmodule
+`default_nettype wire