summaryrefslogtreecommitdiff
path: root/library/SubcircuitLibrary/bidirectional_shift_reg
diff options
context:
space:
mode:
Diffstat (limited to 'library/SubcircuitLibrary/bidirectional_shift_reg')
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/3_and-cache.lib61
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir13
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir.out20
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/3_and.pro43
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sch130
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sub14
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/3_and_Previous_Values.xml1
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/4_OR-cache.lib63
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir14
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir.out24
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.pro44
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sch150
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sub18
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/4_OR_Previous_Values.xml1
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/74194.bck7
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/74194.dcm7
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/74194.lib1120
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/analysis1
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg-cache.lib79
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir19
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir.out33
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.pro73
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sch465
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sub27
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg_Previous_Values.xml1
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/dff_rst.v12
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4-cache.lib97
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.bck7
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir18
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir.out27
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.dcm7
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.lib1120
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.pro73
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sch295
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sub21
-rw-r--r--library/SubcircuitLibrary/bidirectional_shift_reg/mux4_Previous_Values.xml1
36 files changed, 4106 insertions, 0 deletions
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/3_and-cache.lib b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and-cache.lib
new file mode 100644
index 00000000..af058641
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and-cache.lib
@@ -0,0 +1,61 @@
+EESchema-LIBRARY Version 2.3
+#encoding utf-8
+#
+# PORT
+#
+DEF PORT U 0 40 Y Y 26 F N
+F0 "U" 50 100 30 H V C CNN
+F1 "PORT" 0 0 30 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 325 225 285 -1421 -1278 0 1 0 N 100 50 150 0
+A 376 -275 356 1294 1408 0 1 0 N 150 0 100 -50
+S -100 50 100 -50 0 1 0 N
+X ~ 1 250 0 100 L 30 30 1 1 B
+X ~ 2 250 0 100 L 30 30 2 1 B
+X ~ 3 250 0 100 L 30 30 3 1 B
+X ~ 4 250 0 100 L 30 30 4 1 B
+X ~ 5 250 0 100 L 30 30 5 1 B
+X ~ 6 250 0 100 L 30 30 6 1 B
+X ~ 7 250 0 100 L 30 30 7 1 B
+X ~ 8 250 0 100 L 30 30 8 1 B
+X ~ 9 250 0 100 L 30 30 9 1 B
+X ~ 10 250 0 100 L 30 30 10 1 B
+X ~ 11 250 0 100 L 30 30 11 1 B
+X ~ 12 250 0 100 L 30 30 12 1 B
+X ~ 13 250 0 100 L 30 30 13 1 B
+X ~ 14 250 0 100 L 30 30 14 1 B
+X ~ 15 250 0 100 L 30 30 15 1 B
+X ~ 16 250 0 100 L 30 30 16 1 B
+X ~ 17 250 0 100 L 30 30 17 1 B
+X ~ 18 250 0 100 L 30 30 18 1 B
+X ~ 19 250 0 100 L 30 30 19 1 B
+X ~ 20 250 0 100 L 30 30 20 1 B
+X ~ 21 250 0 100 L 30 30 21 1 B
+X ~ 22 250 0 100 L 30 30 22 1 B
+X ~ 23 250 0 100 L 30 30 23 1 B
+X ~ 24 250 0 100 L 30 30 24 1 B
+X ~ 25 250 0 100 L 30 30 25 1 B
+X ~ 26 250 0 100 L 30 30 26 1 B
+ENDDRAW
+ENDDEF
+#
+# d_and
+#
+DEF d_and U 0 40 Y Y 1 F N
+F0 "U" 0 0 60 H V C CNN
+F1 "d_and" 50 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 149 50 100 -894 0 0 1 0 N 150 -50 250 50
+A 150 49 100 6 900 0 1 0 N 250 50 150 150
+P 4 0 1 0 150 -50 -250 -50 -250 150 150 150 N
+X IN1 1 -450 100 200 R 50 50 1 1 I
+X IN2 2 -450 0 200 R 50 50 1 1 I
+X OUT 3 450 50 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir
new file mode 100644
index 00000000..ba296cf0
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir
@@ -0,0 +1,13 @@
+* C:\Users\malli\eSim\src\SubcircuitLibrary\3_and\3_and.cir
+
+* EESchema Netlist Version 1.1 (Spice format) creation date: 03/26/19 18:42:57
+
+* To exclude a component from the Spice Netlist add [Spice_Netlist_Enabled] user FIELD set to: N
+* To reorder the component spice node sequence add [Spice_Node_Sequence] user FIELD and define sequence: 2,1,0
+
+* Sheet Name: /
+U2 Net-_U1-Pad1_ Net-_U1-Pad2_ Net-_U2-Pad3_ d_and
+U3 Net-_U2-Pad3_ Net-_U1-Pad3_ Net-_U1-Pad4_ d_and
+U1 Net-_U1-Pad1_ Net-_U1-Pad2_ Net-_U1-Pad3_ Net-_U1-Pad4_ PORT
+
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir.out b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir.out
new file mode 100644
index 00000000..d7cf79a0
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.cir.out
@@ -0,0 +1,20 @@
+* c:\users\malli\esim\src\subcircuitlibrary\3_and\3_and.cir
+
+* u2 net-_u1-pad1_ net-_u1-pad2_ net-_u2-pad3_ d_and
+* u3 net-_u2-pad3_ net-_u1-pad3_ net-_u1-pad4_ d_and
+* u1 net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_ port
+a1 [net-_u1-pad1_ net-_u1-pad2_ ] net-_u2-pad3_ u2
+a2 [net-_u2-pad3_ net-_u1-pad3_ ] net-_u1-pad4_ u3
+* Schematic Name: d_and, NgSpice Name: d_and
+.model u2 d_and(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Schematic Name: d_and, NgSpice Name: d_and
+.model u3 d_and(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+.tran 0e-00 0e-00 0e-00
+
+* Control Statements
+.control
+run
+print allv > plot_data_v.txt
+print alli > plot_data_i.txt
+.endc
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.pro b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.pro
new file mode 100644
index 00000000..00597a5a
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.pro
@@ -0,0 +1,43 @@
+update=05/31/19 15:26:09
+version=1
+last_client=eeschema
+[general]
+version=1
+RootSch=
+BoardNm=
+[pcbnew]
+version=1
+LastNetListRead=
+UseCmpFile=1
+PadDrill=0.600000000000
+PadDrillOvalY=0.600000000000
+PadSizeH=1.500000000000
+PadSizeV=1.500000000000
+PcbTextSizeV=1.500000000000
+PcbTextSizeH=1.500000000000
+PcbTextThickness=0.300000000000
+ModuleTextSizeV=1.000000000000
+ModuleTextSizeH=1.000000000000
+ModuleTextSizeThickness=0.150000000000
+SolderMaskClearance=0.000000000000
+SolderMaskMinWidth=0.000000000000
+DrawSegmentWidth=0.200000000000
+BoardOutlineThickness=0.100000000000
+ModuleOutlineThickness=0.150000000000
+[cvpcb]
+version=1
+NetIExt=net
+[eeschema]
+version=1
+LibDir=../../../kicadSchematicLibrary
+[eeschema/libraries]
+LibName1=eSim_Analog
+LibName2=eSim_Devices
+LibName3=eSim_Digital
+LibName4=eSim_Hybrid
+LibName5=eSim_Miscellaneous
+LibName6=eSim_Plot
+LibName7=eSim_Power
+LibName8=eSim_User
+LibName9=eSim_Sources
+LibName10=eSim_Subckt
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sch b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sch
new file mode 100644
index 00000000..d6ac89f9
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sch
@@ -0,0 +1,130 @@
+EESchema Schematic File Version 2
+LIBS:power
+LIBS:texas
+LIBS:intel
+LIBS:audio
+LIBS:interface
+LIBS:digital-audio
+LIBS:philips
+LIBS:display
+LIBS:cypress
+LIBS:siliconi
+LIBS:opto
+LIBS:atmel
+LIBS:contrib
+LIBS:valves
+LIBS:eSim_Analog
+LIBS:eSim_Devices
+LIBS:eSim_Digital
+LIBS:eSim_Hybrid
+LIBS:eSim_Miscellaneous
+LIBS:eSim_Plot
+LIBS:eSim_Power
+LIBS:eSim_PSpice
+LIBS:eSim_Sources
+LIBS:eSim_Subckt
+LIBS:eSim_User
+LIBS:3_and-cache
+EELAYER 25 0
+EELAYER END
+$Descr A4 11693 8268
+encoding utf-8
+Sheet 1 1
+Title ""
+Date ""
+Rev ""
+Comp ""
+Comment1 ""
+Comment2 ""
+Comment3 ""
+Comment4 ""
+$EndDescr
+$Comp
+L d_and U2
+U 1 1 5C9A24D8
+P 4250 2700
+F 0 "U2" H 4250 2700 60 0000 C CNN
+F 1 "d_and" H 4300 2800 60 0000 C CNN
+F 2 "" H 4250 2700 60 0000 C CNN
+F 3 "" H 4250 2700 60 0000 C CNN
+ 1 4250 2700
+ 1 0 0 -1
+$EndComp
+$Comp
+L d_and U3
+U 1 1 5C9A2538
+P 5150 2900
+F 0 "U3" H 5150 2900 60 0000 C CNN
+F 1 "d_and" H 5200 3000 60 0000 C CNN
+F 2 "" H 5150 2900 60 0000 C CNN
+F 3 "" H 5150 2900 60 0000 C CNN
+ 1 5150 2900
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 1 1 5C9A259A
+P 3050 2600
+F 0 "U1" H 3100 2700 30 0000 C CNN
+F 1 "PORT" H 3050 2600 30 0000 C CNN
+F 2 "" H 3050 2600 60 0000 C CNN
+F 3 "" H 3050 2600 60 0000 C CNN
+ 1 3050 2600
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 2 1 5C9A25D9
+P 3050 2800
+F 0 "U1" H 3100 2900 30 0000 C CNN
+F 1 "PORT" H 3050 2800 30 0000 C CNN
+F 2 "" H 3050 2800 60 0000 C CNN
+F 3 "" H 3050 2800 60 0000 C CNN
+ 2 3050 2800
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 3 1 5C9A260A
+P 3050 3100
+F 0 "U1" H 3100 3200 30 0000 C CNN
+F 1 "PORT" H 3050 3100 30 0000 C CNN
+F 2 "" H 3050 3100 60 0000 C CNN
+F 3 "" H 3050 3100 60 0000 C CNN
+ 3 3050 3100
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 4 1 5C9A2637
+P 6900 2850
+F 0 "U1" H 6950 2950 30 0000 C CNN
+F 1 "PORT" H 6900 2850 30 0000 C CNN
+F 2 "" H 6900 2850 60 0000 C CNN
+F 3 "" H 6900 2850 60 0000 C CNN
+ 4 6900 2850
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 4700 2650 4700 2800
+Wire Wire Line
+ 5600 2850 6650 2850
+Wire Wire Line
+ 3800 2600 3300 2600
+Wire Wire Line
+ 3800 2700 3300 2700
+Wire Wire Line
+ 3300 2700 3300 2800
+Wire Wire Line
+ 3300 3100 4700 3100
+Wire Wire Line
+ 4700 3100 4700 2900
+Text Notes 3500 2600 0 60 ~ 12
+in1
+Text Notes 3450 2800 0 60 ~ 12
+in2\n
+Text Notes 3500 3100 0 60 ~ 12
+in3
+Text Notes 6100 2850 0 60 ~ 12
+out
+$EndSCHEMATC
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sub b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sub
new file mode 100644
index 00000000..3d9120bb
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and.sub
@@ -0,0 +1,14 @@
+* Subcircuit 3_and
+.subckt 3_and net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_
+* c:\users\malli\esim\src\subcircuitlibrary\3_and\3_and.cir
+* u2 net-_u1-pad1_ net-_u1-pad2_ net-_u2-pad3_ d_and
+* u3 net-_u2-pad3_ net-_u1-pad3_ net-_u1-pad4_ d_and
+a1 [net-_u1-pad1_ net-_u1-pad2_ ] net-_u2-pad3_ u2
+a2 [net-_u2-pad3_ net-_u1-pad3_ ] net-_u1-pad4_ u3
+* Schematic Name: d_and, NgSpice Name: d_and
+.model u2 d_and(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Schematic Name: d_and, NgSpice Name: d_and
+.model u3 d_and(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Control Statements
+
+.ends 3_and \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/3_and_Previous_Values.xml b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and_Previous_Values.xml
new file mode 100644
index 00000000..abc5faaa
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/3_and_Previous_Values.xml
@@ -0,0 +1 @@
+<KicadtoNgspice><source /><model><u2 name="type">d_and<field1 name="Enter Fall Delay (default=1.0e-9)" /><field2 name="Enter Input Load (default=1.0e-12)" /><field3 name="Enter Rise Delay (default=1.0e-9)" /></u2><u3 name="type">d_and<field4 name="Enter Fall Delay (default=1.0e-9)" /><field5 name="Enter Input Load (default=1.0e-12)" /><field6 name="Enter Rise Delay (default=1.0e-9)" /></u3></model><devicemodel /><subcircuit /><analysis><ac><field1 name="Lin">true</field1><field2 name="Dec">false</field2><field3 name="Oct">false</field3><field4 name="Start Frequency" /><field5 name="Stop Frequency" /><field6 name="No. of points" /><field7 name="Start Fre Combo">Hz</field7><field8 name="Stop Fre Combo">Hz</field8></ac><dc><field1 name="Source 1" /><field2 name="Start" /><field3 name="Increment" /><field4 name="Stop" /><field5 name="Operating Point">0</field5><field6 name="Start Combo">Volts or Amperes</field6><field7 name="Increment Combo">Volts or Amperes</field7><field8 name="Stop Combo">Volts or Amperes</field8><field9 name="Source 2" /><field10 name="Start" /><field11 name="Increment" /><field12 name="Stop" /><field13 name="Start Combo">Volts or Amperes</field13><field14 name="Increment Combo">Volts or Amperes</field14><field15 name="Stop Combo">Volts or Amperes</field15></dc><tran><field1 name="Start Time" /><field2 name="Step Time" /><field3 name="Stop Time" /><field4 name="Start Combo">Sec</field4><field5 name="Step Combo">Sec</field5><field6 name="Stop Combo">Sec</field6></tran></analysis></KicadtoNgspice> \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR-cache.lib b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR-cache.lib
new file mode 100644
index 00000000..155f5e60
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR-cache.lib
@@ -0,0 +1,63 @@
+EESchema-LIBRARY Version 2.3
+#encoding utf-8
+#
+# PORT
+#
+DEF PORT U 0 40 Y Y 26 F N
+F0 "U" 50 100 30 H V C CNN
+F1 "PORT" 0 0 30 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 325 225 285 -1421 -1278 0 1 0 N 100 50 150 0
+A 376 -275 356 1294 1408 0 1 0 N 150 0 100 -50
+S -100 50 100 -50 0 1 0 N
+X ~ 1 250 0 100 L 30 30 1 1 B
+X ~ 2 250 0 100 L 30 30 2 1 B
+X ~ 3 250 0 100 L 30 30 3 1 B
+X ~ 4 250 0 100 L 30 30 4 1 B
+X ~ 5 250 0 100 L 30 30 5 1 B
+X ~ 6 250 0 100 L 30 30 6 1 B
+X ~ 7 250 0 100 L 30 30 7 1 B
+X ~ 8 250 0 100 L 30 30 8 1 B
+X ~ 9 250 0 100 L 30 30 9 1 B
+X ~ 10 250 0 100 L 30 30 10 1 B
+X ~ 11 250 0 100 L 30 30 11 1 B
+X ~ 12 250 0 100 L 30 30 12 1 B
+X ~ 13 250 0 100 L 30 30 13 1 B
+X ~ 14 250 0 100 L 30 30 14 1 B
+X ~ 15 250 0 100 L 30 30 15 1 B
+X ~ 16 250 0 100 L 30 30 16 1 B
+X ~ 17 250 0 100 L 30 30 17 1 B
+X ~ 18 250 0 100 L 30 30 18 1 B
+X ~ 19 250 0 100 L 30 30 19 1 B
+X ~ 20 250 0 100 L 30 30 20 1 B
+X ~ 21 250 0 100 L 30 30 21 1 B
+X ~ 22 250 0 100 L 30 30 22 1 B
+X ~ 23 250 0 100 L 30 30 23 1 B
+X ~ 24 250 0 100 L 30 30 24 1 B
+X ~ 25 250 0 100 L 30 30 25 1 B
+X ~ 26 250 0 100 L 30 30 26 1 B
+ENDDRAW
+ENDDEF
+#
+# d_or
+#
+DEF d_or U 0 40 Y Y 1 F N
+F0 "U" 0 0 60 H V C CNN
+F1 "d_or" 0 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A -450 50 224 266 -266 0 1 0 N -250 150 -250 -50
+A -25 -124 325 574 323 0 1 0 N 150 150 250 50
+A 74 125 191 -665 -231 0 1 0 N 150 -50 250 50
+P 2 0 1 0 -250 -50 150 -50 N
+P 2 0 1 0 -250 150 150 150 N
+X IN1 1 -450 100 215 R 50 50 1 1 I
+X IN2 2 -450 0 215 R 50 50 1 1 I
+X OUT 3 450 50 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir
new file mode 100644
index 00000000..b338b7b5
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir
@@ -0,0 +1,14 @@
+* C:\Users\malli\eSim\src\SubcircuitLibrary\4_OR\4_OR.cir
+
+* EESchema Netlist Version 1.1 (Spice format) creation date: 03/28/19 22:47:12
+
+* To exclude a component from the Spice Netlist add [Spice_Netlist_Enabled] user FIELD set to: N
+* To reorder the component spice node sequence add [Spice_Node_Sequence] user FIELD and define sequence: 2,1,0
+
+* Sheet Name: /
+U2 Net-_U1-Pad1_ Net-_U1-Pad2_ Net-_U2-Pad3_ d_or
+U3 Net-_U1-Pad3_ Net-_U1-Pad4_ Net-_U3-Pad3_ d_or
+U4 Net-_U2-Pad3_ Net-_U3-Pad3_ Net-_U1-Pad5_ d_or
+U1 Net-_U1-Pad1_ Net-_U1-Pad2_ Net-_U1-Pad3_ Net-_U1-Pad4_ Net-_U1-Pad5_ PORT
+
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir.out b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir.out
new file mode 100644
index 00000000..adb6b01b
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.cir.out
@@ -0,0 +1,24 @@
+* c:\users\malli\esim\src\subcircuitlibrary\4_or\4_or.cir
+
+* u2 net-_u1-pad1_ net-_u1-pad2_ net-_u2-pad3_ d_or
+* u3 net-_u1-pad3_ net-_u1-pad4_ net-_u3-pad3_ d_or
+* u4 net-_u2-pad3_ net-_u3-pad3_ net-_u1-pad5_ d_or
+* u1 net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_ net-_u1-pad5_ port
+a1 [net-_u1-pad1_ net-_u1-pad2_ ] net-_u2-pad3_ u2
+a2 [net-_u1-pad3_ net-_u1-pad4_ ] net-_u3-pad3_ u3
+a3 [net-_u2-pad3_ net-_u3-pad3_ ] net-_u1-pad5_ u4
+* Schematic Name: d_or, NgSpice Name: d_or
+.model u2 d_or(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Schematic Name: d_or, NgSpice Name: d_or
+.model u3 d_or(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Schematic Name: d_or, NgSpice Name: d_or
+.model u4 d_or(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+.tran 0e-00 0e-00 0e-00
+
+* Control Statements
+.control
+run
+print allv > plot_data_v.txt
+print alli > plot_data_i.txt
+.endc
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.pro b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.pro
new file mode 100644
index 00000000..881563eb
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.pro
@@ -0,0 +1,44 @@
+update=06/01/19 12:36:09
+version=1
+last_client=eeschema
+[general]
+version=1
+RootSch=
+BoardNm=
+[pcbnew]
+version=1
+LastNetListRead=
+UseCmpFile=1
+PadDrill=0.600000000000
+PadDrillOvalY=0.600000000000
+PadSizeH=1.500000000000
+PadSizeV=1.500000000000
+PcbTextSizeV=1.500000000000
+PcbTextSizeH=1.500000000000
+PcbTextThickness=0.300000000000
+ModuleTextSizeV=1.000000000000
+ModuleTextSizeH=1.000000000000
+ModuleTextSizeThickness=0.150000000000
+SolderMaskClearance=0.000000000000
+SolderMaskMinWidth=0.000000000000
+DrawSegmentWidth=0.200000000000
+BoardOutlineThickness=0.100000000000
+ModuleOutlineThickness=0.150000000000
+[cvpcb]
+version=1
+NetIExt=net
+[eeschema]
+version=1
+LibDir=../../../kicadSchematicLibrary
+[eeschema/libraries]
+LibName1=power
+LibName2=eSim_Analog
+LibName3=eSim_Devices
+LibName4=eSim_Digital
+LibName5=eSim_Hybrid
+LibName6=eSim_Miscellaneous
+LibName7=eSim_Plot
+LibName8=eSim_Power
+LibName9=eSim_User
+LibName10=eSim_Sources
+LibName11=eSim_Subckt
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sch b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sch
new file mode 100644
index 00000000..11896865
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sch
@@ -0,0 +1,150 @@
+EESchema Schematic File Version 2
+LIBS:power
+LIBS:eSim_Analog
+LIBS:eSim_Devices
+LIBS:eSim_Digital
+LIBS:eSim_Hybrid
+LIBS:eSim_Miscellaneous
+LIBS:eSim_Plot
+LIBS:eSim_Power
+LIBS:eSim_PSpice
+LIBS:eSim_Sources
+LIBS:eSim_Subckt
+LIBS:eSim_User
+EELAYER 25 0
+EELAYER END
+$Descr A4 11693 8268
+encoding utf-8
+Sheet 1 1
+Title ""
+Date ""
+Rev ""
+Comp ""
+Comment1 ""
+Comment2 ""
+Comment3 ""
+Comment4 ""
+$EndDescr
+$Comp
+L d_or U2
+U 1 1 5C9D00E1
+P 4300 2950
+F 0 "U2" H 4300 2950 60 0000 C CNN
+F 1 "d_or" H 4300 3050 60 0000 C CNN
+F 2 "" H 4300 2950 60 0000 C CNN
+F 3 "" H 4300 2950 60 0000 C CNN
+ 1 4300 2950
+ 1 0 0 -1
+$EndComp
+$Comp
+L d_or U3
+U 1 1 5C9D011F
+P 4300 3350
+F 0 "U3" H 4300 3350 60 0000 C CNN
+F 1 "d_or" H 4300 3450 60 0000 C CNN
+F 2 "" H 4300 3350 60 0000 C CNN
+F 3 "" H 4300 3350 60 0000 C CNN
+ 1 4300 3350
+ 1 0 0 -1
+$EndComp
+$Comp
+L d_or U4
+U 1 1 5C9D0141
+P 5250 3150
+F 0 "U4" H 5250 3150 60 0000 C CNN
+F 1 "d_or" H 5250 3250 60 0000 C CNN
+F 2 "" H 5250 3150 60 0000 C CNN
+F 3 "" H 5250 3150 60 0000 C CNN
+ 1 5250 3150
+ 1 0 0 -1
+$EndComp
+Wire Wire Line
+ 4800 3050 4800 2900
+Wire Wire Line
+ 4800 2900 4750 2900
+Wire Wire Line
+ 4800 3150 4800 3300
+Wire Wire Line
+ 4800 3300 4750 3300
+Wire Wire Line
+ 3350 2850 3850 2850
+Wire Wire Line
+ 3850 2950 3600 2950
+Wire Wire Line
+ 3850 3250 3350 3250
+Wire Wire Line
+ 3600 2950 3600 3000
+Wire Wire Line
+ 3600 3000 3350 3000
+Wire Wire Line
+ 3850 3350 3850 3400
+Wire Wire Line
+ 3850 3400 3350 3400
+Wire Wire Line
+ 5700 3100 6200 3100
+$Comp
+L PORT U1
+U 1 1 5C9D01F4
+P 3100 2850
+F 0 "U1" H 3150 2950 30 0000 C CNN
+F 1 "PORT" H 3100 2850 30 0000 C CNN
+F 2 "" H 3100 2850 60 0000 C CNN
+F 3 "" H 3100 2850 60 0000 C CNN
+ 1 3100 2850
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 2 1 5C9D022F
+P 3100 3000
+F 0 "U1" H 3150 3100 30 0000 C CNN
+F 1 "PORT" H 3100 3000 30 0000 C CNN
+F 2 "" H 3100 3000 60 0000 C CNN
+F 3 "" H 3100 3000 60 0000 C CNN
+ 2 3100 3000
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 3 1 5C9D0271
+P 3100 3250
+F 0 "U1" H 3150 3350 30 0000 C CNN
+F 1 "PORT" H 3100 3250 30 0000 C CNN
+F 2 "" H 3100 3250 60 0000 C CNN
+F 3 "" H 3100 3250 60 0000 C CNN
+ 3 3100 3250
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 4 1 5C9D0299
+P 3100 3400
+F 0 "U1" H 3150 3500 30 0000 C CNN
+F 1 "PORT" H 3100 3400 30 0000 C CNN
+F 2 "" H 3100 3400 60 0000 C CNN
+F 3 "" H 3100 3400 60 0000 C CNN
+ 4 3100 3400
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 5 1 5C9D02C2
+P 6450 3100
+F 0 "U1" H 6500 3200 30 0000 C CNN
+F 1 "PORT" H 6450 3100 30 0000 C CNN
+F 2 "" H 6450 3100 60 0000 C CNN
+F 3 "" H 6450 3100 60 0000 C CNN
+ 5 6450 3100
+ -1 0 0 1
+$EndComp
+Text Notes 3450 2850 0 60 ~ 12
+in1
+Text Notes 3450 3000 0 60 ~ 12
+in2
+Text Notes 3450 3250 0 60 ~ 12
+in3
+Text Notes 3450 3400 0 60 ~ 12
+in4
+Text Notes 5800 3100 0 60 ~ 12
+out
+$EndSCHEMATC
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sub b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sub
new file mode 100644
index 00000000..d1fd3a24
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR.sub
@@ -0,0 +1,18 @@
+* Subcircuit 4_OR
+.subckt 4_OR net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_ net-_u1-pad5_
+* c:\users\malli\esim\src\subcircuitlibrary\4_or\4_or.cir
+* u2 net-_u1-pad1_ net-_u1-pad2_ net-_u2-pad3_ d_or
+* u3 net-_u1-pad3_ net-_u1-pad4_ net-_u3-pad3_ d_or
+* u4 net-_u2-pad3_ net-_u3-pad3_ net-_u1-pad5_ d_or
+a1 [net-_u1-pad1_ net-_u1-pad2_ ] net-_u2-pad3_ u2
+a2 [net-_u1-pad3_ net-_u1-pad4_ ] net-_u3-pad3_ u3
+a3 [net-_u2-pad3_ net-_u3-pad3_ ] net-_u1-pad5_ u4
+* Schematic Name: d_or, NgSpice Name: d_or
+.model u2 d_or(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Schematic Name: d_or, NgSpice Name: d_or
+.model u3 d_or(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Schematic Name: d_or, NgSpice Name: d_or
+.model u4 d_or(fall_delay=1.0e-9 input_load=1.0e-12 rise_delay=1.0e-9 )
+* Control Statements
+
+.ends 4_OR \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR_Previous_Values.xml b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR_Previous_Values.xml
new file mode 100644
index 00000000..0683d9eb
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/4_OR_Previous_Values.xml
@@ -0,0 +1 @@
+<KicadtoNgspice><source /><model><u2 name="type">d_or<field1 name="Enter Fall Delay (default=1.0e-9)" /><field2 name="Enter Input Load (default=1.0e-12)" /><field3 name="Enter Rise Delay (default=1.0e-9)" /></u2><u3 name="type">d_or<field4 name="Enter Fall Delay (default=1.0e-9)" /><field5 name="Enter Input Load (default=1.0e-12)" /><field6 name="Enter Rise Delay (default=1.0e-9)" /></u3><u4 name="type">d_or<field7 name="Enter Fall Delay (default=1.0e-9)" /><field8 name="Enter Input Load (default=1.0e-12)" /><field9 name="Enter Rise Delay (default=1.0e-9)" /></u4></model><devicemodel /><subcircuit /><analysis><ac><field1 name="Lin">true</field1><field2 name="Dec">false</field2><field3 name="Oct">false</field3><field4 name="Start Frequency" /><field5 name="Stop Frequency" /><field6 name="No. of points" /><field7 name="Start Fre Combo">Hz</field7><field8 name="Stop Fre Combo">Hz</field8></ac><dc><field1 name="Source 1" /><field2 name="Start" /><field3 name="Increment" /><field4 name="Stop" /><field5 name="Operating Point">0</field5><field6 name="Start Combo">Volts or Amperes</field6><field7 name="Increment Combo">Volts or Amperes</field7><field8 name="Stop Combo">Volts or Amperes</field8><field9 name="Source 2" /><field10 name="Start" /><field11 name="Increment" /><field12 name="Stop" /><field13 name="Start Combo">Volts or Amperes</field13><field14 name="Increment Combo">Volts or Amperes</field14><field15 name="Stop Combo">Volts or Amperes</field15></dc><tran><field1 name="Start Time" /><field2 name="Step Time" /><field3 name="Stop Time" /><field4 name="Start Combo">Sec</field4><field5 name="Step Combo">Sec</field5><field6 name="Stop Combo">Sec</field6></tran></analysis></KicadtoNgspice> \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/74194.bck b/library/SubcircuitLibrary/bidirectional_shift_reg/74194.bck
new file mode 100644
index 00000000..1980d0d1
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/74194.bck
@@ -0,0 +1,7 @@
+EESchema-DOCLIB Version 2.0
+#
+$CMP SCR
+D Thyristor
+$ENDCMP
+#
+#End Doc Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/74194.dcm b/library/SubcircuitLibrary/bidirectional_shift_reg/74194.dcm
new file mode 100644
index 00000000..1980d0d1
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/74194.dcm
@@ -0,0 +1,7 @@
+EESchema-DOCLIB Version 2.0
+#
+$CMP SCR
+D Thyristor
+$ENDCMP
+#
+#End Doc Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/74194.lib b/library/SubcircuitLibrary/bidirectional_shift_reg/74194.lib
new file mode 100644
index 00000000..b52eb294
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/74194.lib
@@ -0,0 +1,1120 @@
+EESchema-LIBRARY Version 2.3
+#encoding utf-8
+#
+# 10bitDAC
+#
+DEF 10bitDAC X 0 40 Y Y 1 F N
+F0 "X" 0 50 60 H V C CNN
+F1 "10bitDAC" -50 -50 60 H V C CNN
+F2 "" 0 50 60 H I C CNN
+F3 "" 0 50 60 H I C CNN
+DRAW
+S -500 500 400 -600 0 1 0 N
+X D0 1 -700 -500 200 R 50 50 1 1 I
+X D1 2 -700 -400 200 R 50 50 1 1 I
+X D2 3 -700 -300 200 R 50 50 1 1 I
+X D3 4 -700 -200 200 R 50 50 1 1 I
+X D4 5 -700 -100 200 R 50 50 1 1 I
+X D5 6 -700 0 200 R 50 50 1 1 I
+X D6 7 -700 100 200 R 50 50 1 1 I
+X D7 8 -700 200 200 R 50 50 1 1 I
+X D8 9 -700 300 200 R 50 50 1 1 I
+X D9 10 -700 400 200 R 50 50 1 1 I
+X AnalogOut 11 600 350 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 2BITMUL
+#
+DEF 2BITMUL X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "2BITMUL" 0 0 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -300 400 300 -400 0 1 0 N
+X A0 1 -500 300 200 R 50 50 1 1 I
+X A1 2 -500 150 200 R 50 50 1 1 I
+X B0 3 -500 -50 200 R 50 50 1 1 I
+X B1 4 -500 -250 200 R 50 50 1 1 I
+X M0 5 500 250 200 L 50 50 1 1 O
+X M1 6 500 100 200 L 50 50 1 1 O
+X M2 7 500 -50 200 L 50 50 1 1 O
+X M3 8 500 -250 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 3_and
+#
+DEF 3_and X 0 40 Y Y 1 F N
+F0 "X" 100 -50 60 H V C CNN
+F1 "3_and" 150 150 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 150 50 158 716 -716 0 1 0 N 200 200 200 -100
+P 2 0 1 0 -150 200 200 200 N
+P 3 0 1 0 -150 200 -150 -100 200 -100 N
+X in1 1 -350 150 200 R 50 50 1 1 I
+X in2 2 -350 50 200 R 50 50 1 1 I
+X in3 3 -350 -50 200 R 50 50 1 1 I
+X out 4 500 50 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 4_OR
+#
+DEF 4_OR X 0 40 Y Y 1 F N
+F0 "X" 150 -100 60 H V C CNN
+F1 "4_OR" 150 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A -800 0 650 226 -226 0 1 0 N -200 250 -200 -250
+A -73 134 444 -599 -176 0 1 0 N 150 -250 350 0
+A -30 -99 393 627 146 0 1 0 N 150 250 350 0
+P 2 0 1 0 -200 -250 150 -250 N
+P 2 0 1 0 -200 250 150 250 N
+X in1 1 -350 150 200 R 50 50 1 1 I
+X in2 2 -350 50 200 R 50 50 1 1 I
+X in3 3 -350 -50 200 R 50 50 1 1 I
+X in4 4 -350 -150 200 R 50 50 1 1 I
+X out 5 550 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 4_and
+#
+DEF 4_and X 0 40 Y Y 1 F N
+F0 "X" 50 -50 60 H V C CNN
+F1 "4_and" 100 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 100 0 206 760 -760 0 1 0 N 150 200 150 -200
+P 2 0 1 0 -200 200 150 200 N
+P 4 0 1 0 -200 200 -200 -200 50 -200 150 -200 N
+X in1 1 -400 150 200 R 50 50 1 1 I
+X in2 2 -400 50 200 R 50 50 1 1 I
+X in3 3 -400 -50 200 R 50 50 1 1 I
+X in4 4 -400 -150 200 R 50 50 1 1 I
+X out 5 500 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 556
+#
+DEF 556 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "556" 0 0 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 400 250 -550 0 1 0 N
+X dis1 1 -500 150 200 R 50 50 1 1 I
+X thr1 2 -500 -150 200 R 50 50 1 1 I
+X cv1 3 -150 -750 200 U 50 50 1 1 I
+X rst1 4 -200 600 200 D 50 50 1 1 I
+X out1 5 -500 0 200 R 50 50 1 1 O
+X trig1 6 -500 -300 200 R 50 50 1 1 I
+X gnd 7 0 -750 200 U 50 50 1 1 I
+X trig2 8 450 -300 200 L 50 50 1 1 I
+X out2 9 450 0 200 L 50 50 1 1 O
+X rst2 10 100 600 200 D 50 50 1 1 I
+X cv2 11 150 -750 200 U 50 50 1 1 I
+X thr2 12 450 -150 200 L 50 50 1 1 I
+X dis2 13 450 150 200 L 50 50 1 1 I
+X vcc 14 -50 600 200 D 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# 5_and
+#
+DEF 5_and X 0 40 Y Y 1 F N
+F0 "X" 50 -100 60 H V C CNN
+F1 "5_and" 100 150 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 100 0 255 787 -787 0 1 0 N 150 250 150 -250
+P 2 0 1 0 -250 250 150 250 N
+P 3 0 1 0 -250 250 -250 -250 150 -250 N
+X in1 1 -450 200 200 R 50 50 1 1 I
+X in2 2 -450 100 200 R 50 50 1 1 I
+X in3 3 -450 0 200 R 50 50 1 1 I
+X in4 4 -450 -100 200 R 50 50 1 1 I
+X in5 5 -450 -200 200 R 50 50 1 1 I
+X out 6 550 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 74194
+#
+DEF 74194 X 0 40 Y Y 1 F N
+F0 "X" 50 -50 60 H V C CNN
+F1 "74194" 0 250 60 H V C CNN
+F2 "" 50 -50 60 H I C CNN
+F3 "" 50 -50 60 H I C CNN
+DRAW
+S -150 150 200 -250 0 1 0 N
+X clk 1 -350 100 200 R 31 31 1 1 I
+X d0 2 -350 50 200 R 31 31 1 1 I
+X dsr 3 -350 0 200 R 31 31 1 1 I
+X d1 4 -350 -50 200 R 31 31 1 1 I
+X d2 5 -350 -100 200 R 31 31 1 1 I
+X d3 6 -350 -150 200 R 31 31 1 1 I
+X dsl 7 -350 -200 200 R 31 31 1 1 I
+X rst 8 400 100 200 L 31 31 1 1 I
+X sel1 9 400 50 200 L 31 31 1 1 I
+X sel0 10 400 0 200 L 31 31 1 1 I
+X q0 11 400 -50 200 L 31 31 1 1 O
+X q1 12 400 -100 200 L 31 31 1 1 O
+X q2 13 400 -150 200 L 31 31 1 1 O
+X q3 14 400 -200 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 74hc194
+#
+DEF 74hc194 X 0 40 Y Y 1 F N
+F0 "X" 0 -200 60 H V C CNN
+F1 "74hc194" 0 0 39 H V C CNN
+F2 "" 0 -200 60 H I C CNN
+F3 "" 0 -200 60 H I C CNN
+DRAW
+S 300 -300 300 -300 0 1 0 N
+S -300 250 300 -450 1 1 0 N
+X dsr 1 -500 200 200 R 39 39 1 1 I
+X s0 2 -500 100 200 R 39 39 1 1 I
+X s1 3 -500 0 200 R 39 39 1 1 I
+X d0 4 -500 -100 200 R 39 39 1 1 I
+X clk 5 -500 -200 200 R 39 39 1 1 I
+X rst 6 -500 -300 200 R 39 39 1 1 I
+X q0 7 500 200 200 L 39 39 1 1 O
+X d1 8 500 100 200 L 39 39 1 1 I
+X q1 9 500 0 200 L 39 39 1 1 O
+X d2 10 500 -100 200 L 39 39 1 1 I
+X q2 11 500 -200 200 L 39 39 1 1 O
+X d3 12 500 -300 200 L 39 39 1 1 I
+X dsl 13 -500 -400 200 R 39 39 1 1 I
+X q3 14 500 -400 200 L 39 39 1 1 O
+ENDDRAW
+ENDDEF
+#
+# CD4007
+#
+DEF CD4007 X 0 40 Y Y 1 F N
+F0 "X" 0 0 39 H V C CNN
+F1 "CD4007" 0 100 39 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -250 250 250 -150 0 1 0 N
+S 250 -200 250 -200 0 1 0 N
+X G1 1 -450 200 200 R 31 31 1 1 I
+X GND 2 -450 150 200 R 31 31 1 1 I
+X vdd 3 -450 100 200 R 31 31 1 1 I
+X Dp1 4 -450 50 200 R 31 31 1 1 B
+X DN1 5 -450 0 200 R 31 31 1 1 B
+X g2 6 -450 -50 200 R 31 31 1 1 I
+X Dp2 7 -450 -100 200 R 31 31 1 1 B
+X Sn2 8 450 200 200 L 31 31 1 1 B
+X Sp2 9 450 150 200 L 31 31 1 1 B
+X Dn2 10 450 100 200 L 31 31 1 1 B
+X g3 11 450 50 200 L 31 31 1 1 I
+X SN3 12 450 0 200 L 31 31 1 1 B
+X SP3 13 450 -50 200 L 31 31 1 1 B
+X DN3 14 450 -100 200 L 31 31 1 1 B
+ENDDRAW
+ENDDEF
+#
+# CMOS_NAND
+#
+DEF CMOS_NAND X 0 40 Y Y 1 F N
+F0 "X" -100 -150 60 H V C CNN
+F1 "CMOS_NAND" 0 -50 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+A 150 -50 381 668 -668 0 1 0 N 300 300 300 -400
+C 550 0 50 0 1 0 N
+P 2 0 1 0 -350 300 300 300 N
+P 3 0 1 0 -350 300 -350 -400 300 -400 N
+X in1 1 -550 250 200 R 50 50 1 1 I
+X in2 2 -550 -300 200 R 50 50 1 1 I
+X out 3 800 0 279 L 79 79 1 1 I
+ENDDRAW
+ENDDEF
+#
+# Clock_pulse_generator
+#
+DEF Clock_pulse_generator X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "Clock_pulse_generator" 0 -100 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -550 200 600 -300 0 1 0 N
+X Vdd 1 -750 100 200 R 50 50 1 1 I
+X R 2 -750 -50 200 R 50 50 1 1 I
+X C 3 -750 -200 200 R 50 50 1 1 I
+X Clkout 4 800 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_4002
+#
+DEF IC_4002 X 0 40 Y Y 1 F N
+F0 "X" 0 150 60 H V C CNN
+F1 "IC_4002" 0 0 60 H V C CNN
+F2 "" 50 -150 60 H V C CNN
+F3 "" 50 -150 60 H V C CNN
+DRAW
+S -250 350 250 -400 0 1 0 N
+X 1Y 1 -450 250 200 R 50 50 1 1 O
+X 1A 2 -450 150 200 R 50 50 1 1 I
+X 1B 3 -450 50 200 R 50 50 1 1 I
+X 1C 4 -450 -50 200 R 50 50 1 1 I
+X 1D 5 -450 -150 200 R 50 50 1 1 I
+X NC 6 -450 -250 200 R 50 50 1 1 I
+X GND 7 -450 -350 200 R 50 50 1 1 I
+X NC 8 450 -350 200 L 50 50 1 1 I
+X 2A 9 450 -250 200 L 50 50 1 1 I
+X 2B 10 450 -150 200 L 50 50 1 1 I
+X 2C 11 450 -50 200 L 50 50 1 1 I
+X 2D 12 450 50 200 L 50 50 1 1 I
+X 2Y 13 450 150 200 L 50 50 1 1 O
+X VCC 14 450 250 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4012
+#
+DEF IC_4012 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "IC_4012" 0 200 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 400 350 -400 0 1 0 N
+X Q1 1 -500 300 200 R 50 50 1 1 O
+X A1 2 -500 200 200 R 50 50 1 1 I
+X B1 3 -500 100 200 R 50 50 1 1 I
+X C1 4 -500 0 200 R 50 50 1 1 I
+X D1 5 -500 -100 200 R 50 50 1 1 I
+X NC 6 -500 -200 200 R 50 50 1 1 N
+X VSS 7 -500 -300 200 R 50 50 1 1 I
+X NC 8 550 -300 200 L 50 50 1 1 N
+X A2 9 550 -200 200 L 50 50 1 1 I
+X B2 10 550 -100 200 L 50 50 1 1 I
+X C2 11 550 0 200 L 50 50 1 1 I
+X D2 12 550 100 200 L 50 50 1 1 I
+X Q2 13 550 200 200 L 50 50 1 1 O
+X VDD 14 550 300 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4017
+#
+DEF IC_4017 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "IC_4017" 0 0 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -350 850 400 -850 0 1 0 N
+X 1 1 600 650 200 L 50 50 1 1 O
+X 2 2 600 500 200 L 50 50 1 1 O
+X 3 3 600 350 200 L 50 50 1 1 O
+X 4 4 600 200 200 L 50 50 1 1 O
+X 5 5 600 50 200 L 50 50 1 1 O
+X 6 6 600 -100 200 L 50 50 1 1 O
+X 7 7 600 -250 200 L 50 50 1 1 O
+X 8 8 600 -400 200 L 50 50 1 1 O
+X 9 9 600 -600 200 L 50 50 1 1 O
+X 10 10 600 -750 200 L 50 50 1 1 O
+X RST 11 -550 -400 200 R 50 50 1 1 I
+X CLK 12 -550 350 200 R 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4023
+#
+DEF IC_4023 X 0 40 Y Y 1 F N
+F0 "X" 0 -100 60 H V C CNN
+F1 "IC_4023" 0 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 450 300 -450 0 1 0 N
+X A1 1 -500 300 200 R 50 50 1 1 I
+X B1 2 -500 200 200 R 50 50 1 1 I
+X A2 3 -500 100 200 R 50 50 1 1 I
+X B2 4 -500 0 200 R 50 50 1 1 I
+X C2 5 -500 -100 200 R 50 50 1 1 I
+X Q2 6 -500 -200 200 R 50 50 1 1 O
+X Vss 7 -500 -300 200 R 50 50 1 1 I
+X C1 8 500 -300 200 L 50 50 1 1 I
+X Q1 9 500 -200 200 L 50 50 1 1 O
+X Q3 10 500 -100 200 L 50 50 1 1 O
+X C3 11 500 0 200 L 50 50 1 1 I
+X B3 12 500 100 200 L 50 50 1 1 I
+X A3 13 500 200 200 L 50 50 1 1 I
+X Vdd 14 500 300 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4028
+#
+DEF IC_4028 X 0 40 Y Y 1 F N
+F0 "X" 0 -100 60 H V C CNN
+F1 "IC_4028" 0 50 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 450 300 -450 0 1 0 N
+X Q4 1 -500 350 200 R 50 50 1 1 O
+X Q2 2 -500 250 200 R 50 50 1 1 O
+X Q0 3 -500 150 200 R 50 50 1 1 O
+X Q7 4 -500 50 200 R 50 50 1 1 O
+X Q9 5 -500 -50 200 R 50 50 1 1 O
+X Q5 6 -500 -150 200 R 50 50 1 1 O
+X Q6 7 -500 -250 200 R 50 50 1 1 O
+X Vss 8 -500 -350 200 R 50 50 1 1 I
+X Q8 9 500 -350 200 L 50 50 1 1 O
+X A0 10 500 -250 200 L 50 50 1 1 I
+X A3 11 500 -150 200 L 50 50 1 1 I
+X A2 12 500 -50 200 L 50 50 1 1 I
+X A1 13 500 50 200 L 50 50 1 1 I
+X Q1 14 500 150 200 L 50 50 1 1 O
+X Q3 15 500 250 200 L 50 50 1 1 O
+X Vdd 16 500 350 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_4073
+#
+DEF IC_4073 X 0 40 Y Y 1 F N
+F0 "X" 0 -100 60 H V C CNN
+F1 "IC_4073" 0 50 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 400 300 -400 0 1 0 N
+X A1 1 -500 300 200 R 50 50 1 1 I
+X B1 2 -500 200 200 R 50 50 1 1 I
+X A2 3 -500 100 200 R 50 50 1 1 I
+X B2 4 -500 0 200 R 50 50 1 1 I
+X C2 5 -500 -100 200 R 50 50 1 1 I
+X Q2 6 -500 -200 200 R 50 50 1 1 O
+X Vss 7 -500 -300 200 R 50 50 1 1 I
+X C1 8 500 -300 200 L 50 50 1 1 I
+X Q1 9 500 -200 200 L 50 50 1 1 O
+X Q3 10 500 -100 200 L 50 50 1 1 O
+X A3 11 500 0 200 L 50 50 1 1 I
+X B3 12 500 100 200 L 50 50 1 1 I
+X C3 13 500 200 200 L 50 50 1 1 I
+X Vdd 14 500 300 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_74153
+#
+DEF IC_74153 X 0 40 Y Y 1 F N
+F0 "X" 100 50 60 H V C CNN
+F1 "IC_74153" 100 150 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+T 0 100 -200 60 0 0 0 4:1 Normal 0 C C
+T 0 100 -100 60 0 0 0 DUAL Normal 0 C C
+T 0 100 -300 60 0 0 0 MUX Normal 0 C C
+S -200 500 350 -550 0 1 0 N
+X a0 1 -400 350 200 R 50 50 1 1 I
+X a1 2 -400 250 200 R 50 50 1 1 I
+X a2 3 -400 150 200 R 50 50 1 1 I
+X a3 4 -400 50 200 R 50 50 1 1 I
+X EA 5 0 700 200 D 50 50 1 1 I I
+X b0 6 -400 -150 200 R 50 50 1 1 I
+X b1 7 -400 -250 200 R 50 50 1 1 I
+X b2 8 -400 -350 200 R 50 50 1 1 I
+X b3 9 -400 -450 200 R 50 50 1 1 I
+X EB 10 200 700 200 D 50 50 1 1 I I
+X s1 11 50 -750 200 U 50 50 1 1 I
+X s0 12 150 -750 200 U 50 50 1 1 I
+X ya 13 550 250 200 L 50 50 1 1 O
+X yb 14 550 -300 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_74154
+#
+DEF IC_74154 X 0 40 Y Y 1 F N
+F0 "X" 0 -200 60 H V C CNN
+F1 "IC_74154" 50 -50 60 H V C CNN
+F2 "" 0 50 60 H V C CNN
+F3 "" 0 50 60 H V C CNN
+DRAW
+T 0 0 400 60 0 0 0 4:16~ Normal 0 C C
+T 0 0 250 60 0 0 0 decoder Normal 0 C C
+S -350 700 400 -700 0 0 0 N
+X ~Y0 1 -550 550 200 R 50 50 1 1 O I
+X ~Y1 2 -550 450 200 R 50 50 1 1 O I
+X ~Y2 3 -550 350 200 R 50 50 1 1 O I
+X ~Y3 4 -550 250 200 R 50 50 1 1 O I
+X ~Y4 5 -550 150 200 R 50 50 1 1 O I
+X ~Y5 6 -550 50 200 R 50 50 1 1 O I
+X ~Y6 7 -550 -50 200 R 50 50 1 1 O I
+X ~Y7 8 -550 -150 200 R 50 50 1 1 O I
+X ~Y8 9 -550 -250 200 R 50 50 1 1 O I
+X ~Y9 10 -550 -350 200 R 50 50 1 1 O I
+X A3 20 600 150 200 L 50 50 1 1 I
+X ~Y10 11 -550 -450 200 R 50 50 1 1 O I
+X A2 21 600 250 200 L 50 50 1 1 I
+X GND 12 -550 -550 200 R 50 50 1 1 I
+X A1 22 600 350 200 L 50 50 1 1 I
+X ~Y11 13 600 -550 200 L 50 50 1 1 O I
+X A0 23 600 450 200 L 50 50 1 1 I
+X ~Y12 14 600 -450 200 L 50 50 1 1 O I
+X Vcc 24 600 550 200 L 50 50 1 1 I
+X ~Y13 15 600 -350 200 L 50 50 1 1 O I
+X ~Y14 16 600 -250 200 L 50 50 1 1 O I
+X ~Y15 17 600 -150 200 L 50 50 1 1 O I
+X ~E0 18 600 -50 200 L 50 50 1 1 I I
+X ~E1 19 600 50 200 L 50 50 1 1 I I
+ENDDRAW
+ENDDEF
+#
+# IC_74157
+#
+DEF IC_74157 X 0 40 Y Y 1 F N
+F0 "X" 50 -50 60 H V C CNN
+F1 "IC_74157" 50 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+T 0 50 -300 60 0 0 0 2:1 Normal 0 C C
+T 0 50 -400 60 0 0 0 MUX Normal 0 C C
+T 0 50 -200 60 0 0 0 QUAD Normal 0 C C
+S -350 550 400 -650 0 1 0 N
+X a0 1 -550 450 200 R 50 50 1 1 I
+X a1 2 -550 300 200 R 50 50 1 1 I
+X b0 3 -550 200 200 R 50 50 1 1 I
+X b1 4 -550 100 200 R 50 50 1 1 I
+X c0 5 -550 0 200 R 50 50 1 1 I
+X c1 6 -550 -100 200 R 50 50 1 1 I
+X d0 7 -550 -200 200 R 50 50 1 1 I
+X d1 8 -550 -300 200 R 50 50 1 1 I
+X EN 9 -550 -550 200 R 50 50 1 1 I I
+X S 10 -550 -450 200 R 50 50 1 1 I
+X Yd 11 600 0 200 L 50 50 1 1 O
+X Ya 12 600 300 200 L 50 50 1 1 O
+X Yb 13 600 200 200 L 50 50 1 1 O
+X Yc 14 600 100 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_7485
+#
+DEF IC_7485 X 0 40 Y Y 1 F N
+F0 "X" -50 -100 60 H V C CNN
+F1 "IC_7485" -50 50 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+T 0 0 550 60 0 0 0 4~BIT~comparator Normal 0 C C
+S -350 450 400 -400 0 1 0 N
+X A<B(in) 1 600 -100 200 L 50 50 1 1 I
+X A=B(in) 2 600 -200 200 L 50 50 1 1 I
+X A>B(in) 3 600 -300 200 L 50 50 1 1 I
+X A3 4 -550 100 200 R 50 50 1 1 I
+X B3 5 -550 -350 200 R 50 50 1 1 I
+X A2 6 -550 200 200 R 50 50 1 1 I
+X B2 7 -550 -250 200 R 50 50 1 1 I
+X A1 8 -550 300 200 R 50 50 1 1 I
+X B1 9 -550 -150 200 R 50 50 1 1 I
+X A0 10 -550 400 200 R 50 50 1 1 I
+X B0 11 -550 -50 200 R 50 50 1 1 I
+X A>B(out) 12 600 350 200 L 50 50 1 1 O
+X A=B(out) 13 600 250 200 L 50 50 1 1 O
+X A<B(out) 14 600 150 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# INVCMOS
+#
+DEF INVCMOS X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "INVCMOS" -450 150 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+C 400 0 112 0 1 0 N
+S -250 200 -250 -200 0 1 0 N
+P 3 0 1 0 -250 200 300 0 -250 -200 N
+X in 1 -450 0 200 R 50 50 1 1 P
+X out 2 700 0 200 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# LM13700
+#
+DEF LM13700 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "LM13700" 50 200 39 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+X INPUT(+) 6 -550 -200 200 R 31 31 1 0 I
+X DIODEBIAS2 7 700 350 200 L 31 31 1 0 I
+X INPUT2(-) 8 700 250 200 L 31 31 1 0 I
+X OUTPUT 9 -550 -350 200 R 31 31 1 0 O
+X AMPBIASINPUT2 10 700 150 200 L 31 31 1 0 I
+X INPUT2(+) 11 700 -50 200 L 31 31 1 0 O
+X OUTPUT2 12 700 -200 200 L 31 31 1 0 O
+S -350 450 500 -400 0 1 0 N
+X DIODEBIAS 1 -550 350 200 R 31 31 1 1 I
+X INPUT(-) 2 -550 250 200 R 31 31 1 1 I
+X V(+) 3 -550 150 200 R 31 31 1 1 I
+X V(-) 4 -550 50 200 R 31 31 1 1 I
+X AMPBIASINPUT 5 -550 -100 200 R 31 31 1 1 I
+ENDDRAW
+ENDDEF
+#
+# LM555N
+#
+DEF LM555N X 0 40 Y Y 1 F N
+F0 "X" 0 -50 60 H V C CNN
+F1 "LM555N" 0 100 60 H V C CNN
+F2 "" -50 0 60 H V C CNN
+F3 "" -50 0 60 H V C CNN
+DRAW
+S 350 -400 -350 400 0 1 0 N
+X GND 1 0 -600 200 U 50 50 1 1 W
+X TR 2 -550 250 200 R 50 50 1 1 I
+X Q 3 550 250 200 L 50 50 1 1 O
+X R 4 -550 -250 200 R 50 50 1 1 I I
+X CV 5 -550 0 200 R 50 50 1 1 I
+X THR 6 550 -250 200 L 50 50 1 1 I
+X DIS 7 550 0 200 L 50 50 1 1 I
+X VCC 8 0 600 200 D 50 50 1 1 W
+ENDDRAW
+ENDDEF
+#
+# LM_7812
+#
+DEF LM_7812 X 0 40 Y Y 1 F N
+F0 "X" 0 50 60 H V C CNN
+F1 "LM_7812" 0 150 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -350 200 350 -200 0 1 0 N
+X IN 1 -550 0 200 R 50 50 1 1 I
+X GND 2 0 -400 200 U 50 50 1 1 I
+X OUT 3 550 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# Lm_7805
+#
+DEF Lm_7805 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "Lm_7805" 50 150 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -350 100 350 -200 0 1 0 N
+X Vin 1 -550 0 200 R 50 50 1 1 P
+X GND 2 0 -400 200 U 50 50 1 1 P
+X Vout 3 550 0 200 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# NAND5
+#
+DEF NAND5 X 0 40 Y Y 1 F N
+F0 "X" 450 -200 35 H V C CNN
+F1 "NAND5" 450 -100 35 H V C CNN
+F2 "" 450 -200 60 H I C CNN
+F3 "" 450 -200 60 H I C CNN
+DRAW
+A 500 -150 100 -899 899 0 1 0 N 500 -250 500 -50
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 -1799 -1 0 1 0 N 600 -150 650 -150
+C 650 -100 0 0 1 0 N
+C 650 -100 0 0 1 0 N
+P 2 0 1 0 300 -50 500 -50 N
+P 3 0 1 0 300 -50 300 -250 500 -250 N
+X B 1 100 -50 200 R 20 20 1 1 I
+X D 2 100 -100 200 R 20 20 1 1 I
+X E 3 100 -150 200 R 20 20 1 1 I
+X C 4 100 -200 200 R 20 20 1 1 I
+X A 5 100 -250 200 R 20 20 1 1 I
+X OUT 6 850 -150 200 L 12 12 1 1 O
+ENDDRAW
+ENDDEF
+#
+# SCR
+#
+DEF SCR X 0 10 Y N 1 F N
+F0 "X" 150 200 50 H V C CNN
+F1 "SCR" 150 -350 50 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+P 2 0 0 0 -200 -150 200 -150 N
+P 2 0 1 0 0 -150 -200 -400 N
+P 3 0 1 0 -150 100 150 100 0 -150 F
+X A 1 0 400 300 D 60 60 1 1 I
+X K 2 0 -550 400 U 60 70 1 1 I
+X G 3 -350 -400 150 R 60 60 1 1 I
+ENDDRAW
+ENDDEF
+#
+# SN54HC164
+#
+DEF SN54HC164 X 0 40 Y Y 1 F N
+F0 "X" -150 200 60 H V C CNN
+F1 "SN54HC164" -200 400 39 H V C CNN
+F2 "" -150 200 60 H I C CNN
+F3 "" -150 200 60 H I C CNN
+DRAW
+S -600 600 -600 600 0 1 0 N
+S -600 600 200 -250 0 1 0 N
+X d5 6 -800 -100 200 R 50 50 0 1 O
+X d2 7 400 500 200 L 50 50 0 1 O
+X d6 8 400 400 200 L 50 50 0 1 O
+X d3 9 400 250 200 L 50 50 0 1 O
+X d7 10 400 100 200 L 50 50 0 1 O
+X d4 11 400 0 200 L 50 50 0 1 O
+X d8 12 400 -100 200 L 50 50 0 1 O
+X A 1 -800 500 200 R 50 50 1 1 I
+X B 2 -800 350 200 R 50 50 1 1 I
+X clk 3 -800 250 200 R 50 50 1 1 I
+X rst 4 -800 150 200 R 50 50 1 1 I
+X d1 5 -800 50 200 R 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# UJT
+#
+DEF UJT X 0 40 Y Y 1 F N
+F0 "X" -50 -50 60 H V C CNN
+F1 "UJT" 50 -50 60 H V C CNN
+F2 "" -50 -50 60 H I C CNN
+F3 "" -50 -50 60 H I C CNN
+DRAW
+C -50 -50 206 0 1 0 N
+P 2 0 1 0 -100 100 -100 -200 N
+P 3 0 1 0 -250 0 -200 0 -100 -100 N
+P 3 0 1 0 -200 -50 -150 -50 -150 0 N
+P 3 0 1 0 -100 -150 0 -150 0 -250 N
+P 3 0 1 0 -100 50 0 50 0 150 N
+X E 1 -450 0 200 R 50 50 1 1 I
+X B1 2 0 -450 200 U 50 50 1 1 B
+X B2 3 0 350 200 D 50 50 1 1 B
+ENDDRAW
+ENDDEF
+#
+# cmos_d_ff
+#
+DEF cmos_d_ff X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "cmos_d_ff" 0 300 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -250 200 250 -300 0 1 0 N
+X CLK 1 -450 150 200 R 39 39 1 1 I
+X D 2 -450 50 200 R 39 39 1 1 I
+X RST 3 -450 -50 200 R 39 39 1 1 I
+X Q_BAR 4 -450 -150 200 R 39 39 1 1 O
+X VCC 5 450 150 200 L 39 39 1 1 I
+X GND 6 450 50 200 L 39 39 1 1 I
+X Q 7 450 -50 200 L 39 39 1 1 O
+ENDDRAW
+ENDDEF
+#
+# d_flipflop
+#
+DEF d_flipflop X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "d_flipflop" 0 300 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 200 200 -200 0 1 0 N
+S 200 -200 200 -200 0 1 0 N
+X clk 1 -400 -100 200 R 50 50 1 1 I
+X d 2 -400 100 200 R 50 50 1 1 I
+X rst 3 0 -400 200 U 50 50 1 1 I
+X q 4 400 100 200 L 50 50 1 1 O
+X q_bar 5 400 -100 200 L 24 24 1 1 O
+ENDDRAW
+ENDDEF
+#
+# eSim_74LS04
+#
+DEF eSim_74LS04 X 0 40 Y Y 1 F N
+F0 "X" 0 100 60 H V C CNN
+F1 "eSim_74LS04" 0 0 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S 350 500 -350 -500 0 1 0 N
+X ~ 1 -550 450 200 R 50 50 1 1 P
+X ~ 2 -550 300 200 R 50 50 1 1 P I
+X ~ 3 -550 150 200 R 50 50 1 1 P
+X ~ 4 -550 0 200 R 50 50 1 1 P I
+X ~ 5 -550 -150 200 R 50 50 1 1 P
+X ~ 6 -550 -300 200 R 50 50 1 1 P I
+X GND 7 -550 -450 200 R 50 50 1 1 P
+X ~ 8 550 -450 200 L 50 50 1 1 P I
+X ~ 9 550 -300 200 L 50 50 1 1 P
+X ~ 10 550 -150 200 L 50 50 1 1 P I
+X ~ 11 550 0 200 L 50 50 1 1 P
+X ~ 12 550 150 200 L 50 50 1 1 P I
+X ~ 13 550 300 200 L 50 50 1 1 P
+X VCC 14 550 450 200 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# full_adder
+#
+DEF full_adder X 0 40 Y Y 1 F N
+F0 "X" 1400 700 60 H V C CNN
+F1 "full_adder" 1400 600 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S 800 1150 1950 0 0 1 0 N
+X IN1 1 600 950 200 R 50 50 1 1 I
+X IN2 2 600 550 200 R 50 50 1 1 I
+X CIN 3 600 150 200 R 50 50 1 1 I
+X SUM 4 2150 950 200 L 50 50 1 1 O
+X COUT 5 2150 150 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# full_sub
+#
+DEF full_sub X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "full_sub" 0 0 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -550 650 450 -600 0 1 0 N
+X A 1 -750 400 200 R 50 50 1 1 I
+X B 2 -750 200 200 R 50 50 1 1 I
+X BIN 3 -750 -200 200 R 50 50 1 1 I
+X DIFF 4 650 450 200 L 50 50 1 1 O
+X BORROW 5 650 150 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# half_adder
+#
+DEF half_adder X 0 40 Y Y 1 F N
+F0 "X" 900 500 60 H V C CNN
+F1 "half_adder" 900 400 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S 500 800 1250 0 0 1 0 N
+X IN1 1 300 700 200 R 50 50 1 1 I
+X IN2 2 300 100 200 R 50 50 1 1 I
+X SUM 3 1450 700 200 L 50 50 1 1 O
+X COUT 4 1450 100 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# half_sub
+#
+DEF half_sub X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "half_sub" 0 0 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -300 300 300 -300 0 1 0 N
+X A 1 -500 200 200 R 50 50 1 1 I
+X B 2 -500 -100 200 R 50 50 1 1 I
+X D 3 500 150 200 L 50 50 1 1 O
+X BORROW 4 500 -100 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# latch
+#
+DEF latch X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "latch" 0 200 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -150 100 150 -150 0 1 0 N
+X out 1 350 50 200 L 39 39 1 1 O
+X en 2 -350 50 200 R 39 39 1 1 I
+X data 3 -350 -100 200 R 39 39 1 1 I
+ENDDRAW
+ENDDEF
+#
+# lm_741
+#
+DEF lm_741 X 0 40 Y Y 1 F N
+F0 "X" -200 0 60 H V C CNN
+F1 "lm_741" -100 -250 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+P 4 0 1 0 -350 350 350 0 -350 -350 -350 350 N
+X off_null 1 -50 400 200 D 50 38 1 1 I
+X inv 2 -550 150 200 R 50 38 1 1 I
+X non_inv 3 -550 -100 200 R 50 38 1 1 I
+X v_neg 4 -150 -450 200 U 50 38 1 1 I
+X off_null 5 50 350 200 D 50 38 1 1 I
+X out 6 550 0 200 L 50 38 1 1 O
+X v_pos 7 -150 450 200 D 50 38 1 1 I
+X NC 8 150 -300 200 U 50 38 1 1 N
+ENDDRAW
+ENDDEF
+#
+# mm54hct147
+#
+DEF mm54hct147 X 0 40 Y Y 1 F N
+F0 "X" 200 250 39 H V C CNN
+F1 "mm54hct147" 200 150 39 H V C CNN
+F2 "" 200 250 60 H I C CNN
+F3 "" 200 250 60 H I C CNN
+DRAW
+S -50 -250 500 450 0 1 0 N
+X in10 1 -250 400 200 R 31 31 1 1 I
+X in6 2 -250 300 200 R 31 31 1 1 I
+X in8 3 -250 200 200 R 31 31 1 1 I
+X in2 4 -250 100 200 R 31 31 1 1 I
+X in5 5 -250 0 200 R 31 31 1 1 I
+X in7 6 -250 -100 200 R 31 31 1 1 I
+X in1 7 -250 -200 200 R 31 31 1 1 I
+X in4 8 700 400 200 L 31 31 1 1 I
+X in3 9 700 300 200 L 31 31 1 1 I
+X d 10 700 200 200 L 31 31 1 1 O
+X a 11 700 100 200 L 31 31 1 1 O
+X b 12 700 0 200 L 31 31 1 1 O
+X c 13 700 -100 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# mm54hct1472
+#
+DEF mm54hct1472 X 0 40 Y Y 1 F N
+F0 "X" 0 50 20 H V C CNN
+F1 "mm54hct1472" 0 100 20 H V C CNN
+F2 "" 0 50 60 H I C CNN
+F3 "" 0 50 60 H I C CNN
+DRAW
+S -250 200 -250 200 0 1 0 N
+S 150 -150 -200 250 0 1 0 N
+X in4 1 -400 200 200 R 20 20 1 1 I
+X in5 2 -400 150 200 R 20 20 1 1 I
+X in7 3 -400 100 200 R 20 20 1 1 I
+X in9 4 -400 50 200 R 20 20 1 1 I
+X in8 5 -400 0 200 R 20 20 1 1 I
+X in3 6 -400 -50 200 R 20 20 1 1 I
+X in6 7 -400 -100 200 R 20 20 1 1 I
+X in2 8 350 200 200 L 20 20 1 1 I
+X in1 9 350 150 200 L 20 20 1 1 I
+X d 10 350 50 200 L 20 20 1 1 O
+X c 11 350 0 200 L 20 20 1 1 O
+X a 12 350 -100 200 L 20 20 1 1 O
+X b 13 350 -50 200 L 20 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# mux4
+#
+DEF mux4 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "mux4" 0 250 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 150 150 -200 0 1 0 N
+X S0 1 -400 100 200 R 20 20 1 1 I
+X S1 2 -400 50 200 R 20 20 1 1 I
+X I1 3 -400 -50 200 R 20 20 1 1 I
+X I2 4 -400 -100 200 R 20 20 1 1 I
+X I3 5 -400 -150 200 R 20 20 1 1 I
+X I0 6 -400 0 200 R 20 20 1 1 I
+X Y 7 350 0 200 L 20 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# nand3
+#
+DEF nand3 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "nand3" 0 100 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+A 100 50 206 760 -760 0 1 0 N 150 250 150 -150
+A 325 50 25 1 1799 0 1 0 N 350 50 300 50
+A 325 50 25 -1799 -1 0 1 0 N 300 50 350 50
+P 2 0 1 0 -300 250 100 250 N
+P 2 0 1 0 100 250 150 250 N
+P 3 0 1 0 -300 250 -300 -150 150 -150 N
+X A 1 -500 150 200 R 31 31 1 1 I
+X B 2 -500 50 200 R 31 31 1 1 I
+X C 3 -500 -100 200 R 31 31 1 1 I
+X OUT 4 550 50 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# nand4
+#
+DEF nand4 X 0 40 Y Y 1 F N
+F0 "X" 550 0 31 H V C CNN
+F1 "nand4" 550 50 28 H V C CNN
+F2 "" 550 0 60 H I C CNN
+F3 "" 550 0 60 H I C CNN
+DRAW
+A 600 25 75 -899 899 0 1 0 N 600 -50 600 100
+A 700 25 25 901 -901 0 1 0 N 700 50 700 0
+A 700 25 25 -899 899 0 1 0 N 700 0 700 50
+A 850 -50 0 900 900 0 1 0 N 850 -50 850 -50
+P 2 0 1 0 400 100 600 100 N
+P 3 0 1 0 400 100 400 -50 600 -50 N
+X a 1 200 100 200 R 31 31 1 1 I
+X b 2 200 50 200 R 31 31 1 1 I
+X c 3 200 0 200 R 31 31 1 1 I
+X d 4 200 -50 200 R 31 31 1 1 I
+X out 5 900 50 200 L 31 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# nor_4
+#
+DEF nor_4 X 0 40 Y Y 1 F N
+F0 "X" 500 0 31 H V C CNN
+F1 "nor_4" 500 50 31 H V C CNN
+F2 "" 500 0 60 H I C CNN
+F3 "" 500 0 60 H I C CNN
+DRAW
+A 100 0 250 369 -369 0 1 0 N 300 150 300 -150
+C 700 0 50 0 1 0 N
+P 7 0 1 0 300 150 400 150 550 100 650 0 550 -100 400 -150 300 -150 N
+X IN1 1 150 100 200 R 20 20 1 1 I
+X IN2 2 150 50 200 R 20 20 1 1 I
+X IN3 3 150 -50 200 R 20 20 1 1 I
+X IN4 4 150 -100 200 R 20 20 1 1 I
+X OUT 5 950 0 200 L 20 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# sn5472
+#
+DEF sn5472 X 0 40 Y Y 1 F N
+F0 "X" 0 0 39 H V C CNN
+F1 "sn5472" 0 250 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 150 150 -250 0 1 0 N
+X j1 1 -400 100 200 R 31 31 1 1 I
+X j2 2 -400 50 200 R 31 31 1 1 I
+X j3 3 -400 0 200 R 31 31 1 1 I
+X q 4 -400 -50 200 R 31 31 1 1 O
+X clr 5 -400 -100 200 R 31 31 1 1 I
+X vcc 6 -400 -150 200 R 31 31 1 1 I
+X gnd 7 350 100 200 L 31 31 1 1 I
+X clk 8 350 50 200 L 31 31 1 1 I
+X q_bar 9 350 0 200 L 20 20 1 1 O
+X preset 10 350 -50 200 L 20 20 1 1 I
+X k1 11 350 -100 200 L 31 31 1 1 I
+X k2 12 350 -150 200 L 31 31 1 1 I
+X k3 13 350 -200 200 L 31 31 1 1 I
+ENDDRAW
+ENDDEF
+#
+# sn54als29827
+#
+DEF sn54als29827 X 0 40 Y Y 1 F N
+F0 "X" 0 0 39 H V C CNN
+F1 "sn54als29827" 0 100 20 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 250 200 -450 0 1 0 N
+X g1 1 -400 200 200 R 31 31 1 1 I
+X g2 2 -400 150 200 R 31 31 1 1 I
+X a1 3 -400 100 200 R 31 31 1 1 I
+X a2 4 -400 50 200 R 31 31 1 1 I
+X a7 5 -400 0 200 R 31 31 1 1 I
+X a3 6 -400 -50 200 R 31 31 1 1 I
+X a4 7 -400 -100 200 R 31 31 1 1 I
+X a6 8 -400 -150 200 R 31 31 1 1 I
+X a8 9 -400 -200 200 R 31 31 1 1 I
+X a5 10 -400 -250 200 R 31 31 1 1 I
+X y10 20 400 -150 200 L 31 31 1 1 O
+X a9 11 -400 -300 200 R 31 31 1 1 I
+X y9 21 400 -200 200 L 31 31 1 1 O
+X a10 12 -400 -350 200 R 31 31 1 1 I
+X y4 22 400 -250 200 L 31 31 1 1 O
+X y1 13 400 200 200 L 31 31 1 1 O
+X y2 14 400 150 200 L 31 31 1 1 O
+X y6 15 400 100 200 L 31 31 1 1 O
+X y3 16 400 50 200 L 31 31 1 1 O
+X y5 17 400 0 200 L 31 31 1 1 O
+X y7 18 400 -50 200 L 31 31 1 1 O
+X y8 19 400 -100 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# sn54als646
+#
+DEF sn54als646 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "sn54als646" 0 350 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -250 250 250 -100 0 1 0 N
+X CAB 1 -450 200 200 R 31 31 1 1 I
+X DIR 2 -450 150 200 R 31 31 1 1 I
+X CBA 3 -450 100 200 R 31 31 1 1 I
+X A1 4 -450 50 200 R 31 31 1 1 B
+X OE 5 -450 0 200 R 31 31 1 1 I
+X SBA 6 -450 -50 200 R 31 31 1 1 I
+X SAB 7 450 200 200 L 31 31 1 1 I
+X B 8 450 100 200 L 31 31 1 1 B
+ENDDRAW
+ENDDEF
+#
+# tristate_buffer
+#
+DEF tristate_buffer X 0 40 Y Y 1 F N
+F0 "X" 550 -50 60 H V C CNN
+F1 "tristate_buffer" 500 200 60 H V C CNN
+F2 "" 550 -50 60 H I C CNN
+F3 "" 550 -50 60 H I C CNN
+DRAW
+P 2 0 1 0 450 -200 800 0 N
+P 2 0 1 0 450 100 450 -200 N
+P 2 0 1 0 450 100 450 100 N
+P 2 0 1 0 450 100 450 100 N
+P 2 0 1 0 450 150 450 100 N
+P 2 0 1 0 800 0 450 150 N
+X data_in 1 250 0 200 R 20 20 1 1 I
+X en 2 550 -350 200 U 20 20 1 1 I
+X out 3 1000 0 200 L 20 20 1 1 O
+X vcc 4 250 -100 200 R 20 20 1 1 I
+X gnd 5 650 -300 200 U 20 20 1 1 I
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/analysis b/library/SubcircuitLibrary/bidirectional_shift_reg/analysis
new file mode 100644
index 00000000..ebd5c0a9
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/analysis
@@ -0,0 +1 @@
+.tran 0e-00 0e-00 0e-00 \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg-cache.lib b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg-cache.lib
new file mode 100644
index 00000000..9b94491a
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg-cache.lib
@@ -0,0 +1,79 @@
+EESchema-LIBRARY Version 2.3
+#encoding utf-8
+#
+# PORT
+#
+DEF PORT U 0 40 Y Y 26 F N
+F0 "U" 50 100 30 H V C CNN
+F1 "PORT" 0 0 30 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 325 225 285 -1421 -1278 0 1 0 N 100 50 150 0
+A 376 -275 356 1294 1408 0 1 0 N 150 0 100 -50
+S -100 50 100 -50 0 1 0 N
+X ~ 1 250 0 100 L 30 30 1 1 B
+X ~ 2 250 0 100 L 30 30 2 1 B
+X ~ 3 250 0 100 L 30 30 3 1 B
+X ~ 4 250 0 100 L 30 30 4 1 B
+X ~ 5 250 0 100 L 30 30 5 1 B
+X ~ 6 250 0 100 L 30 30 6 1 B
+X ~ 7 250 0 100 L 30 30 7 1 B
+X ~ 8 250 0 100 L 30 30 8 1 B
+X ~ 9 250 0 100 L 30 30 9 1 B
+X ~ 10 250 0 100 L 30 30 10 1 B
+X ~ 11 250 0 100 L 30 30 11 1 B
+X ~ 12 250 0 100 L 30 30 12 1 B
+X ~ 13 250 0 100 L 30 30 13 1 B
+X ~ 14 250 0 100 L 30 30 14 1 B
+X ~ 15 250 0 100 L 30 30 15 1 B
+X ~ 16 250 0 100 L 30 30 16 1 B
+X ~ 17 250 0 100 L 30 30 17 1 B
+X ~ 18 250 0 100 L 30 30 18 1 B
+X ~ 19 250 0 100 L 30 30 19 1 B
+X ~ 20 250 0 100 L 30 30 20 1 B
+X ~ 21 250 0 100 L 30 30 21 1 B
+X ~ 22 250 0 100 L 30 30 22 1 B
+X ~ 23 250 0 100 L 30 30 23 1 B
+X ~ 24 250 0 100 L 30 30 24 1 B
+X ~ 25 250 0 100 L 30 30 25 1 B
+X ~ 26 250 0 100 L 30 30 26 1 B
+ENDDRAW
+ENDDEF
+#
+# dff_rst
+#
+DEF dff_rst U 0 40 Y Y 1 F N
+F0 "U" 2850 1800 60 H V C CNN
+F1 "dff_rst" 2850 2000 60 H V C CNN
+F2 "" 2850 1950 60 H V C CNN
+F3 "" 2850 1950 60 H V C CNN
+DRAW
+S 2350 2100 3350 1500 0 1 0 N
+X d0 1 2150 1900 200 R 50 50 1 1 I
+X clk0 2 2150 1800 200 R 50 50 1 1 I
+X rst0 3 2150 1700 200 R 50 50 1 1 I
+X q0 4 3550 1900 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# mux4
+#
+DEF mux4 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "mux4" 0 250 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 150 150 -200 0 1 0 N
+X S0 1 -400 100 200 R 20 20 1 1 I
+X S1 2 -400 50 200 R 20 20 1 1 I
+X I1 3 -400 -50 200 R 20 20 1 1 I
+X I2 4 -400 -100 200 R 20 20 1 1 I
+X I3 5 -400 -150 200 R 20 20 1 1 I
+X I0 6 -400 0 200 R 20 20 1 1 I
+X Y 7 350 0 200 L 20 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir
new file mode 100644
index 00000000..fe249e44
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir
@@ -0,0 +1,19 @@
+* C:\FOSSEE\eSim\library\SubcircuitLibrary\bidirectional_shift_reg\bidirectional_shift_reg.cir
+
+* EESchema Netlist Version 1.1 (Spice format) creation date: 06/02/25 13:59:38
+
+* To exclude a component from the Spice Netlist add [Spice_Netlist_Enabled] user FIELD set to: N
+* To reorder the component spice node sequence add [Spice_Node_Sequence] user FIELD and define sequence: 2,1,0
+
+* Sheet Name: /
+U1 Net-_U1-Pad1_ Net-_U1-Pad2_ Net-_U1-Pad3_ Net-_U1-Pad4_ Net-_U1-Pad5_ Net-_U1-Pad6_ Net-_U1-Pad7_ Net-_U1-Pad8_ Net-_U1-Pad9_ Net-_U1-Pad10_ Net-_U1-Pad11_ Net-_U1-Pad12_ Net-_U1-Pad13_ Net-_U1-Pad14_ PORT
+U2 Net-_U2-Pad1_ Net-_U1-Pad1_ Net-_U1-Pad8_ Net-_U1-Pad14_ dff_rst
+U5 Net-_U5-Pad1_ Net-_U1-Pad1_ Net-_U1-Pad8_ Net-_U1-Pad13_ dff_rst
+U6 Net-_U6-Pad1_ Net-_U1-Pad1_ Net-_U1-Pad8_ Net-_U1-Pad12_ dff_rst
+U8 Net-_U8-Pad1_ Net-_U1-Pad1_ Net-_U1-Pad8_ Net-_U1-Pad11_ dff_rst
+X4 Net-_U1-Pad10_ Net-_U1-Pad9_ Net-_U1-Pad12_ Net-_U1-Pad7_ Net-_U1-Pad2_ Net-_U1-Pad11_ Net-_U8-Pad1_ mux4
+X3 Net-_U1-Pad10_ Net-_U1-Pad9_ Net-_U1-Pad13_ Net-_U1-Pad11_ Net-_U1-Pad4_ Net-_U1-Pad12_ Net-_U6-Pad1_ mux4
+X2 Net-_U1-Pad10_ Net-_U1-Pad9_ Net-_U1-Pad14_ Net-_U1-Pad12_ Net-_U1-Pad5_ Net-_U1-Pad13_ Net-_U5-Pad1_ mux4
+X1 Net-_U1-Pad10_ Net-_U1-Pad9_ Net-_U1-Pad3_ Net-_U1-Pad13_ Net-_U1-Pad6_ Net-_U1-Pad14_ Net-_U2-Pad1_ mux4
+
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir.out b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir.out
new file mode 100644
index 00000000..5b93860a
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.cir.out
@@ -0,0 +1,33 @@
+* c:\fossee\esim\library\subcircuitlibrary\bidirectional_shift_reg\bidirectional_shift_reg.cir
+
+.include mux4.sub
+* u1 net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_ net-_u1-pad5_ net-_u1-pad6_ net-_u1-pad7_ net-_u1-pad8_ net-_u1-pad9_ net-_u1-pad10_ net-_u1-pad11_ net-_u1-pad12_ net-_u1-pad13_ net-_u1-pad14_ port
+* u2 net-_u2-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad14_ dff_rst
+* u5 net-_u5-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad13_ dff_rst
+* u6 net-_u6-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad12_ dff_rst
+* u8 net-_u8-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad11_ dff_rst
+x4 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad12_ net-_u1-pad7_ net-_u1-pad2_ net-_u1-pad11_ net-_u8-pad1_ mux4
+x3 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad13_ net-_u1-pad11_ net-_u1-pad4_ net-_u1-pad12_ net-_u6-pad1_ mux4
+x2 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad14_ net-_u1-pad12_ net-_u1-pad5_ net-_u1-pad13_ net-_u5-pad1_ mux4
+x1 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad3_ net-_u1-pad13_ net-_u1-pad6_ net-_u1-pad14_ net-_u2-pad1_ mux4
+a1 [net-_u2-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad14_ ] u2
+a2 [net-_u5-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad13_ ] u5
+a3 [net-_u6-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad12_ ] u6
+a4 [net-_u8-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad11_ ] u8
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u2 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u5 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u6 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u8 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+.tran 0e-00 0e-00 0e-00
+
+* Control Statements
+.control
+run
+print allv > plot_data_v.txt
+print alli > plot_data_i.txt
+.endc
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.pro b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.pro
new file mode 100644
index 00000000..e27a398b
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.pro
@@ -0,0 +1,73 @@
+update=22/05/2015 07:44:53
+version=1
+last_client=kicad
+[general]
+version=1
+RootSch=
+BoardNm=
+[pcbnew]
+version=1
+LastNetListRead=
+UseCmpFile=1
+PadDrill=0.600000000000
+PadDrillOvalY=0.600000000000
+PadSizeH=1.500000000000
+PadSizeV=1.500000000000
+PcbTextSizeV=1.500000000000
+PcbTextSizeH=1.500000000000
+PcbTextThickness=0.300000000000
+ModuleTextSizeV=1.000000000000
+ModuleTextSizeH=1.000000000000
+ModuleTextSizeThickness=0.150000000000
+SolderMaskClearance=0.000000000000
+SolderMaskMinWidth=0.000000000000
+DrawSegmentWidth=0.200000000000
+BoardOutlineThickness=0.100000000000
+ModuleOutlineThickness=0.150000000000
+[cvpcb]
+version=1
+NetIExt=net
+[eeschema]
+version=1
+LibDir=
+[eeschema/libraries]
+LibName1=adc-dac
+LibName2=memory
+LibName3=xilinx
+LibName4=microcontrollers
+LibName5=dsp
+LibName6=microchip
+LibName7=analog_switches
+LibName8=motorola
+LibName9=texas
+LibName10=intel
+LibName11=audio
+LibName12=interface
+LibName13=digital-audio
+LibName14=philips
+LibName15=display
+LibName16=cypress
+LibName17=siliconi
+LibName18=opto
+LibName19=atmel
+LibName20=contrib
+LibName21=power
+LibName22=eSim_Plot
+LibName23=transistors
+LibName24=conn
+LibName25=eSim_User
+LibName26=regul
+LibName27=74xx
+LibName28=cmos4000
+LibName29=eSim_Analog
+LibName30=eSim_Devices
+LibName31=eSim_Digital
+LibName32=eSim_Hybrid
+LibName33=eSim_Miscellaneous
+LibName34=eSim_Power
+LibName35=eSim_Sources
+LibName36=eSim_Subckt
+LibName37=eSim_Nghdl
+LibName38=eSim_Ngveri
+LibName39=eSim_SKY130
+LibName40=eSim_SKY130_Subckts
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sch b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sch
new file mode 100644
index 00000000..f25237b2
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sch
@@ -0,0 +1,465 @@
+EESchema Schematic File Version 2
+LIBS:adc-dac
+LIBS:memory
+LIBS:xilinx
+LIBS:microcontrollers
+LIBS:dsp
+LIBS:microchip
+LIBS:analog_switches
+LIBS:motorola
+LIBS:texas
+LIBS:intel
+LIBS:audio
+LIBS:interface
+LIBS:digital-audio
+LIBS:philips
+LIBS:display
+LIBS:cypress
+LIBS:siliconi
+LIBS:opto
+LIBS:atmel
+LIBS:contrib
+LIBS:power
+LIBS:eSim_Plot
+LIBS:transistors
+LIBS:conn
+LIBS:eSim_User
+LIBS:regul
+LIBS:74xx
+LIBS:cmos4000
+LIBS:eSim_Analog
+LIBS:eSim_Devices
+LIBS:eSim_Digital
+LIBS:eSim_Hybrid
+LIBS:eSim_Miscellaneous
+LIBS:eSim_Power
+LIBS:eSim_Sources
+LIBS:eSim_Subckt
+LIBS:eSim_Nghdl
+LIBS:eSim_Ngveri
+LIBS:eSim_SKY130
+LIBS:eSim_SKY130_Subckts
+LIBS:bidirectional_shift_reg-cache
+EELAYER 25 0
+EELAYER END
+$Descr A4 11693 8268
+encoding utf-8
+Sheet 1 1
+Title ""
+Date ""
+Rev ""
+Comp ""
+Comment1 ""
+Comment2 ""
+Comment3 ""
+Comment4 ""
+$EndDescr
+$Comp
+L PORT U1
+U 11 1 6838DF0F
+P 7950 1200
+F 0 "U1" H 8000 1300 30 0000 C CNN
+F 1 "PORT" H 7950 1200 30 0000 C CNN
+F 2 "" H 7950 1200 60 0000 C CNN
+F 3 "" H 7950 1200 60 0000 C CNN
+ 11 7950 1200
+ 0 1 1 0
+$EndComp
+$Comp
+L PORT U1
+U 12 1 6838DFE9
+P 6300 1250
+F 0 "U1" H 6350 1350 30 0000 C CNN
+F 1 "PORT" H 6300 1250 30 0000 C CNN
+F 2 "" H 6300 1250 60 0000 C CNN
+F 3 "" H 6300 1250 60 0000 C CNN
+ 12 6300 1250
+ 0 1 1 0
+$EndComp
+$Comp
+L PORT U1
+U 13 1 6838E197
+P 5300 1300
+F 0 "U1" H 5350 1400 30 0000 C CNN
+F 1 "PORT" H 5300 1300 30 0000 C CNN
+F 2 "" H 5300 1300 60 0000 C CNN
+F 3 "" H 5300 1300 60 0000 C CNN
+ 13 5300 1300
+ 0 1 1 0
+$EndComp
+$Comp
+L PORT U1
+U 1 1 6838E340
+P 8700 3750
+F 0 "U1" H 8750 3850 30 0000 C CNN
+F 1 "PORT" H 8700 3750 30 0000 C CNN
+F 2 "" H 8700 3750 60 0000 C CNN
+F 3 "" H 8700 3750 60 0000 C CNN
+ 1 8700 3750
+ -1 0 0 1
+$EndComp
+$Comp
+L PORT U1
+U 3 1 6838E39F
+P 2850 6500
+F 0 "U1" H 2900 6600 30 0000 C CNN
+F 1 "PORT" H 2850 6500 30 0000 C CNN
+F 2 "" H 2850 6500 60 0000 C CNN
+F 3 "" H 2850 6500 60 0000 C CNN
+ 3 2850 6500
+ 0 -1 -1 0
+$EndComp
+$Comp
+L PORT U1
+U 4 1 6838E8B6
+P 6550 6500
+F 0 "U1" H 6600 6600 30 0000 C CNN
+F 1 "PORT" H 6550 6500 30 0000 C CNN
+F 2 "" H 6550 6500 60 0000 C CNN
+F 3 "" H 6550 6500 60 0000 C CNN
+ 4 6550 6500
+ 0 -1 -1 0
+$EndComp
+$Comp
+L PORT U1
+U 7 1 6838E949
+P 7950 6400
+F 0 "U1" H 8000 6500 30 0000 C CNN
+F 1 "PORT" H 7950 6400 30 0000 C CNN
+F 2 "" H 7950 6400 60 0000 C CNN
+F 3 "" H 7950 6400 60 0000 C CNN
+ 7 7950 6400
+ 0 -1 -1 0
+$EndComp
+$Comp
+L PORT U1
+U 9 1 6838E986
+P 1850 5900
+F 0 "U1" H 1900 6000 30 0000 C CNN
+F 1 "PORT" H 1850 5900 30 0000 C CNN
+F 2 "" H 1850 5900 60 0000 C CNN
+F 3 "" H 1850 5900 60 0000 C CNN
+ 9 1850 5900
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 10 1 6838EA3D
+P 1850 5700
+F 0 "U1" H 1900 5800 30 0000 C CNN
+F 1 "PORT" H 1850 5700 30 0000 C CNN
+F 2 "" H 1850 5700 60 0000 C CNN
+F 3 "" H 1850 5700 60 0000 C CNN
+ 10 1850 5700
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 8 1 6838F089
+P 8750 4050
+F 0 "U1" H 8800 4150 30 0000 C CNN
+F 1 "PORT" H 8750 4050 30 0000 C CNN
+F 2 "" H 8750 4050 60 0000 C CNN
+F 3 "" H 8750 4050 60 0000 C CNN
+ 8 8750 4050
+ -1 0 0 1
+$EndComp
+$Comp
+L PORT U1
+U 6 1 6838F13A
+P 2950 6550
+F 0 "U1" H 3000 6650 30 0000 C CNN
+F 1 "PORT" H 2950 6550 30 0000 C CNN
+F 2 "" H 2950 6550 60 0000 C CNN
+F 3 "" H 2950 6550 60 0000 C CNN
+ 6 2950 6550
+ 0 -1 -1 0
+$EndComp
+$Comp
+L PORT U1
+U 5 1 6838F18C
+P 4900 6600
+F 0 "U1" H 4950 6700 30 0000 C CNN
+F 1 "PORT" H 4900 6600 30 0000 C CNN
+F 2 "" H 4900 6600 60 0000 C CNN
+F 3 "" H 4900 6600 60 0000 C CNN
+ 5 4900 6600
+ 0 -1 -1 0
+$EndComp
+$Comp
+L PORT U1
+U 2 1 6838F1D5
+P 8100 6400
+F 0 "U1" H 8150 6500 30 0000 C CNN
+F 1 "PORT" H 8100 6400 30 0000 C CNN
+F 2 "" H 8100 6400 60 0000 C CNN
+F 3 "" H 8100 6400 60 0000 C CNN
+ 2 8100 6400
+ 0 -1 -1 0
+$EndComp
+$Comp
+L dff_rst U2
+U 1 1 68391C00
+P 4700 5650
+F 0 "U2" H 7550 7450 60 0000 C CNN
+F 1 "dff_rst" H 7550 7650 60 0000 C CNN
+F 2 "" H 7550 7600 60 0000 C CNN
+F 3 "" H 7550 7600 60 0000 C CNN
+ 1 4700 5650
+ 0 -1 -1 0
+$EndComp
+$Comp
+L dff_rst U5
+U 1 1 68391E83
+P 6750 5700
+F 0 "U5" H 9600 7500 60 0000 C CNN
+F 1 "dff_rst" H 9600 7700 60 0000 C CNN
+F 2 "" H 9600 7650 60 0000 C CNN
+F 3 "" H 9600 7650 60 0000 C CNN
+ 1 6750 5700
+ 0 -1 -1 0
+$EndComp
+$Comp
+L dff_rst U6
+U 1 1 683927BD
+P 8200 5650
+F 0 "U6" H 11050 7450 60 0000 C CNN
+F 1 "dff_rst" H 11050 7650 60 0000 C CNN
+F 2 "" H 11050 7600 60 0000 C CNN
+F 3 "" H 11050 7600 60 0000 C CNN
+ 1 8200 5650
+ 0 -1 -1 0
+$EndComp
+$Comp
+L dff_rst U8
+U 1 1 68392BEA
+P 9850 5650
+F 0 "U8" H 12700 7450 60 0000 C CNN
+F 1 "dff_rst" H 12700 7650 60 0000 C CNN
+F 2 "" H 12700 7600 60 0000 C CNN
+F 3 "" H 12700 7600 60 0000 C CNN
+ 1 9850 5650
+ 0 -1 -1 0
+$EndComp
+$Comp
+L PORT U1
+U 14 1 68394E39
+P 3400 1350
+F 0 "U1" H 3450 1450 30 0000 C CNN
+F 1 "PORT" H 3400 1350 30 0000 C CNN
+F 2 "" H 3400 1350 60 0000 C CNN
+F 3 "" H 3400 1350 60 0000 C CNN
+ 14 3400 1350
+ -1 0 0 1
+$EndComp
+$Comp
+L mux4 X4
+U 1 1 683D89B3
+P 7950 5150
+F 0 "X4" H 7950 5150 60 0000 C CNN
+F 1 "mux4" H 7950 5400 60 0000 C CNN
+F 2 "" H 7950 5150 60 0001 C CNN
+F 3 "" H 7950 5150 60 0001 C CNN
+ 1 7950 5150
+ 0 -1 -1 0
+$EndComp
+$Comp
+L mux4 X3
+U 1 1 683DE888
+P 6400 5200
+F 0 "X3" H 6400 5200 60 0000 C CNN
+F 1 "mux4" H 6400 5450 60 0000 C CNN
+F 2 "" H 6400 5200 60 0001 C CNN
+F 3 "" H 6400 5200 60 0001 C CNN
+ 1 6400 5200
+ 0 -1 -1 0
+$EndComp
+$Comp
+L mux4 X2
+U 1 1 683DEB72
+P 4750 5250
+F 0 "X2" H 4750 5250 60 0000 C CNN
+F 1 "mux4" H 4750 5500 60 0000 C CNN
+F 2 "" H 4750 5250 60 0001 C CNN
+F 3 "" H 4750 5250 60 0001 C CNN
+ 1 4750 5250
+ 0 -1 -1 0
+$EndComp
+$Comp
+L mux4 X1
+U 1 1 683DED22
+P 2800 5100
+F 0 "X1" H 2800 5100 60 0000 C CNN
+F 1 "mux4" H 2800 5350 60 0000 C CNN
+F 2 "" H 2800 5100 60 0001 C CNN
+F 3 "" H 2800 5100 60 0001 C CNN
+ 1 2800 5100
+ 0 -1 -1 0
+$EndComp
+Wire Wire Line
+ 7950 1450 7950 2100
+Wire Wire Line
+ 7950 3500 7950 4800
+Wire Wire Line
+ 6300 3500 6300 4200
+Wire Wire Line
+ 4850 3550 4850 4250
+Wire Wire Line
+ 4850 4250 4750 4250
+Wire Wire Line
+ 2800 3500 2800 4750
+Wire Wire Line
+ 9850 1850 7950 1850
+Connection ~ 7950 1850
+Wire Wire Line
+ 6300 1500 6300 2100
+Wire Wire Line
+ 7300 1800 6300 1800
+Connection ~ 6300 1800
+Wire Wire Line
+ 4850 1550 4850 2150
+Wire Wire Line
+ 5850 1800 4850 1800
+Connection ~ 4850 1800
+Wire Wire Line
+ 2800 1350 2800 2100
+Wire Wire Line
+ 2900 3500 2900 3750
+Wire Wire Line
+ 2900 3750 8450 3750
+Wire Wire Line
+ 8050 3500 8050 3750
+Connection ~ 8050 3750
+Wire Wire Line
+ 6400 3500 6400 3750
+Connection ~ 6400 3750
+Wire Wire Line
+ 4950 3550 4950 3750
+Connection ~ 4950 3750
+Wire Wire Line
+ 3000 3500 3000 4050
+Wire Wire Line
+ 3000 4050 8500 4050
+Wire Wire Line
+ 5050 3550 5050 4050
+Connection ~ 5050 4050
+Wire Wire Line
+ 6500 3500 6500 4050
+Connection ~ 6500 4050
+Wire Wire Line
+ 8150 3500 8150 4050
+Connection ~ 8150 4050
+Wire Wire Line
+ 4850 1550 5300 1550
+Wire Wire Line
+ 3150 1350 2800 1350
+Wire Wire Line
+ 8050 5550 8050 6150
+Wire Wire Line
+ 4750 4250 4750 4900
+Wire Wire Line
+ 6400 4850 6400 4200
+Wire Wire Line
+ 6400 4200 6300 4200
+Wire Wire Line
+ 2100 5700 7850 5700
+Wire Wire Line
+ 7850 5700 7850 5550
+Wire Wire Line
+ 6300 5600 6300 5700
+Connection ~ 6300 5700
+Wire Wire Line
+ 4650 5650 4650 5700
+Connection ~ 4650 5700
+Wire Wire Line
+ 2700 5500 2700 5700
+Connection ~ 2700 5700
+Wire Wire Line
+ 2100 5900 7900 5900
+Wire Wire Line
+ 7900 5900 7900 5550
+Wire Wire Line
+ 6350 5600 6350 5900
+Connection ~ 6350 5900
+Wire Wire Line
+ 4700 5650 4700 5900
+Connection ~ 4700 5900
+Wire Wire Line
+ 2750 5500 2750 5900
+Connection ~ 2750 5900
+Wire Wire Line
+ 5850 1800 5850 5800
+Wire Wire Line
+ 5850 5800 4750 5800
+Wire Wire Line
+ 7300 5800 7300 1800
+Wire Wire Line
+ 6400 5800 7300 5800
+Wire Wire Line
+ 9850 1850 9850 5800
+Wire Wire Line
+ 9850 5800 7950 5800
+Connection ~ 2800 1800
+Wire Wire Line
+ 4100 1800 2800 1800
+Wire Wire Line
+ 4100 1800 4100 5800
+Wire Wire Line
+ 4100 5800 2800 5800
+Wire Wire Line
+ 2800 5800 2800 5500
+Wire Wire Line
+ 4750 5800 4750 5650
+Wire Wire Line
+ 6400 5800 6400 5600
+Wire Wire Line
+ 7950 5800 7950 5550
+Wire Wire Line
+ 8000 5550 8000 5750
+Wire Wire Line
+ 8000 5750 7300 5750
+Connection ~ 7300 5750
+Wire Wire Line
+ 4850 5650 4850 6050
+Wire Wire Line
+ 4850 6050 6900 6050
+Wire Wire Line
+ 6900 6050 6900 5800
+Connection ~ 6900 5800
+Wire Wire Line
+ 4800 5650 4800 6100
+Wire Wire Line
+ 4800 6100 3150 6100
+Wire Wire Line
+ 3150 6100 3150 5800
+Connection ~ 3150 5800
+Wire Wire Line
+ 2850 5500 2850 6250
+Wire Wire Line
+ 2900 5500 2900 6150
+Wire Wire Line
+ 2900 6150 6450 6150
+Wire Wire Line
+ 5150 6150 5150 5800
+Connection ~ 5150 5800
+Wire Wire Line
+ 2950 5500 2950 6300
+Wire Wire Line
+ 4900 5650 4900 6350
+Wire Wire Line
+ 6550 5600 6550 6250
+Wire Wire Line
+ 6500 5600 6500 6000
+Wire Wire Line
+ 6500 6000 8000 6000
+Wire Wire Line
+ 8000 6000 8000 5800
+Connection ~ 8000 5800
+Wire Wire Line
+ 6450 6150 6450 5600
+Connection ~ 5150 6150
+Wire Wire Line
+ 8100 5550 8100 6150
+Wire Wire Line
+ 8050 6150 7950 6150
+$EndSCHEMATC
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sub b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sub
new file mode 100644
index 00000000..b351b819
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg.sub
@@ -0,0 +1,27 @@
+* Subcircuit bidirectional_shift_reg
+.subckt bidirectional_shift_reg net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_ net-_u1-pad5_ net-_u1-pad6_ net-_u1-pad7_ net-_u1-pad8_ net-_u1-pad9_ net-_u1-pad10_ net-_u1-pad11_ net-_u1-pad12_ net-_u1-pad13_ net-_u1-pad14_
+* c:\fossee\esim\library\subcircuitlibrary\bidirectional_shift_reg\bidirectional_shift_reg.cir
+.include mux4.sub
+* u2 net-_u2-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad14_ dff_rst
+* u5 net-_u5-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad13_ dff_rst
+* u6 net-_u6-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad12_ dff_rst
+* u8 net-_u8-pad1_ net-_u1-pad1_ net-_u1-pad8_ net-_u1-pad11_ dff_rst
+x4 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad12_ net-_u1-pad7_ net-_u1-pad2_ net-_u1-pad11_ net-_u8-pad1_ mux4
+x3 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad13_ net-_u1-pad11_ net-_u1-pad4_ net-_u1-pad12_ net-_u6-pad1_ mux4
+x2 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad14_ net-_u1-pad12_ net-_u1-pad5_ net-_u1-pad13_ net-_u5-pad1_ mux4
+x1 net-_u1-pad10_ net-_u1-pad9_ net-_u1-pad3_ net-_u1-pad13_ net-_u1-pad6_ net-_u1-pad14_ net-_u2-pad1_ mux4
+a1 [net-_u2-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad14_ ] u2
+a2 [net-_u5-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad13_ ] u5
+a3 [net-_u6-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad12_ ] u6
+a4 [net-_u8-pad1_ ] [net-_u1-pad1_ ] [net-_u1-pad8_ ] [net-_u1-pad11_ ] u8
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u2 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u5 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u6 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+* Schematic Name: dff_rst, NgSpice Name: dff_rst
+.model u8 dff_rst(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 )
+* Control Statements
+
+.ends bidirectional_shift_reg \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg_Previous_Values.xml b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg_Previous_Values.xml
new file mode 100644
index 00000000..a33d5467
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/bidirectional_shift_reg_Previous_Values.xml
@@ -0,0 +1 @@
+<KicadtoNgspice><source /><model><u3 name="type">mux4to1<field1 name="Enter Rise Delay (default=1.0e-9)" /><field2 name="Enter Fall Delay (default=1.0e-9)" /><field3 name="Enter Input Load (default=1.0e-12)" /><field4 name="Enter Instance ID (Between 0-99)" /></u3><u4 name="type">mux4to1<field5 name="Enter Rise Delay (default=1.0e-9)" /><field6 name="Enter Fall Delay (default=1.0e-9)" /><field7 name="Enter Input Load (default=1.0e-12)" /><field8 name="Enter Instance ID (Between 0-99)" /></u4><u7 name="type">mux4to1<field9 name="Enter Rise Delay (default=1.0e-9)" /><field10 name="Enter Fall Delay (default=1.0e-9)" /><field11 name="Enter Input Load (default=1.0e-12)" /><field12 name="Enter Instance ID (Between 0-99)" /></u7><u9 name="type">mux4to1<field13 name="Enter Rise Delay (default=1.0e-9)" /><field14 name="Enter Fall Delay (default=1.0e-9)" /><field15 name="Enter Input Load (default=1.0e-12)" /><field16 name="Enter Instance ID (Between 0-99)" /></u9><u2 name="type">dff_rst<field17 name="Enter Rise Delay (default=1.0e-9)" /><field18 name="Enter Fall Delay (default=1.0e-9)" /><field19 name="Enter Input Load (default=1.0e-12)" /><field20 name="Enter Instance ID (Between 0-99)" /></u2><u5 name="type">dff_rst<field21 name="Enter Rise Delay (default=1.0e-9)" /><field22 name="Enter Fall Delay (default=1.0e-9)" /><field23 name="Enter Input Load (default=1.0e-12)" /><field24 name="Enter Instance ID (Between 0-99)" /></u5><u6 name="type">dff_rst<field25 name="Enter Rise Delay (default=1.0e-9)" /><field26 name="Enter Fall Delay (default=1.0e-9)" /><field27 name="Enter Input Load (default=1.0e-12)" /><field28 name="Enter Instance ID (Between 0-99)" /></u6><u8 name="type">dff_rst<field29 name="Enter Rise Delay (default=1.0e-9)" /><field30 name="Enter Fall Delay (default=1.0e-9)" /><field31 name="Enter Input Load (default=1.0e-12)" /><field32 name="Enter Instance ID (Between 0-99)" /></u8></model><devicemodel /><subcircuit><x4><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\mux4</field></x4><x3><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\mux4</field></x3><x2><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\mux4</field></x2><x1><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\mux4</field></x1></subcircuit><analysis><ac><field1 name="Lin">true</field1><field2 name="Dec">false</field2><field3 name="Oct">false</field3><field4 name="Start Frequency" /><field5 name="Stop Frequency" /><field6 name="No. of points" /><field7 name="Start Fre Combo">Hz</field7><field8 name="Stop Fre Combo">Hz</field8></ac><dc><field1 name="Source 1" /><field2 name="Start" /><field3 name="Increment" /><field4 name="Stop" /><field5 name="Operating Point">0</field5><field6 name="Start Combo">Volts or Amperes</field6><field7 name="Increment Combo">Volts or Amperes</field7><field8 name="Stop Combo">Volts or Amperes</field8><field9 name="Source 2" /><field10 name="Start" /><field11 name="Increment" /><field12 name="Stop" /><field13 name="Start Combo">Volts or Amperes</field13><field14 name="Increment Combo">Volts or Amperes</field14><field15 name="Stop Combo">Volts or Amperes</field15></dc><tran><field1 name="Start Time" /><field2 name="Step Time" /><field3 name="Stop Time" /><field4 name="Start Combo">sec</field4><field5 name="Step Combo">sec</field5><field6 name="Stop Combo">sec</field6></tran></analysis></KicadtoNgspice> \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/dff_rst.v b/library/SubcircuitLibrary/bidirectional_shift_reg/dff_rst.v
new file mode 100644
index 00000000..da896fa8
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/dff_rst.v
@@ -0,0 +1,12 @@
+module dff_rst(d,rst,clk,q);
+input d,clk,rst;
+output reg q;
+always @(posedge clk) begin
+if(rst) begin
+q<=1'b0;
+end
+else begin
+q<=d;
+end
+end
+endmodule \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4-cache.lib b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4-cache.lib
new file mode 100644
index 00000000..cba52382
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4-cache.lib
@@ -0,0 +1,97 @@
+EESchema-LIBRARY Version 2.3
+#encoding utf-8
+#
+# 3_and
+#
+DEF 3_and X 0 40 Y Y 1 F N
+F0 "X" 100 -50 60 H V C CNN
+F1 "3_and" 150 150 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 150 50 158 716 -716 0 1 0 N 200 200 200 -100
+P 2 0 1 0 -150 200 200 200 N
+P 3 0 1 0 -150 200 -150 -100 200 -100 N
+X in1 1 -350 150 200 R 50 50 1 1 I
+X in2 2 -350 50 200 R 50 50 1 1 I
+X in3 3 -350 -50 200 R 50 50 1 1 I
+X out 4 500 50 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 4_OR
+#
+DEF 4_OR X 0 40 Y Y 1 F N
+F0 "X" 150 -100 60 H V C CNN
+F1 "4_OR" 150 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A -800 0 650 226 -226 0 1 0 N -200 250 -200 -250
+A -73 134 444 -599 -176 0 1 0 N 150 -250 350 0
+A -30 -99 393 627 146 0 1 0 N 150 250 350 0
+P 2 0 1 0 -200 -250 150 -250 N
+P 2 0 1 0 -200 250 150 250 N
+X in1 1 -350 150 200 R 50 50 1 1 I
+X in2 2 -350 50 200 R 50 50 1 1 I
+X in3 3 -350 -50 200 R 50 50 1 1 I
+X in4 4 -350 -150 200 R 50 50 1 1 I
+X out 5 550 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# PORT
+#
+DEF PORT U 0 40 Y Y 26 F N
+F0 "U" 50 100 30 H V C CNN
+F1 "PORT" 0 0 30 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 325 225 285 -1421 -1278 0 1 0 N 100 50 150 0
+A 376 -275 356 1294 1408 0 1 0 N 150 0 100 -50
+S -100 50 100 -50 0 1 0 N
+X ~ 1 250 0 100 L 30 30 1 1 B
+X ~ 2 250 0 100 L 30 30 2 1 B
+X ~ 3 250 0 100 L 30 30 3 1 B
+X ~ 4 250 0 100 L 30 30 4 1 B
+X ~ 5 250 0 100 L 30 30 5 1 B
+X ~ 6 250 0 100 L 30 30 6 1 B
+X ~ 7 250 0 100 L 30 30 7 1 B
+X ~ 8 250 0 100 L 30 30 8 1 B
+X ~ 9 250 0 100 L 30 30 9 1 B
+X ~ 10 250 0 100 L 30 30 10 1 B
+X ~ 11 250 0 100 L 30 30 11 1 B
+X ~ 12 250 0 100 L 30 30 12 1 B
+X ~ 13 250 0 100 L 30 30 13 1 B
+X ~ 14 250 0 100 L 30 30 14 1 B
+X ~ 15 250 0 100 L 30 30 15 1 B
+X ~ 16 250 0 100 L 30 30 16 1 B
+X ~ 17 250 0 100 L 30 30 17 1 B
+X ~ 18 250 0 100 L 30 30 18 1 B
+X ~ 19 250 0 100 L 30 30 19 1 B
+X ~ 20 250 0 100 L 30 30 20 1 B
+X ~ 21 250 0 100 L 30 30 21 1 B
+X ~ 22 250 0 100 L 30 30 22 1 B
+X ~ 23 250 0 100 L 30 30 23 1 B
+X ~ 24 250 0 100 L 30 30 24 1 B
+X ~ 25 250 0 100 L 30 30 25 1 B
+X ~ 26 250 0 100 L 30 30 26 1 B
+ENDDRAW
+ENDDEF
+#
+# d_inverter
+#
+DEF d_inverter U 0 40 Y Y 1 F N
+F0 "U" 0 -100 60 H V C CNN
+F1 "d_inverter" 0 150 60 H V C CNN
+F2 "" 50 -50 60 H V C CNN
+F3 "" 50 -50 60 H V C CNN
+DRAW
+P 4 0 1 0 -100 50 -100 -50 100 0 -100 50 N
+X ~ 1 -300 0 200 R 50 50 1 1 I
+X ~ 2 300 0 200 L 50 50 1 1 O I
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.bck b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.bck
new file mode 100644
index 00000000..1980d0d1
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.bck
@@ -0,0 +1,7 @@
+EESchema-DOCLIB Version 2.0
+#
+$CMP SCR
+D Thyristor
+$ENDCMP
+#
+#End Doc Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir
new file mode 100644
index 00000000..6170ac40
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir
@@ -0,0 +1,18 @@
+* C:\FOSSEE\eSim\library\SubcircuitLibrary\mux4\mux4.cir
+
+* EESchema Netlist Version 1.1 (Spice format) creation date: 06/02/25 13:58:33
+
+* To exclude a component from the Spice Netlist add [Spice_Netlist_Enabled] user FIELD set to: N
+* To reorder the component spice node sequence add [Spice_Node_Sequence] user FIELD and define sequence: 2,1,0
+
+* Sheet Name: /
+U2 Net-_U1-Pad1_ Net-_U2-Pad2_ d_inverter
+U3 Net-_U1-Pad2_ Net-_U3-Pad2_ d_inverter
+X1 Net-_U2-Pad2_ Net-_U3-Pad2_ Net-_U1-Pad6_ Net-_X1-Pad4_ 3_and
+X2 Net-_U1-Pad1_ Net-_U3-Pad2_ Net-_U1-Pad3_ Net-_X2-Pad4_ 3_and
+X3 Net-_U2-Pad2_ Net-_U1-Pad2_ Net-_U1-Pad4_ Net-_X3-Pad4_ 3_and
+X4 Net-_U1-Pad2_ Net-_U1-Pad1_ Net-_U1-Pad5_ Net-_X4-Pad4_ 3_and
+X5 Net-_X1-Pad4_ Net-_X2-Pad4_ Net-_X3-Pad4_ Net-_X4-Pad4_ Net-_U1-Pad7_ 4_OR
+U1 Net-_U1-Pad1_ Net-_U1-Pad2_ Net-_U1-Pad3_ Net-_U1-Pad4_ Net-_U1-Pad5_ Net-_U1-Pad6_ Net-_U1-Pad7_ PORT
+
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir.out b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir.out
new file mode 100644
index 00000000..70f9fd61
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.cir.out
@@ -0,0 +1,27 @@
+* c:\fossee\esim\library\subcircuitlibrary\mux4\mux4.cir
+
+.include 3_and.sub
+.include 4_OR.sub
+* u2 net-_u1-pad1_ net-_u2-pad2_ d_inverter
+* u3 net-_u1-pad2_ net-_u3-pad2_ d_inverter
+x1 net-_u2-pad2_ net-_u3-pad2_ net-_u1-pad6_ net-_x1-pad4_ 3_and
+x2 net-_u1-pad1_ net-_u3-pad2_ net-_u1-pad3_ net-_x2-pad4_ 3_and
+x3 net-_u2-pad2_ net-_u1-pad2_ net-_u1-pad4_ net-_x3-pad4_ 3_and
+x4 net-_u1-pad2_ net-_u1-pad1_ net-_u1-pad5_ net-_x4-pad4_ 3_and
+x5 net-_x1-pad4_ net-_x2-pad4_ net-_x3-pad4_ net-_x4-pad4_ net-_u1-pad7_ 4_OR
+* u1 net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_ net-_u1-pad5_ net-_u1-pad6_ net-_u1-pad7_ port
+a1 net-_u1-pad1_ net-_u2-pad2_ u2
+a2 net-_u1-pad2_ net-_u3-pad2_ u3
+* Schematic Name: d_inverter, NgSpice Name: d_inverter
+.model u2 d_inverter(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 )
+* Schematic Name: d_inverter, NgSpice Name: d_inverter
+.model u3 d_inverter(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 )
+.tran 0e-00 0e-00 0e-00
+
+* Control Statements
+.control
+run
+print allv > plot_data_v.txt
+print alli > plot_data_i.txt
+.endc
+.end
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.dcm b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.dcm
new file mode 100644
index 00000000..1980d0d1
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.dcm
@@ -0,0 +1,7 @@
+EESchema-DOCLIB Version 2.0
+#
+$CMP SCR
+D Thyristor
+$ENDCMP
+#
+#End Doc Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.lib b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.lib
new file mode 100644
index 00000000..b52eb294
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.lib
@@ -0,0 +1,1120 @@
+EESchema-LIBRARY Version 2.3
+#encoding utf-8
+#
+# 10bitDAC
+#
+DEF 10bitDAC X 0 40 Y Y 1 F N
+F0 "X" 0 50 60 H V C CNN
+F1 "10bitDAC" -50 -50 60 H V C CNN
+F2 "" 0 50 60 H I C CNN
+F3 "" 0 50 60 H I C CNN
+DRAW
+S -500 500 400 -600 0 1 0 N
+X D0 1 -700 -500 200 R 50 50 1 1 I
+X D1 2 -700 -400 200 R 50 50 1 1 I
+X D2 3 -700 -300 200 R 50 50 1 1 I
+X D3 4 -700 -200 200 R 50 50 1 1 I
+X D4 5 -700 -100 200 R 50 50 1 1 I
+X D5 6 -700 0 200 R 50 50 1 1 I
+X D6 7 -700 100 200 R 50 50 1 1 I
+X D7 8 -700 200 200 R 50 50 1 1 I
+X D8 9 -700 300 200 R 50 50 1 1 I
+X D9 10 -700 400 200 R 50 50 1 1 I
+X AnalogOut 11 600 350 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 2BITMUL
+#
+DEF 2BITMUL X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "2BITMUL" 0 0 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -300 400 300 -400 0 1 0 N
+X A0 1 -500 300 200 R 50 50 1 1 I
+X A1 2 -500 150 200 R 50 50 1 1 I
+X B0 3 -500 -50 200 R 50 50 1 1 I
+X B1 4 -500 -250 200 R 50 50 1 1 I
+X M0 5 500 250 200 L 50 50 1 1 O
+X M1 6 500 100 200 L 50 50 1 1 O
+X M2 7 500 -50 200 L 50 50 1 1 O
+X M3 8 500 -250 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 3_and
+#
+DEF 3_and X 0 40 Y Y 1 F N
+F0 "X" 100 -50 60 H V C CNN
+F1 "3_and" 150 150 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 150 50 158 716 -716 0 1 0 N 200 200 200 -100
+P 2 0 1 0 -150 200 200 200 N
+P 3 0 1 0 -150 200 -150 -100 200 -100 N
+X in1 1 -350 150 200 R 50 50 1 1 I
+X in2 2 -350 50 200 R 50 50 1 1 I
+X in3 3 -350 -50 200 R 50 50 1 1 I
+X out 4 500 50 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 4_OR
+#
+DEF 4_OR X 0 40 Y Y 1 F N
+F0 "X" 150 -100 60 H V C CNN
+F1 "4_OR" 150 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A -800 0 650 226 -226 0 1 0 N -200 250 -200 -250
+A -73 134 444 -599 -176 0 1 0 N 150 -250 350 0
+A -30 -99 393 627 146 0 1 0 N 150 250 350 0
+P 2 0 1 0 -200 -250 150 -250 N
+P 2 0 1 0 -200 250 150 250 N
+X in1 1 -350 150 200 R 50 50 1 1 I
+X in2 2 -350 50 200 R 50 50 1 1 I
+X in3 3 -350 -50 200 R 50 50 1 1 I
+X in4 4 -350 -150 200 R 50 50 1 1 I
+X out 5 550 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 4_and
+#
+DEF 4_and X 0 40 Y Y 1 F N
+F0 "X" 50 -50 60 H V C CNN
+F1 "4_and" 100 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 100 0 206 760 -760 0 1 0 N 150 200 150 -200
+P 2 0 1 0 -200 200 150 200 N
+P 4 0 1 0 -200 200 -200 -200 50 -200 150 -200 N
+X in1 1 -400 150 200 R 50 50 1 1 I
+X in2 2 -400 50 200 R 50 50 1 1 I
+X in3 3 -400 -50 200 R 50 50 1 1 I
+X in4 4 -400 -150 200 R 50 50 1 1 I
+X out 5 500 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 556
+#
+DEF 556 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "556" 0 0 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 400 250 -550 0 1 0 N
+X dis1 1 -500 150 200 R 50 50 1 1 I
+X thr1 2 -500 -150 200 R 50 50 1 1 I
+X cv1 3 -150 -750 200 U 50 50 1 1 I
+X rst1 4 -200 600 200 D 50 50 1 1 I
+X out1 5 -500 0 200 R 50 50 1 1 O
+X trig1 6 -500 -300 200 R 50 50 1 1 I
+X gnd 7 0 -750 200 U 50 50 1 1 I
+X trig2 8 450 -300 200 L 50 50 1 1 I
+X out2 9 450 0 200 L 50 50 1 1 O
+X rst2 10 100 600 200 D 50 50 1 1 I
+X cv2 11 150 -750 200 U 50 50 1 1 I
+X thr2 12 450 -150 200 L 50 50 1 1 I
+X dis2 13 450 150 200 L 50 50 1 1 I
+X vcc 14 -50 600 200 D 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# 5_and
+#
+DEF 5_and X 0 40 Y Y 1 F N
+F0 "X" 50 -100 60 H V C CNN
+F1 "5_and" 100 150 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+A 100 0 255 787 -787 0 1 0 N 150 250 150 -250
+P 2 0 1 0 -250 250 150 250 N
+P 3 0 1 0 -250 250 -250 -250 150 -250 N
+X in1 1 -450 200 200 R 50 50 1 1 I
+X in2 2 -450 100 200 R 50 50 1 1 I
+X in3 3 -450 0 200 R 50 50 1 1 I
+X in4 4 -450 -100 200 R 50 50 1 1 I
+X in5 5 -450 -200 200 R 50 50 1 1 I
+X out 6 550 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 74194
+#
+DEF 74194 X 0 40 Y Y 1 F N
+F0 "X" 50 -50 60 H V C CNN
+F1 "74194" 0 250 60 H V C CNN
+F2 "" 50 -50 60 H I C CNN
+F3 "" 50 -50 60 H I C CNN
+DRAW
+S -150 150 200 -250 0 1 0 N
+X clk 1 -350 100 200 R 31 31 1 1 I
+X d0 2 -350 50 200 R 31 31 1 1 I
+X dsr 3 -350 0 200 R 31 31 1 1 I
+X d1 4 -350 -50 200 R 31 31 1 1 I
+X d2 5 -350 -100 200 R 31 31 1 1 I
+X d3 6 -350 -150 200 R 31 31 1 1 I
+X dsl 7 -350 -200 200 R 31 31 1 1 I
+X rst 8 400 100 200 L 31 31 1 1 I
+X sel1 9 400 50 200 L 31 31 1 1 I
+X sel0 10 400 0 200 L 31 31 1 1 I
+X q0 11 400 -50 200 L 31 31 1 1 O
+X q1 12 400 -100 200 L 31 31 1 1 O
+X q2 13 400 -150 200 L 31 31 1 1 O
+X q3 14 400 -200 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# 74hc194
+#
+DEF 74hc194 X 0 40 Y Y 1 F N
+F0 "X" 0 -200 60 H V C CNN
+F1 "74hc194" 0 0 39 H V C CNN
+F2 "" 0 -200 60 H I C CNN
+F3 "" 0 -200 60 H I C CNN
+DRAW
+S 300 -300 300 -300 0 1 0 N
+S -300 250 300 -450 1 1 0 N
+X dsr 1 -500 200 200 R 39 39 1 1 I
+X s0 2 -500 100 200 R 39 39 1 1 I
+X s1 3 -500 0 200 R 39 39 1 1 I
+X d0 4 -500 -100 200 R 39 39 1 1 I
+X clk 5 -500 -200 200 R 39 39 1 1 I
+X rst 6 -500 -300 200 R 39 39 1 1 I
+X q0 7 500 200 200 L 39 39 1 1 O
+X d1 8 500 100 200 L 39 39 1 1 I
+X q1 9 500 0 200 L 39 39 1 1 O
+X d2 10 500 -100 200 L 39 39 1 1 I
+X q2 11 500 -200 200 L 39 39 1 1 O
+X d3 12 500 -300 200 L 39 39 1 1 I
+X dsl 13 -500 -400 200 R 39 39 1 1 I
+X q3 14 500 -400 200 L 39 39 1 1 O
+ENDDRAW
+ENDDEF
+#
+# CD4007
+#
+DEF CD4007 X 0 40 Y Y 1 F N
+F0 "X" 0 0 39 H V C CNN
+F1 "CD4007" 0 100 39 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -250 250 250 -150 0 1 0 N
+S 250 -200 250 -200 0 1 0 N
+X G1 1 -450 200 200 R 31 31 1 1 I
+X GND 2 -450 150 200 R 31 31 1 1 I
+X vdd 3 -450 100 200 R 31 31 1 1 I
+X Dp1 4 -450 50 200 R 31 31 1 1 B
+X DN1 5 -450 0 200 R 31 31 1 1 B
+X g2 6 -450 -50 200 R 31 31 1 1 I
+X Dp2 7 -450 -100 200 R 31 31 1 1 B
+X Sn2 8 450 200 200 L 31 31 1 1 B
+X Sp2 9 450 150 200 L 31 31 1 1 B
+X Dn2 10 450 100 200 L 31 31 1 1 B
+X g3 11 450 50 200 L 31 31 1 1 I
+X SN3 12 450 0 200 L 31 31 1 1 B
+X SP3 13 450 -50 200 L 31 31 1 1 B
+X DN3 14 450 -100 200 L 31 31 1 1 B
+ENDDRAW
+ENDDEF
+#
+# CMOS_NAND
+#
+DEF CMOS_NAND X 0 40 Y Y 1 F N
+F0 "X" -100 -150 60 H V C CNN
+F1 "CMOS_NAND" 0 -50 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+A 150 -50 381 668 -668 0 1 0 N 300 300 300 -400
+C 550 0 50 0 1 0 N
+P 2 0 1 0 -350 300 300 300 N
+P 3 0 1 0 -350 300 -350 -400 300 -400 N
+X in1 1 -550 250 200 R 50 50 1 1 I
+X in2 2 -550 -300 200 R 50 50 1 1 I
+X out 3 800 0 279 L 79 79 1 1 I
+ENDDRAW
+ENDDEF
+#
+# Clock_pulse_generator
+#
+DEF Clock_pulse_generator X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "Clock_pulse_generator" 0 -100 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -550 200 600 -300 0 1 0 N
+X Vdd 1 -750 100 200 R 50 50 1 1 I
+X R 2 -750 -50 200 R 50 50 1 1 I
+X C 3 -750 -200 200 R 50 50 1 1 I
+X Clkout 4 800 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_4002
+#
+DEF IC_4002 X 0 40 Y Y 1 F N
+F0 "X" 0 150 60 H V C CNN
+F1 "IC_4002" 0 0 60 H V C CNN
+F2 "" 50 -150 60 H V C CNN
+F3 "" 50 -150 60 H V C CNN
+DRAW
+S -250 350 250 -400 0 1 0 N
+X 1Y 1 -450 250 200 R 50 50 1 1 O
+X 1A 2 -450 150 200 R 50 50 1 1 I
+X 1B 3 -450 50 200 R 50 50 1 1 I
+X 1C 4 -450 -50 200 R 50 50 1 1 I
+X 1D 5 -450 -150 200 R 50 50 1 1 I
+X NC 6 -450 -250 200 R 50 50 1 1 I
+X GND 7 -450 -350 200 R 50 50 1 1 I
+X NC 8 450 -350 200 L 50 50 1 1 I
+X 2A 9 450 -250 200 L 50 50 1 1 I
+X 2B 10 450 -150 200 L 50 50 1 1 I
+X 2C 11 450 -50 200 L 50 50 1 1 I
+X 2D 12 450 50 200 L 50 50 1 1 I
+X 2Y 13 450 150 200 L 50 50 1 1 O
+X VCC 14 450 250 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4012
+#
+DEF IC_4012 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "IC_4012" 0 200 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 400 350 -400 0 1 0 N
+X Q1 1 -500 300 200 R 50 50 1 1 O
+X A1 2 -500 200 200 R 50 50 1 1 I
+X B1 3 -500 100 200 R 50 50 1 1 I
+X C1 4 -500 0 200 R 50 50 1 1 I
+X D1 5 -500 -100 200 R 50 50 1 1 I
+X NC 6 -500 -200 200 R 50 50 1 1 N
+X VSS 7 -500 -300 200 R 50 50 1 1 I
+X NC 8 550 -300 200 L 50 50 1 1 N
+X A2 9 550 -200 200 L 50 50 1 1 I
+X B2 10 550 -100 200 L 50 50 1 1 I
+X C2 11 550 0 200 L 50 50 1 1 I
+X D2 12 550 100 200 L 50 50 1 1 I
+X Q2 13 550 200 200 L 50 50 1 1 O
+X VDD 14 550 300 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4017
+#
+DEF IC_4017 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "IC_4017" 0 0 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -350 850 400 -850 0 1 0 N
+X 1 1 600 650 200 L 50 50 1 1 O
+X 2 2 600 500 200 L 50 50 1 1 O
+X 3 3 600 350 200 L 50 50 1 1 O
+X 4 4 600 200 200 L 50 50 1 1 O
+X 5 5 600 50 200 L 50 50 1 1 O
+X 6 6 600 -100 200 L 50 50 1 1 O
+X 7 7 600 -250 200 L 50 50 1 1 O
+X 8 8 600 -400 200 L 50 50 1 1 O
+X 9 9 600 -600 200 L 50 50 1 1 O
+X 10 10 600 -750 200 L 50 50 1 1 O
+X RST 11 -550 -400 200 R 50 50 1 1 I
+X CLK 12 -550 350 200 R 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4023
+#
+DEF IC_4023 X 0 40 Y Y 1 F N
+F0 "X" 0 -100 60 H V C CNN
+F1 "IC_4023" 0 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 450 300 -450 0 1 0 N
+X A1 1 -500 300 200 R 50 50 1 1 I
+X B1 2 -500 200 200 R 50 50 1 1 I
+X A2 3 -500 100 200 R 50 50 1 1 I
+X B2 4 -500 0 200 R 50 50 1 1 I
+X C2 5 -500 -100 200 R 50 50 1 1 I
+X Q2 6 -500 -200 200 R 50 50 1 1 O
+X Vss 7 -500 -300 200 R 50 50 1 1 I
+X C1 8 500 -300 200 L 50 50 1 1 I
+X Q1 9 500 -200 200 L 50 50 1 1 O
+X Q3 10 500 -100 200 L 50 50 1 1 O
+X C3 11 500 0 200 L 50 50 1 1 I
+X B3 12 500 100 200 L 50 50 1 1 I
+X A3 13 500 200 200 L 50 50 1 1 I
+X Vdd 14 500 300 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_4028
+#
+DEF IC_4028 X 0 40 Y Y 1 F N
+F0 "X" 0 -100 60 H V C CNN
+F1 "IC_4028" 0 50 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 450 300 -450 0 1 0 N
+X Q4 1 -500 350 200 R 50 50 1 1 O
+X Q2 2 -500 250 200 R 50 50 1 1 O
+X Q0 3 -500 150 200 R 50 50 1 1 O
+X Q7 4 -500 50 200 R 50 50 1 1 O
+X Q9 5 -500 -50 200 R 50 50 1 1 O
+X Q5 6 -500 -150 200 R 50 50 1 1 O
+X Q6 7 -500 -250 200 R 50 50 1 1 O
+X Vss 8 -500 -350 200 R 50 50 1 1 I
+X Q8 9 500 -350 200 L 50 50 1 1 O
+X A0 10 500 -250 200 L 50 50 1 1 I
+X A3 11 500 -150 200 L 50 50 1 1 I
+X A2 12 500 -50 200 L 50 50 1 1 I
+X A1 13 500 50 200 L 50 50 1 1 I
+X Q1 14 500 150 200 L 50 50 1 1 O
+X Q3 15 500 250 200 L 50 50 1 1 O
+X Vdd 16 500 350 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_4073
+#
+DEF IC_4073 X 0 40 Y Y 1 F N
+F0 "X" 0 -100 60 H V C CNN
+F1 "IC_4073" 0 50 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -300 400 300 -400 0 1 0 N
+X A1 1 -500 300 200 R 50 50 1 1 I
+X B1 2 -500 200 200 R 50 50 1 1 I
+X A2 3 -500 100 200 R 50 50 1 1 I
+X B2 4 -500 0 200 R 50 50 1 1 I
+X C2 5 -500 -100 200 R 50 50 1 1 I
+X Q2 6 -500 -200 200 R 50 50 1 1 O
+X Vss 7 -500 -300 200 R 50 50 1 1 I
+X C1 8 500 -300 200 L 50 50 1 1 I
+X Q1 9 500 -200 200 L 50 50 1 1 O
+X Q3 10 500 -100 200 L 50 50 1 1 O
+X A3 11 500 0 200 L 50 50 1 1 I
+X B3 12 500 100 200 L 50 50 1 1 I
+X C3 13 500 200 200 L 50 50 1 1 I
+X Vdd 14 500 300 200 L 50 50 1 1 I
+ENDDRAW
+ENDDEF
+#
+# IC_74153
+#
+DEF IC_74153 X 0 40 Y Y 1 F N
+F0 "X" 100 50 60 H V C CNN
+F1 "IC_74153" 100 150 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+T 0 100 -200 60 0 0 0 4:1 Normal 0 C C
+T 0 100 -100 60 0 0 0 DUAL Normal 0 C C
+T 0 100 -300 60 0 0 0 MUX Normal 0 C C
+S -200 500 350 -550 0 1 0 N
+X a0 1 -400 350 200 R 50 50 1 1 I
+X a1 2 -400 250 200 R 50 50 1 1 I
+X a2 3 -400 150 200 R 50 50 1 1 I
+X a3 4 -400 50 200 R 50 50 1 1 I
+X EA 5 0 700 200 D 50 50 1 1 I I
+X b0 6 -400 -150 200 R 50 50 1 1 I
+X b1 7 -400 -250 200 R 50 50 1 1 I
+X b2 8 -400 -350 200 R 50 50 1 1 I
+X b3 9 -400 -450 200 R 50 50 1 1 I
+X EB 10 200 700 200 D 50 50 1 1 I I
+X s1 11 50 -750 200 U 50 50 1 1 I
+X s0 12 150 -750 200 U 50 50 1 1 I
+X ya 13 550 250 200 L 50 50 1 1 O
+X yb 14 550 -300 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_74154
+#
+DEF IC_74154 X 0 40 Y Y 1 F N
+F0 "X" 0 -200 60 H V C CNN
+F1 "IC_74154" 50 -50 60 H V C CNN
+F2 "" 0 50 60 H V C CNN
+F3 "" 0 50 60 H V C CNN
+DRAW
+T 0 0 400 60 0 0 0 4:16~ Normal 0 C C
+T 0 0 250 60 0 0 0 decoder Normal 0 C C
+S -350 700 400 -700 0 0 0 N
+X ~Y0 1 -550 550 200 R 50 50 1 1 O I
+X ~Y1 2 -550 450 200 R 50 50 1 1 O I
+X ~Y2 3 -550 350 200 R 50 50 1 1 O I
+X ~Y3 4 -550 250 200 R 50 50 1 1 O I
+X ~Y4 5 -550 150 200 R 50 50 1 1 O I
+X ~Y5 6 -550 50 200 R 50 50 1 1 O I
+X ~Y6 7 -550 -50 200 R 50 50 1 1 O I
+X ~Y7 8 -550 -150 200 R 50 50 1 1 O I
+X ~Y8 9 -550 -250 200 R 50 50 1 1 O I
+X ~Y9 10 -550 -350 200 R 50 50 1 1 O I
+X A3 20 600 150 200 L 50 50 1 1 I
+X ~Y10 11 -550 -450 200 R 50 50 1 1 O I
+X A2 21 600 250 200 L 50 50 1 1 I
+X GND 12 -550 -550 200 R 50 50 1 1 I
+X A1 22 600 350 200 L 50 50 1 1 I
+X ~Y11 13 600 -550 200 L 50 50 1 1 O I
+X A0 23 600 450 200 L 50 50 1 1 I
+X ~Y12 14 600 -450 200 L 50 50 1 1 O I
+X Vcc 24 600 550 200 L 50 50 1 1 I
+X ~Y13 15 600 -350 200 L 50 50 1 1 O I
+X ~Y14 16 600 -250 200 L 50 50 1 1 O I
+X ~Y15 17 600 -150 200 L 50 50 1 1 O I
+X ~E0 18 600 -50 200 L 50 50 1 1 I I
+X ~E1 19 600 50 200 L 50 50 1 1 I I
+ENDDRAW
+ENDDEF
+#
+# IC_74157
+#
+DEF IC_74157 X 0 40 Y Y 1 F N
+F0 "X" 50 -50 60 H V C CNN
+F1 "IC_74157" 50 100 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+T 0 50 -300 60 0 0 0 2:1 Normal 0 C C
+T 0 50 -400 60 0 0 0 MUX Normal 0 C C
+T 0 50 -200 60 0 0 0 QUAD Normal 0 C C
+S -350 550 400 -650 0 1 0 N
+X a0 1 -550 450 200 R 50 50 1 1 I
+X a1 2 -550 300 200 R 50 50 1 1 I
+X b0 3 -550 200 200 R 50 50 1 1 I
+X b1 4 -550 100 200 R 50 50 1 1 I
+X c0 5 -550 0 200 R 50 50 1 1 I
+X c1 6 -550 -100 200 R 50 50 1 1 I
+X d0 7 -550 -200 200 R 50 50 1 1 I
+X d1 8 -550 -300 200 R 50 50 1 1 I
+X EN 9 -550 -550 200 R 50 50 1 1 I I
+X S 10 -550 -450 200 R 50 50 1 1 I
+X Yd 11 600 0 200 L 50 50 1 1 O
+X Ya 12 600 300 200 L 50 50 1 1 O
+X Yb 13 600 200 200 L 50 50 1 1 O
+X Yc 14 600 100 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# IC_7485
+#
+DEF IC_7485 X 0 40 Y Y 1 F N
+F0 "X" -50 -100 60 H V C CNN
+F1 "IC_7485" -50 50 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+T 0 0 550 60 0 0 0 4~BIT~comparator Normal 0 C C
+S -350 450 400 -400 0 1 0 N
+X A<B(in) 1 600 -100 200 L 50 50 1 1 I
+X A=B(in) 2 600 -200 200 L 50 50 1 1 I
+X A>B(in) 3 600 -300 200 L 50 50 1 1 I
+X A3 4 -550 100 200 R 50 50 1 1 I
+X B3 5 -550 -350 200 R 50 50 1 1 I
+X A2 6 -550 200 200 R 50 50 1 1 I
+X B2 7 -550 -250 200 R 50 50 1 1 I
+X A1 8 -550 300 200 R 50 50 1 1 I
+X B1 9 -550 -150 200 R 50 50 1 1 I
+X A0 10 -550 400 200 R 50 50 1 1 I
+X B0 11 -550 -50 200 R 50 50 1 1 I
+X A>B(out) 12 600 350 200 L 50 50 1 1 O
+X A=B(out) 13 600 250 200 L 50 50 1 1 O
+X A<B(out) 14 600 150 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# INVCMOS
+#
+DEF INVCMOS X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "INVCMOS" -450 150 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+C 400 0 112 0 1 0 N
+S -250 200 -250 -200 0 1 0 N
+P 3 0 1 0 -250 200 300 0 -250 -200 N
+X in 1 -450 0 200 R 50 50 1 1 P
+X out 2 700 0 200 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# LM13700
+#
+DEF LM13700 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "LM13700" 50 200 39 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+X INPUT(+) 6 -550 -200 200 R 31 31 1 0 I
+X DIODEBIAS2 7 700 350 200 L 31 31 1 0 I
+X INPUT2(-) 8 700 250 200 L 31 31 1 0 I
+X OUTPUT 9 -550 -350 200 R 31 31 1 0 O
+X AMPBIASINPUT2 10 700 150 200 L 31 31 1 0 I
+X INPUT2(+) 11 700 -50 200 L 31 31 1 0 O
+X OUTPUT2 12 700 -200 200 L 31 31 1 0 O
+S -350 450 500 -400 0 1 0 N
+X DIODEBIAS 1 -550 350 200 R 31 31 1 1 I
+X INPUT(-) 2 -550 250 200 R 31 31 1 1 I
+X V(+) 3 -550 150 200 R 31 31 1 1 I
+X V(-) 4 -550 50 200 R 31 31 1 1 I
+X AMPBIASINPUT 5 -550 -100 200 R 31 31 1 1 I
+ENDDRAW
+ENDDEF
+#
+# LM555N
+#
+DEF LM555N X 0 40 Y Y 1 F N
+F0 "X" 0 -50 60 H V C CNN
+F1 "LM555N" 0 100 60 H V C CNN
+F2 "" -50 0 60 H V C CNN
+F3 "" -50 0 60 H V C CNN
+DRAW
+S 350 -400 -350 400 0 1 0 N
+X GND 1 0 -600 200 U 50 50 1 1 W
+X TR 2 -550 250 200 R 50 50 1 1 I
+X Q 3 550 250 200 L 50 50 1 1 O
+X R 4 -550 -250 200 R 50 50 1 1 I I
+X CV 5 -550 0 200 R 50 50 1 1 I
+X THR 6 550 -250 200 L 50 50 1 1 I
+X DIS 7 550 0 200 L 50 50 1 1 I
+X VCC 8 0 600 200 D 50 50 1 1 W
+ENDDRAW
+ENDDEF
+#
+# LM_7812
+#
+DEF LM_7812 X 0 40 Y Y 1 F N
+F0 "X" 0 50 60 H V C CNN
+F1 "LM_7812" 0 150 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -350 200 350 -200 0 1 0 N
+X IN 1 -550 0 200 R 50 50 1 1 I
+X GND 2 0 -400 200 U 50 50 1 1 I
+X OUT 3 550 0 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# Lm_7805
+#
+DEF Lm_7805 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "Lm_7805" 50 150 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -350 100 350 -200 0 1 0 N
+X Vin 1 -550 0 200 R 50 50 1 1 P
+X GND 2 0 -400 200 U 50 50 1 1 P
+X Vout 3 550 0 200 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# NAND5
+#
+DEF NAND5 X 0 40 Y Y 1 F N
+F0 "X" 450 -200 35 H V C CNN
+F1 "NAND5" 450 -100 35 H V C CNN
+F2 "" 450 -200 60 H I C CNN
+F3 "" 450 -200 60 H I C CNN
+DRAW
+A 500 -150 100 -899 899 0 1 0 N 500 -250 500 -50
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 1 1799 0 1 0 N 650 -150 600 -150
+A 625 -150 25 -1799 -1 0 1 0 N 600 -150 650 -150
+C 650 -100 0 0 1 0 N
+C 650 -100 0 0 1 0 N
+P 2 0 1 0 300 -50 500 -50 N
+P 3 0 1 0 300 -50 300 -250 500 -250 N
+X B 1 100 -50 200 R 20 20 1 1 I
+X D 2 100 -100 200 R 20 20 1 1 I
+X E 3 100 -150 200 R 20 20 1 1 I
+X C 4 100 -200 200 R 20 20 1 1 I
+X A 5 100 -250 200 R 20 20 1 1 I
+X OUT 6 850 -150 200 L 12 12 1 1 O
+ENDDRAW
+ENDDEF
+#
+# SCR
+#
+DEF SCR X 0 10 Y N 1 F N
+F0 "X" 150 200 50 H V C CNN
+F1 "SCR" 150 -350 50 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+P 2 0 0 0 -200 -150 200 -150 N
+P 2 0 1 0 0 -150 -200 -400 N
+P 3 0 1 0 -150 100 150 100 0 -150 F
+X A 1 0 400 300 D 60 60 1 1 I
+X K 2 0 -550 400 U 60 70 1 1 I
+X G 3 -350 -400 150 R 60 60 1 1 I
+ENDDRAW
+ENDDEF
+#
+# SN54HC164
+#
+DEF SN54HC164 X 0 40 Y Y 1 F N
+F0 "X" -150 200 60 H V C CNN
+F1 "SN54HC164" -200 400 39 H V C CNN
+F2 "" -150 200 60 H I C CNN
+F3 "" -150 200 60 H I C CNN
+DRAW
+S -600 600 -600 600 0 1 0 N
+S -600 600 200 -250 0 1 0 N
+X d5 6 -800 -100 200 R 50 50 0 1 O
+X d2 7 400 500 200 L 50 50 0 1 O
+X d6 8 400 400 200 L 50 50 0 1 O
+X d3 9 400 250 200 L 50 50 0 1 O
+X d7 10 400 100 200 L 50 50 0 1 O
+X d4 11 400 0 200 L 50 50 0 1 O
+X d8 12 400 -100 200 L 50 50 0 1 O
+X A 1 -800 500 200 R 50 50 1 1 I
+X B 2 -800 350 200 R 50 50 1 1 I
+X clk 3 -800 250 200 R 50 50 1 1 I
+X rst 4 -800 150 200 R 50 50 1 1 I
+X d1 5 -800 50 200 R 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# UJT
+#
+DEF UJT X 0 40 Y Y 1 F N
+F0 "X" -50 -50 60 H V C CNN
+F1 "UJT" 50 -50 60 H V C CNN
+F2 "" -50 -50 60 H I C CNN
+F3 "" -50 -50 60 H I C CNN
+DRAW
+C -50 -50 206 0 1 0 N
+P 2 0 1 0 -100 100 -100 -200 N
+P 3 0 1 0 -250 0 -200 0 -100 -100 N
+P 3 0 1 0 -200 -50 -150 -50 -150 0 N
+P 3 0 1 0 -100 -150 0 -150 0 -250 N
+P 3 0 1 0 -100 50 0 50 0 150 N
+X E 1 -450 0 200 R 50 50 1 1 I
+X B1 2 0 -450 200 U 50 50 1 1 B
+X B2 3 0 350 200 D 50 50 1 1 B
+ENDDRAW
+ENDDEF
+#
+# cmos_d_ff
+#
+DEF cmos_d_ff X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "cmos_d_ff" 0 300 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -250 200 250 -300 0 1 0 N
+X CLK 1 -450 150 200 R 39 39 1 1 I
+X D 2 -450 50 200 R 39 39 1 1 I
+X RST 3 -450 -50 200 R 39 39 1 1 I
+X Q_BAR 4 -450 -150 200 R 39 39 1 1 O
+X VCC 5 450 150 200 L 39 39 1 1 I
+X GND 6 450 50 200 L 39 39 1 1 I
+X Q 7 450 -50 200 L 39 39 1 1 O
+ENDDRAW
+ENDDEF
+#
+# d_flipflop
+#
+DEF d_flipflop X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "d_flipflop" 0 300 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 200 200 -200 0 1 0 N
+S 200 -200 200 -200 0 1 0 N
+X clk 1 -400 -100 200 R 50 50 1 1 I
+X d 2 -400 100 200 R 50 50 1 1 I
+X rst 3 0 -400 200 U 50 50 1 1 I
+X q 4 400 100 200 L 50 50 1 1 O
+X q_bar 5 400 -100 200 L 24 24 1 1 O
+ENDDRAW
+ENDDEF
+#
+# eSim_74LS04
+#
+DEF eSim_74LS04 X 0 40 Y Y 1 F N
+F0 "X" 0 100 60 H V C CNN
+F1 "eSim_74LS04" 0 0 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S 350 500 -350 -500 0 1 0 N
+X ~ 1 -550 450 200 R 50 50 1 1 P
+X ~ 2 -550 300 200 R 50 50 1 1 P I
+X ~ 3 -550 150 200 R 50 50 1 1 P
+X ~ 4 -550 0 200 R 50 50 1 1 P I
+X ~ 5 -550 -150 200 R 50 50 1 1 P
+X ~ 6 -550 -300 200 R 50 50 1 1 P I
+X GND 7 -550 -450 200 R 50 50 1 1 P
+X ~ 8 550 -450 200 L 50 50 1 1 P I
+X ~ 9 550 -300 200 L 50 50 1 1 P
+X ~ 10 550 -150 200 L 50 50 1 1 P I
+X ~ 11 550 0 200 L 50 50 1 1 P
+X ~ 12 550 150 200 L 50 50 1 1 P I
+X ~ 13 550 300 200 L 50 50 1 1 P
+X VCC 14 550 450 200 L 50 50 1 1 P
+ENDDRAW
+ENDDEF
+#
+# full_adder
+#
+DEF full_adder X 0 40 Y Y 1 F N
+F0 "X" 1400 700 60 H V C CNN
+F1 "full_adder" 1400 600 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S 800 1150 1950 0 0 1 0 N
+X IN1 1 600 950 200 R 50 50 1 1 I
+X IN2 2 600 550 200 R 50 50 1 1 I
+X CIN 3 600 150 200 R 50 50 1 1 I
+X SUM 4 2150 950 200 L 50 50 1 1 O
+X COUT 5 2150 150 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# full_sub
+#
+DEF full_sub X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "full_sub" 0 0 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S -550 650 450 -600 0 1 0 N
+X A 1 -750 400 200 R 50 50 1 1 I
+X B 2 -750 200 200 R 50 50 1 1 I
+X BIN 3 -750 -200 200 R 50 50 1 1 I
+X DIFF 4 650 450 200 L 50 50 1 1 O
+X BORROW 5 650 150 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# half_adder
+#
+DEF half_adder X 0 40 Y Y 1 F N
+F0 "X" 900 500 60 H V C CNN
+F1 "half_adder" 900 400 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+S 500 800 1250 0 0 1 0 N
+X IN1 1 300 700 200 R 50 50 1 1 I
+X IN2 2 300 100 200 R 50 50 1 1 I
+X SUM 3 1450 700 200 L 50 50 1 1 O
+X COUT 4 1450 100 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# half_sub
+#
+DEF half_sub X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "half_sub" 0 0 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -300 300 300 -300 0 1 0 N
+X A 1 -500 200 200 R 50 50 1 1 I
+X B 2 -500 -100 200 R 50 50 1 1 I
+X D 3 500 150 200 L 50 50 1 1 O
+X BORROW 4 500 -100 200 L 50 50 1 1 O
+ENDDRAW
+ENDDEF
+#
+# latch
+#
+DEF latch X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "latch" 0 200 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -150 100 150 -150 0 1 0 N
+X out 1 350 50 200 L 39 39 1 1 O
+X en 2 -350 50 200 R 39 39 1 1 I
+X data 3 -350 -100 200 R 39 39 1 1 I
+ENDDRAW
+ENDDEF
+#
+# lm_741
+#
+DEF lm_741 X 0 40 Y Y 1 F N
+F0 "X" -200 0 60 H V C CNN
+F1 "lm_741" -100 -250 60 H V C CNN
+F2 "" 0 0 60 H V C CNN
+F3 "" 0 0 60 H V C CNN
+DRAW
+P 4 0 1 0 -350 350 350 0 -350 -350 -350 350 N
+X off_null 1 -50 400 200 D 50 38 1 1 I
+X inv 2 -550 150 200 R 50 38 1 1 I
+X non_inv 3 -550 -100 200 R 50 38 1 1 I
+X v_neg 4 -150 -450 200 U 50 38 1 1 I
+X off_null 5 50 350 200 D 50 38 1 1 I
+X out 6 550 0 200 L 50 38 1 1 O
+X v_pos 7 -150 450 200 D 50 38 1 1 I
+X NC 8 150 -300 200 U 50 38 1 1 N
+ENDDRAW
+ENDDEF
+#
+# mm54hct147
+#
+DEF mm54hct147 X 0 40 Y Y 1 F N
+F0 "X" 200 250 39 H V C CNN
+F1 "mm54hct147" 200 150 39 H V C CNN
+F2 "" 200 250 60 H I C CNN
+F3 "" 200 250 60 H I C CNN
+DRAW
+S -50 -250 500 450 0 1 0 N
+X in10 1 -250 400 200 R 31 31 1 1 I
+X in6 2 -250 300 200 R 31 31 1 1 I
+X in8 3 -250 200 200 R 31 31 1 1 I
+X in2 4 -250 100 200 R 31 31 1 1 I
+X in5 5 -250 0 200 R 31 31 1 1 I
+X in7 6 -250 -100 200 R 31 31 1 1 I
+X in1 7 -250 -200 200 R 31 31 1 1 I
+X in4 8 700 400 200 L 31 31 1 1 I
+X in3 9 700 300 200 L 31 31 1 1 I
+X d 10 700 200 200 L 31 31 1 1 O
+X a 11 700 100 200 L 31 31 1 1 O
+X b 12 700 0 200 L 31 31 1 1 O
+X c 13 700 -100 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# mm54hct1472
+#
+DEF mm54hct1472 X 0 40 Y Y 1 F N
+F0 "X" 0 50 20 H V C CNN
+F1 "mm54hct1472" 0 100 20 H V C CNN
+F2 "" 0 50 60 H I C CNN
+F3 "" 0 50 60 H I C CNN
+DRAW
+S -250 200 -250 200 0 1 0 N
+S 150 -150 -200 250 0 1 0 N
+X in4 1 -400 200 200 R 20 20 1 1 I
+X in5 2 -400 150 200 R 20 20 1 1 I
+X in7 3 -400 100 200 R 20 20 1 1 I
+X in9 4 -400 50 200 R 20 20 1 1 I
+X in8 5 -400 0 200 R 20 20 1 1 I
+X in3 6 -400 -50 200 R 20 20 1 1 I
+X in6 7 -400 -100 200 R 20 20 1 1 I
+X in2 8 350 200 200 L 20 20 1 1 I
+X in1 9 350 150 200 L 20 20 1 1 I
+X d 10 350 50 200 L 20 20 1 1 O
+X c 11 350 0 200 L 20 20 1 1 O
+X a 12 350 -100 200 L 20 20 1 1 O
+X b 13 350 -50 200 L 20 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# mux4
+#
+DEF mux4 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "mux4" 0 250 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 150 150 -200 0 1 0 N
+X S0 1 -400 100 200 R 20 20 1 1 I
+X S1 2 -400 50 200 R 20 20 1 1 I
+X I1 3 -400 -50 200 R 20 20 1 1 I
+X I2 4 -400 -100 200 R 20 20 1 1 I
+X I3 5 -400 -150 200 R 20 20 1 1 I
+X I0 6 -400 0 200 R 20 20 1 1 I
+X Y 7 350 0 200 L 20 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# nand3
+#
+DEF nand3 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "nand3" 0 100 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+A 100 50 206 760 -760 0 1 0 N 150 250 150 -150
+A 325 50 25 1 1799 0 1 0 N 350 50 300 50
+A 325 50 25 -1799 -1 0 1 0 N 300 50 350 50
+P 2 0 1 0 -300 250 100 250 N
+P 2 0 1 0 100 250 150 250 N
+P 3 0 1 0 -300 250 -300 -150 150 -150 N
+X A 1 -500 150 200 R 31 31 1 1 I
+X B 2 -500 50 200 R 31 31 1 1 I
+X C 3 -500 -100 200 R 31 31 1 1 I
+X OUT 4 550 50 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# nand4
+#
+DEF nand4 X 0 40 Y Y 1 F N
+F0 "X" 550 0 31 H V C CNN
+F1 "nand4" 550 50 28 H V C CNN
+F2 "" 550 0 60 H I C CNN
+F3 "" 550 0 60 H I C CNN
+DRAW
+A 600 25 75 -899 899 0 1 0 N 600 -50 600 100
+A 700 25 25 901 -901 0 1 0 N 700 50 700 0
+A 700 25 25 -899 899 0 1 0 N 700 0 700 50
+A 850 -50 0 900 900 0 1 0 N 850 -50 850 -50
+P 2 0 1 0 400 100 600 100 N
+P 3 0 1 0 400 100 400 -50 600 -50 N
+X a 1 200 100 200 R 31 31 1 1 I
+X b 2 200 50 200 R 31 31 1 1 I
+X c 3 200 0 200 R 31 31 1 1 I
+X d 4 200 -50 200 R 31 31 1 1 I
+X out 5 900 50 200 L 31 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# nor_4
+#
+DEF nor_4 X 0 40 Y Y 1 F N
+F0 "X" 500 0 31 H V C CNN
+F1 "nor_4" 500 50 31 H V C CNN
+F2 "" 500 0 60 H I C CNN
+F3 "" 500 0 60 H I C CNN
+DRAW
+A 100 0 250 369 -369 0 1 0 N 300 150 300 -150
+C 700 0 50 0 1 0 N
+P 7 0 1 0 300 150 400 150 550 100 650 0 550 -100 400 -150 300 -150 N
+X IN1 1 150 100 200 R 20 20 1 1 I
+X IN2 2 150 50 200 R 20 20 1 1 I
+X IN3 3 150 -50 200 R 20 20 1 1 I
+X IN4 4 150 -100 200 R 20 20 1 1 I
+X OUT 5 950 0 200 L 20 20 1 1 O
+ENDDRAW
+ENDDEF
+#
+# sn5472
+#
+DEF sn5472 X 0 40 Y Y 1 F N
+F0 "X" 0 0 39 H V C CNN
+F1 "sn5472" 0 250 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 150 150 -250 0 1 0 N
+X j1 1 -400 100 200 R 31 31 1 1 I
+X j2 2 -400 50 200 R 31 31 1 1 I
+X j3 3 -400 0 200 R 31 31 1 1 I
+X q 4 -400 -50 200 R 31 31 1 1 O
+X clr 5 -400 -100 200 R 31 31 1 1 I
+X vcc 6 -400 -150 200 R 31 31 1 1 I
+X gnd 7 350 100 200 L 31 31 1 1 I
+X clk 8 350 50 200 L 31 31 1 1 I
+X q_bar 9 350 0 200 L 20 20 1 1 O
+X preset 10 350 -50 200 L 20 20 1 1 I
+X k1 11 350 -100 200 L 31 31 1 1 I
+X k2 12 350 -150 200 L 31 31 1 1 I
+X k3 13 350 -200 200 L 31 31 1 1 I
+ENDDRAW
+ENDDEF
+#
+# sn54als29827
+#
+DEF sn54als29827 X 0 40 Y Y 1 F N
+F0 "X" 0 0 39 H V C CNN
+F1 "sn54als29827" 0 100 20 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -200 250 200 -450 0 1 0 N
+X g1 1 -400 200 200 R 31 31 1 1 I
+X g2 2 -400 150 200 R 31 31 1 1 I
+X a1 3 -400 100 200 R 31 31 1 1 I
+X a2 4 -400 50 200 R 31 31 1 1 I
+X a7 5 -400 0 200 R 31 31 1 1 I
+X a3 6 -400 -50 200 R 31 31 1 1 I
+X a4 7 -400 -100 200 R 31 31 1 1 I
+X a6 8 -400 -150 200 R 31 31 1 1 I
+X a8 9 -400 -200 200 R 31 31 1 1 I
+X a5 10 -400 -250 200 R 31 31 1 1 I
+X y10 20 400 -150 200 L 31 31 1 1 O
+X a9 11 -400 -300 200 R 31 31 1 1 I
+X y9 21 400 -200 200 L 31 31 1 1 O
+X a10 12 -400 -350 200 R 31 31 1 1 I
+X y4 22 400 -250 200 L 31 31 1 1 O
+X y1 13 400 200 200 L 31 31 1 1 O
+X y2 14 400 150 200 L 31 31 1 1 O
+X y6 15 400 100 200 L 31 31 1 1 O
+X y3 16 400 50 200 L 31 31 1 1 O
+X y5 17 400 0 200 L 31 31 1 1 O
+X y7 18 400 -50 200 L 31 31 1 1 O
+X y8 19 400 -100 200 L 31 31 1 1 O
+ENDDRAW
+ENDDEF
+#
+# sn54als646
+#
+DEF sn54als646 X 0 40 Y Y 1 F N
+F0 "X" 0 0 60 H V C CNN
+F1 "sn54als646" 0 350 60 H V C CNN
+F2 "" 0 0 60 H I C CNN
+F3 "" 0 0 60 H I C CNN
+DRAW
+S -250 250 250 -100 0 1 0 N
+X CAB 1 -450 200 200 R 31 31 1 1 I
+X DIR 2 -450 150 200 R 31 31 1 1 I
+X CBA 3 -450 100 200 R 31 31 1 1 I
+X A1 4 -450 50 200 R 31 31 1 1 B
+X OE 5 -450 0 200 R 31 31 1 1 I
+X SBA 6 -450 -50 200 R 31 31 1 1 I
+X SAB 7 450 200 200 L 31 31 1 1 I
+X B 8 450 100 200 L 31 31 1 1 B
+ENDDRAW
+ENDDEF
+#
+# tristate_buffer
+#
+DEF tristate_buffer X 0 40 Y Y 1 F N
+F0 "X" 550 -50 60 H V C CNN
+F1 "tristate_buffer" 500 200 60 H V C CNN
+F2 "" 550 -50 60 H I C CNN
+F3 "" 550 -50 60 H I C CNN
+DRAW
+P 2 0 1 0 450 -200 800 0 N
+P 2 0 1 0 450 100 450 -200 N
+P 2 0 1 0 450 100 450 100 N
+P 2 0 1 0 450 100 450 100 N
+P 2 0 1 0 450 150 450 100 N
+P 2 0 1 0 800 0 450 150 N
+X data_in 1 250 0 200 R 20 20 1 1 I
+X en 2 550 -350 200 U 20 20 1 1 I
+X out 3 1000 0 200 L 20 20 1 1 O
+X vcc 4 250 -100 200 R 20 20 1 1 I
+X gnd 5 650 -300 200 U 20 20 1 1 I
+ENDDRAW
+ENDDEF
+#
+#End Library
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.pro b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.pro
new file mode 100644
index 00000000..e27a398b
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.pro
@@ -0,0 +1,73 @@
+update=22/05/2015 07:44:53
+version=1
+last_client=kicad
+[general]
+version=1
+RootSch=
+BoardNm=
+[pcbnew]
+version=1
+LastNetListRead=
+UseCmpFile=1
+PadDrill=0.600000000000
+PadDrillOvalY=0.600000000000
+PadSizeH=1.500000000000
+PadSizeV=1.500000000000
+PcbTextSizeV=1.500000000000
+PcbTextSizeH=1.500000000000
+PcbTextThickness=0.300000000000
+ModuleTextSizeV=1.000000000000
+ModuleTextSizeH=1.000000000000
+ModuleTextSizeThickness=0.150000000000
+SolderMaskClearance=0.000000000000
+SolderMaskMinWidth=0.000000000000
+DrawSegmentWidth=0.200000000000
+BoardOutlineThickness=0.100000000000
+ModuleOutlineThickness=0.150000000000
+[cvpcb]
+version=1
+NetIExt=net
+[eeschema]
+version=1
+LibDir=
+[eeschema/libraries]
+LibName1=adc-dac
+LibName2=memory
+LibName3=xilinx
+LibName4=microcontrollers
+LibName5=dsp
+LibName6=microchip
+LibName7=analog_switches
+LibName8=motorola
+LibName9=texas
+LibName10=intel
+LibName11=audio
+LibName12=interface
+LibName13=digital-audio
+LibName14=philips
+LibName15=display
+LibName16=cypress
+LibName17=siliconi
+LibName18=opto
+LibName19=atmel
+LibName20=contrib
+LibName21=power
+LibName22=eSim_Plot
+LibName23=transistors
+LibName24=conn
+LibName25=eSim_User
+LibName26=regul
+LibName27=74xx
+LibName28=cmos4000
+LibName29=eSim_Analog
+LibName30=eSim_Devices
+LibName31=eSim_Digital
+LibName32=eSim_Hybrid
+LibName33=eSim_Miscellaneous
+LibName34=eSim_Power
+LibName35=eSim_Sources
+LibName36=eSim_Subckt
+LibName37=eSim_Nghdl
+LibName38=eSim_Ngveri
+LibName39=eSim_SKY130
+LibName40=eSim_SKY130_Subckts
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sch b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sch
new file mode 100644
index 00000000..68a0f528
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sch
@@ -0,0 +1,295 @@
+EESchema Schematic File Version 2
+LIBS:adc-dac
+LIBS:memory
+LIBS:xilinx
+LIBS:microcontrollers
+LIBS:dsp
+LIBS:microchip
+LIBS:analog_switches
+LIBS:motorola
+LIBS:texas
+LIBS:intel
+LIBS:audio
+LIBS:interface
+LIBS:digital-audio
+LIBS:philips
+LIBS:display
+LIBS:cypress
+LIBS:siliconi
+LIBS:opto
+LIBS:atmel
+LIBS:contrib
+LIBS:power
+LIBS:eSim_Plot
+LIBS:transistors
+LIBS:conn
+LIBS:eSim_User
+LIBS:regul
+LIBS:74xx
+LIBS:cmos4000
+LIBS:eSim_Analog
+LIBS:eSim_Devices
+LIBS:eSim_Digital
+LIBS:eSim_Hybrid
+LIBS:eSim_Miscellaneous
+LIBS:eSim_Power
+LIBS:eSim_Sources
+LIBS:eSim_Subckt
+LIBS:eSim_Nghdl
+LIBS:eSim_Ngveri
+LIBS:eSim_SKY130
+LIBS:eSim_SKY130_Subckts
+LIBS:mux4-cache
+EELAYER 25 0
+EELAYER END
+$Descr A4 11693 8268
+encoding utf-8
+Sheet 1 1
+Title ""
+Date ""
+Rev ""
+Comp ""
+Comment1 ""
+Comment2 ""
+Comment3 ""
+Comment4 ""
+$EndDescr
+$Comp
+L d_inverter U2
+U 1 1 683C9BAA
+P 2150 2000
+F 0 "U2" H 2150 1900 60 0000 C CNN
+F 1 "d_inverter" H 2150 2150 60 0000 C CNN
+F 2 "" H 2200 1950 60 0000 C CNN
+F 3 "" H 2200 1950 60 0000 C CNN
+ 1 2150 2000
+ 1 0 0 -1
+$EndComp
+$Comp
+L d_inverter U3
+U 1 1 683C9BE5
+P 2150 2800
+F 0 "U3" H 2150 2700 60 0000 C CNN
+F 1 "d_inverter" H 2150 2950 60 0000 C CNN
+F 2 "" H 2200 2750 60 0000 C CNN
+F 3 "" H 2200 2750 60 0000 C CNN
+ 1 2150 2800
+ 1 0 0 -1
+$EndComp
+$Comp
+L 3_and X1
+U 1 1 683C9ED0
+P 4550 3700
+F 0 "X1" H 4650 3650 60 0000 C CNN
+F 1 "3_and" H 4700 3850 60 0000 C CNN
+F 2 "" H 4550 3700 60 0000 C CNN
+F 3 "" H 4550 3700 60 0000 C CNN
+ 1 4550 3700
+ 1 0 0 -1
+$EndComp
+$Comp
+L 3_and X2
+U 1 1 683C9F13
+P 4700 4300
+F 0 "X2" H 4800 4250 60 0000 C CNN
+F 1 "3_and" H 4850 4450 60 0000 C CNN
+F 2 "" H 4700 4300 60 0000 C CNN
+F 3 "" H 4700 4300 60 0000 C CNN
+ 1 4700 4300
+ 1 0 0 -1
+$EndComp
+$Comp
+L 3_and X3
+U 1 1 683C9F44
+P 4750 4850
+F 0 "X3" H 4850 4800 60 0000 C CNN
+F 1 "3_and" H 4900 5000 60 0000 C CNN
+F 2 "" H 4750 4850 60 0000 C CNN
+F 3 "" H 4750 4850 60 0000 C CNN
+ 1 4750 4850
+ 1 0 0 -1
+$EndComp
+$Comp
+L 3_and X4
+U 1 1 683C9F87
+P 4750 5300
+F 0 "X4" H 4850 5250 60 0000 C CNN
+F 1 "3_and" H 4900 5450 60 0000 C CNN
+F 2 "" H 4750 5300 60 0000 C CNN
+F 3 "" H 4750 5300 60 0000 C CNN
+ 1 4750 5300
+ 1 0 0 -1
+$EndComp
+$Comp
+L 4_OR X5
+U 1 1 683C9FB4
+P 7450 4250
+F 0 "X5" H 7600 4150 60 0000 C CNN
+F 1 "4_OR" H 7600 4350 60 0000 C CNN
+F 2 "" H 7450 4250 60 0000 C CNN
+F 3 "" H 7450 4250 60 0000 C CNN
+ 1 7450 4250
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 1 1 683CAC40
+P 1100 2000
+F 0 "U1" H 1150 2100 30 0000 C CNN
+F 1 "PORT" H 1100 2000 30 0000 C CNN
+F 2 "" H 1100 2000 60 0000 C CNN
+F 3 "" H 1100 2000 60 0000 C CNN
+ 1 1100 2000
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 2 1 683CAC6D
+P 1150 2800
+F 0 "U1" H 1200 2900 30 0000 C CNN
+F 1 "PORT" H 1150 2800 30 0000 C CNN
+F 2 "" H 1150 2800 60 0000 C CNN
+F 3 "" H 1150 2800 60 0000 C CNN
+ 2 1150 2800
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 6 1 683CACA6
+P 2550 3750
+F 0 "U1" H 2600 3850 30 0000 C CNN
+F 1 "PORT" H 2550 3750 30 0000 C CNN
+F 2 "" H 2550 3750 60 0000 C CNN
+F 3 "" H 2550 3750 60 0000 C CNN
+ 6 2550 3750
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 3 1 683CACEB
+P 2200 4350
+F 0 "U1" H 2250 4450 30 0000 C CNN
+F 1 "PORT" H 2200 4350 30 0000 C CNN
+F 2 "" H 2200 4350 60 0000 C CNN
+F 3 "" H 2200 4350 60 0000 C CNN
+ 3 2200 4350
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 4 1 683CAD2A
+P 2250 4850
+F 0 "U1" H 2300 4950 30 0000 C CNN
+F 1 "PORT" H 2250 4850 30 0000 C CNN
+F 2 "" H 2250 4850 60 0000 C CNN
+F 3 "" H 2250 4850 60 0000 C CNN
+ 4 2250 4850
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 5 1 683CADB5
+P 2300 5350
+F 0 "U1" H 2350 5450 30 0000 C CNN
+F 1 "PORT" H 2300 5350 30 0000 C CNN
+F 2 "" H 2300 5350 60 0000 C CNN
+F 3 "" H 2300 5350 60 0000 C CNN
+ 5 2300 5350
+ 1 0 0 -1
+$EndComp
+$Comp
+L PORT U1
+U 7 1 683CB211
+P 8650 4250
+F 0 "U1" H 8700 4350 30 0000 C CNN
+F 1 "PORT" H 8650 4250 30 0000 C CNN
+F 2 "" H 8650 4250 60 0000 C CNN
+F 3 "" H 8650 4250 60 0000 C CNN
+ 7 8650 4250
+ -1 0 0 1
+$EndComp
+Wire Wire Line
+ 1350 2000 1850 2000
+Wire Wire Line
+ 2450 2000 3650 2000
+Wire Wire Line
+ 1650 2000 1650 2400
+Wire Wire Line
+ 1650 2400 3450 2400
+Connection ~ 1650 2000
+Wire Wire Line
+ 1400 2800 1850 2800
+Wire Wire Line
+ 1650 2800 1650 3100
+Wire Wire Line
+ 1650 3100 3050 3100
+Connection ~ 1650 2800
+Wire Wire Line
+ 3650 3550 4200 3550
+Wire Wire Line
+ 3650 2000 3650 3550
+Wire Wire Line
+ 3250 3650 4200 3650
+Wire Wire Line
+ 4200 3750 2800 3750
+Wire Wire Line
+ 4350 4350 2450 4350
+Wire Wire Line
+ 5050 3650 6400 3650
+Wire Wire Line
+ 6400 3650 6400 4100
+Wire Wire Line
+ 6400 4100 7100 4100
+Wire Wire Line
+ 5200 4250 5650 4250
+Wire Wire Line
+ 5650 4250 5650 4200
+Wire Wire Line
+ 5650 4200 7100 4200
+Wire Wire Line
+ 5250 4800 6200 4800
+Wire Wire Line
+ 6200 4800 6200 4300
+Wire Wire Line
+ 6200 4300 7100 4300
+Wire Wire Line
+ 5250 5250 7100 5250
+Wire Wire Line
+ 7100 5250 7100 4400
+Wire Wire Line
+ 2500 4900 2500 4850
+Wire Wire Line
+ 4400 5150 3050 5150
+Wire Wire Line
+ 3050 5150 3050 3100
+Wire Wire Line
+ 4400 5250 3450 5250
+Wire Wire Line
+ 3450 5250 3450 2400
+Wire Wire Line
+ 4400 5350 2550 5350
+Wire Wire Line
+ 8000 4250 8400 4250
+Wire Wire Line
+ 3250 3650 3250 2800
+Wire Wire Line
+ 3250 2800 2450 2800
+Wire Wire Line
+ 4350 4150 3450 4150
+Connection ~ 3450 4150
+Wire Wire Line
+ 4350 4250 3750 4250
+Wire Wire Line
+ 3750 4250 3750 3650
+Connection ~ 3750 3650
+Wire Wire Line
+ 4400 4700 4000 4700
+Wire Wire Line
+ 4000 4700 4000 3550
+Connection ~ 4000 3550
+Wire Wire Line
+ 4400 4800 3050 4800
+Connection ~ 3050 4800
+Wire Wire Line
+ 4400 4900 2500 4900
+$EndSCHEMATC
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sub b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sub
new file mode 100644
index 00000000..1442a155
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4.sub
@@ -0,0 +1,21 @@
+* Subcircuit mux4
+.subckt mux4 net-_u1-pad1_ net-_u1-pad2_ net-_u1-pad3_ net-_u1-pad4_ net-_u1-pad5_ net-_u1-pad6_ net-_u1-pad7_
+* c:\fossee\esim\library\subcircuitlibrary\mux4\mux4.cir
+.include 3_and.sub
+.include 4_OR.sub
+* u2 net-_u1-pad1_ net-_u2-pad2_ d_inverter
+* u3 net-_u1-pad2_ net-_u3-pad2_ d_inverter
+x1 net-_u2-pad2_ net-_u3-pad2_ net-_u1-pad6_ net-_x1-pad4_ 3_and
+x2 net-_u1-pad1_ net-_u3-pad2_ net-_u1-pad3_ net-_x2-pad4_ 3_and
+x3 net-_u2-pad2_ net-_u1-pad2_ net-_u1-pad4_ net-_x3-pad4_ 3_and
+x4 net-_u1-pad2_ net-_u1-pad1_ net-_u1-pad5_ net-_x4-pad4_ 3_and
+x5 net-_x1-pad4_ net-_x2-pad4_ net-_x3-pad4_ net-_x4-pad4_ net-_u1-pad7_ 4_OR
+a1 net-_u1-pad1_ net-_u2-pad2_ u2
+a2 net-_u1-pad2_ net-_u3-pad2_ u3
+* Schematic Name: d_inverter, NgSpice Name: d_inverter
+.model u2 d_inverter(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 )
+* Schematic Name: d_inverter, NgSpice Name: d_inverter
+.model u3 d_inverter(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 )
+* Control Statements
+
+.ends mux4 \ No newline at end of file
diff --git a/library/SubcircuitLibrary/bidirectional_shift_reg/mux4_Previous_Values.xml b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4_Previous_Values.xml
new file mode 100644
index 00000000..d78dca59
--- /dev/null
+++ b/library/SubcircuitLibrary/bidirectional_shift_reg/mux4_Previous_Values.xml
@@ -0,0 +1 @@
+<KicadtoNgspice><source /><model><u2 name="type">d_inverter<field1 name="Enter Rise Delay (default=1.0e-9)" /><field2 name="Enter Fall Delay (default=1.0e-9)" /><field3 name="Enter Input Load (default=1.0e-12)" /></u2><u3 name="type">d_inverter<field4 name="Enter Rise Delay (default=1.0e-9)" /><field5 name="Enter Fall Delay (default=1.0e-9)" /><field6 name="Enter Input Load (default=1.0e-12)" /></u3></model><devicemodel /><subcircuit><x1><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\3_and</field></x1><x2><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\3_and</field></x2><x3><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\3_and</field></x3><x4><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\3_and</field></x4><x5><field>C:\FOSSEE\eSim\library\SubcircuitLibrary\4_OR</field></x5></subcircuit><analysis><ac><field1 name="Lin">true</field1><field2 name="Dec">false</field2><field3 name="Oct">false</field3><field4 name="Start Frequency" /><field5 name="Stop Frequency" /><field6 name="No. of points" /><field7 name="Start Fre Combo">Hz</field7><field8 name="Stop Fre Combo">Hz</field8></ac><dc><field1 name="Source 1" /><field2 name="Start" /><field3 name="Increment" /><field4 name="Stop" /><field5 name="Operating Point">0</field5><field6 name="Start Combo">Volts or Amperes</field6><field7 name="Increment Combo">Volts or Amperes</field7><field8 name="Stop Combo">Volts or Amperes</field8><field9 name="Source 2" /><field10 name="Start" /><field11 name="Increment" /><field12 name="Stop" /><field13 name="Start Combo">Volts or Amperes</field13><field14 name="Increment Combo">Volts or Amperes</field14><field15 name="Stop Combo">Volts or Amperes</field15></dc><tran><field1 name="Start Time" /><field2 name="Step Time" /><field3 name="Stop Time" /><field4 name="Start Combo">sec</field4><field5 name="Step Combo">sec</field5><field6 name="Stop Combo">sec</field6></tran></analysis></KicadtoNgspice> \ No newline at end of file