Delete lvs_sky130.lylvs
diff --git a/sky130/klayout/lvs_sky130.lylvs b/sky130/klayout/lvs_sky130.lylvs
deleted file mode 100644
index 0380fd5..0000000
--- a/sky130/klayout/lvs_sky130.lylvs
+++ /dev/null
@@ -1,352 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<klayout-macro>

- <description/>

- <version/>

- <category>lvs</category>

- <prolog/>

- <epilog/>

- <doc/>

- <autorun>false</autorun>

- <autorun-early>false</autorun-early>

- <shortcut/>

- <show-in-menu>true</show-in-menu>

- <group-name>lvs_scripts</group-name>

- <menu-path>tools_menu.lvs.end</menu-path>

- <interpreter>dsl</interpreter>

- <dsl-interpreter-name>lvs-dsl-xml</dsl-interpreter-name>

- <text>#

-# Extraction for SKY130

-#

-############################

-

-# optionnal for a batch launch :   klayout -b -rd input=my_layout.gds -rd report=my_report.lyrdb -rd schematic=reference_netlist.cir -rd target_netlist=extracted_netlist.cir -r sky130.lvs

-if $input

-  source($input)

-end

-

-if $report

-  report($report)

-else

-  report_lvs("lvs_report.lvsdb")

-end

-

-

-if $schematic

-#reference netlist

-  schematic($schematic)

-else 

-  schematic("DFFRAM.spice") 

-  #schematic("digital_pll.spice") 

-  #schematic("sky130_fd_sc_hd__conb_1.cdl")

-  #schematic("sky130_fd_sc_hd__diode_2.spice")

-  #schematic("sky130_fd_sc_hd__nand2_1.spice")

-  #schematic("spm.spice") 

-end 

-

-# true: use net names instead of numbers

-# false: use numbers for nets

-spice_with_net_names = true

-

-# true: put in comments with details

-# false: no comments

-spice_with_comments = false

-

-

-

-if $target_netlist

-  target_netlist($target_netlist)

-else

-   # target_netlist("netlist.cir", write_spice(spice_with_net_names, spice_with_comments), "The netlist comment goes here.") 

-   target_netlist(File.join(File.dirname(RBA::CellView::active.filename), source.cell_name+"_extracted.cir"),write_spice(spice_with_net_names, spice_with_comments),"Extracted by KLayout on : #{Time.now.strftime("%d/%m/%Y %H:%M")}")

-end

-

-#write_spice(spice_with_net_names, spice_with_comments)

-

-# Hierarchical mode

-deep

-# Use 4 CPU cores

-threads(4)

-# Print details

-verbose(true)

-

-

-# layers definitions

-########################

-BOUND  = polygons(235, 4)

-DNWELL  = polygons(64, 18)

-PWRES  = polygons(64, 13)

-NWELL  = polygons(64, 20)

-NWELLTXT  = input(64, 5)

-NWELLPIN  = polygons(64, 16)

-SUBTXT  = input(122, 5)

-SUBPIN  = input(64, 59)

-DIFF  = polygons(65, 20)

-TAP  = polygons(65, 44)

-PSDM  = polygons(94, 20)

-NSDM  = polygons(93, 44)

-LVTN  = polygons(125, 44)

-HVTR  = polygons(18, 20)

-HVTP  = polygons(78, 44)

-SONOS  = polygons(80, 20)

-COREID  = polygons(81, 2)

-STDCELL  = polygons(81, 4)

-NPNID  = polygons(82, 20)

-PNPID  = polygons(82, 44)

-RPM  = polygons(86, 20)

-URPM  = polygons(79, 20)

-LDNTM  = polygons(11, 44)

-HVNTM  = polygons(125, 20)

-POLY  = polygons(66, 20)

-POLYTXT  = input(66, 5)

-POLYPIN  = polygons(66, 16)

-POLY_SHORT = polygons(66,15)

-HVI  = polygons(75, 20)

-LICON  = polygons(66, 44)

-NPC  = polygons(95, 20)

-DIFFRES  = polygons(65, 13)

-POLYRES  = polygons(66, 13)

-POLYSHO  = polygons(66, 15)

-DIODE  = polygons(81, 23)

-LI  = polygons(67, 20)

-LITXT  = input(67, 5)

-LIPIN  = polygons(67, 16)

-LIRES  = polygons(67, 13)

-MCON  = polygons(67, 44)

-MET1  = polygons(68, 20)

-MET1TXT  = input(68, 5)

-MET1PIN  = polygons(68, 16)

-MET1RES  = polygons(68, 13)

-VIA1  = polygons(68, 44)

-MET2  = polygons(69, 20)

-MET2TXT  = input(69, 5)

-MET2PIN  = polygons(69, 16)

-MET2RES  = polygons(69, 13)

-VIA2  = polygons(69, 44)

-MET3  = polygons(70, 20)

-MET3TXT  = input(70, 5)

-MET3PIN  = polygons(70, 16)

-MET3RES  = polygons(70, 13)

-VIA3  = polygons(70, 44)

-MET4  = polygons(71, 20)

-MET4TXT  = input(71, 5)

-MET4PIN  = polygons(71, 16)

-MET4RES  = polygons(71, 13)

-VIA4  = polygons(71, 44)

-MET5  = polygons(72, 20)

-MET5TXT  = input(72, 5)

-MET5PIN  = polygons(72, 16)

-MET5RES  = polygons(72, 13)

-RDL  = polygons(74, 20)

-RDLTXT  = input(74, 5)

-RDLPIN  = polygons(74, 16)

-GLASS  = polygons(76, 20)

-CAPM  = polygons(89, 44)

-CAPM2  = polygons(97, 44)

-LOWTAPD  = polygons(81, 14)

-FILLOBSM1  = polygons(62, 24)

-FILLOBSM2  = polygons(105, 52)

-FILLOBSM3  = polygons(107, 24)

-FILLOBSM4  = polygons(112, 4)

-NCM = polygons(92, 44)

-PWELLPIN = polygons(122,16)

-PWELLTXT = polygons(64,59)

-

-# Bulk layer for terminal provisioning

-SUB = polygons(236, 0)

-# SUB = polygon_layer

-

-POLY_SHORT_RES = POLY &amp; POLY_SHORT

-POLY = POLY - POLY_SHORT

-

-# Computed layers

-PDIFF = DIFF &amp; NWELL &amp; PSDM

-NTAP = TAP &amp; NWELL &amp; NSDM

-PGATE = PDIFF &amp; POLY

-PSD = PDIFF - PGATE

-STD_PGATE = PGATE - HVTP - NCM - HVI

-HVT_PGATE = PGATE &amp; HVTP - NCM - HVI

-HV5_PGATE = PGATE - HVTP - NCM &amp; HVI

-  

-NDIFF = DIFF - NWELL &amp; NSDM

-PTAP = TAP - NWELL &amp; PSDM

-NGATE = NDIFF &amp; POLY

-NSD = NDIFF - NGATE

-STD_NGATE = NGATE - NCM - LVTN - HVI

-LVT_NGATE = NGATE - NCM &amp; LVTN - HVI

-HV5_NGATE = NGATE - NCM - LVTN &amp; HVI

-HV5NA_NGATE = NGATE - NCM &amp; LVTN &amp; HVI

-

-# drawing to physical

-device_scaling(1000000)

-

-# PMOS transistor device extraction

-extract_devices(mos4("sky130_fd_pr__pfet_01v8"), { "SD" => PSD, "G" => STD_PGATE, "tS" => PSD, "tD" => PSD, "tG" => POLY, "W" => NWELL })

-extract_devices(mos4("sky130_fd_pr__pfet_01v8_hvt"), { "SD" => PSD, "G" => HVT_PGATE, "tS" => PSD, "tD" => PSD, "tG" => POLY, "W" => NWELL })

-extract_devices(mos4("sky130_fd_pr__pfet_g5v0d10v5"), { "SD" => PSD, "G" => HV5_PGATE, "tS" => PSD, "tD" => PSD, "tG" => POLY, "W" => NWELL })

-

-#extract_devices(mos4("pfet_01v8"), { "SD" => PSD, "G" => STD_PGATE, "tS" => PSD, "tD" => PSD, "tG" => POLY, "W" => NWELL })

-#extract_devices(mos4("pfet_01v8_hvt"), { "SD" => PSD, "G" => HVT_PGATE, "tS" => PSD, "tD" => PSD, "tG" => POLY, "W" => NWELL })

-#extract_devices(mos4("pfet_g5v0d10v5"), { "SD" => PSD, "G" => HV5_PGATE, "tS" => PSD, "tD" => PSD, "tG" => POLY, "W" => NWELL })

-

-# NMOS transistor device extraction

-extract_devices(mos4("sky130_fd_pr__nfet_01v8"), { "SD" => NSD, "G" => STD_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-extract_devices(mos4("sky130_fd_pr__nfet_01v8_lvt"), { "SD" => NSD, "G" => LVT_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-extract_devices(mos4("sky130_fd_pr__nfet_g5v0d10v5"), { "SD" => NSD, "G" => HV5_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-extract_devices(mos4("sky130_fd_pr__nfet_01v8_nvt"), { "SD" => NSD, "G" => HV5NA_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-

-#extract_devices(mos4("nfet_01v8"), { "SD" => NSD, "G" => STD_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-#extract_devices(mos4("nfet_01v8_lvt"), { "SD" => NSD, "G" => LVT_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-#extract_devices(mos4("nfet_g5v0d10v5"), { "SD" => NSD, "G" => HV5_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-#extract_devices(mos4("nfet_01v8_nvt"), { "SD" => NSD, "G" => HV5NA_NGATE, "tS" => NSD, "tD" => NSD, "tG" => POLY, "W" => SUB })

-

-# Resistor device extraction 

-sheet_rho=0

-#POLY_SHORT_RES = POLY &amp; POLY_SHORT

-#POLY_SHORT_T = POLY - POLY_SHORT_RES

-#POLY_TA = LI

-#POLY_TB = LI

-#POLY = POLY - POLY_SHORT

-

-#POLY.output("This is the poly short res")

-#POLY_SHORT_T.output("This is the poly short terminals")

-#POLY_TB.output("This is the poly short terminals")

-

-# tA, tB whether they are POLY, LI, MET1 shorting problem. If there are no terminals, the labels are not recognized. 

-#extract_devices(resistor("sky130_fd_pr__res_generic_po", sheet_rho), { "R" => POLY_SHORT_RES, "C" => POLY, "tA" => POLY_TA, "tB" =>POLY_TB})

-extract_devices(resistor("sky130_fd_pr__res_generic_po", sheet_rho), { "R" => POLY_SHORT_RES, "C" => POLY})

-#extract_devices(resistor_with_bulk("sky130_fd_pr__res_generic_po", sheet_rho), { "R" => POLY, "C" => LI ,"tA" => MET1PIN, "tB" =>LIPIN, "tW"=> LI, "W"=>LI })

-

-

-

-# Diode device extraction

-

-MOS_DIFF = DIFF.overlapping(POLY)

-DIODE_DIFF = DIFF - MOS_DIFF

-

-extract_devices(diode("sky130_fd_pr__diode_pw2nd_05v5"), { "P" => DIODE_DIFF, "N" => NSD, "tA" => LI, "tC" => SUB })

-#extract_devices(diode("sky130_fd_pr__diode_pw2nd_05v5"), { "P" => DIFF, "N" => NSDM })

-

-

-# Define connectivity for netlist extraction

-

-

-# Inter-layer

-connect(SUB,  PTAP)

-connect(NWELL,  NTAP)

-connect(LICON,   PTAP)

-connect(LICON,   NTAP)

-connect(PSD,    LICON)

-connect(NSD,    LICON)

-connect(POLY,   LICON)

-connect(LICON,   LI)

-connect(LI, MCON)

-connect(MCON,   MET1)

-connect(MET1,VIA1)

-connect(VIA1,   MET2)

-connect(MET2, VIA2)

-connect(VIA2,   MET3)

-connect(MET3, VIA3)

-connect(VIA3,   MET4)

-connect(MET4, VIA4)

-connect(VIA4,   MET5)

-# Attaching labels

-connect(SUB, SUBTXT)

-connect(SUB, SUBPIN)

-connect(NWELL, NWELLTXT)

-connect(POLY, POLYTXT)

-#connect(POLY, POLY_SHORT_T)

-connect(LI, LITXT)

-connect(MET1, MET1TXT)

-connect(MET1, MET1PIN)

-connect(MET1PIN, MET1TXT)

-connect(MET2, MET2TXT)

-connect(MET3, MET3TXT)

-connect(MET4, MET4TXT)

-connect(MET5, MET5TXT)

-#connect(NWELLPIN, MCON)

-connect(PWELLPIN, MCON)

-connect(PWELLPIN, PWELLTXT)

-

-# Global

-connect_global(SUB, "VNB")

-

-# Actually performs the extraction

-netlist # ... not really required

-

-# Flatten cells which are present in one netlist only

-

-align

-

-# SIMPLIFICATION of the netlist

-netlist.make_top_level_pins

-#netlist.combine_devices

-#netlist.purge

-netlist.purge_nets

-#netlist.simplify

-#puts netlist.to_s

-#schematic.simplify

-

-# Tolerances for the devices extracted parameters

-#  tolerance(device_class_name, parameter_name [, :absolute =&amp;gt; absolute_tolerance] [, :relative =&amp;gt; relative_tolerance])

-tolerance("pfet_01v8", "W", :absolute => 1.nm, :relative => 0.001)

-tolerance("pfet_01v8", "L", :absolute => 1.nm, :relative => 0.001)

-tolerance("pfet_01v8_hvt", "W", :absolute => 1.nm, :relative => 0.001)

-tolerance("pfet_01v8_hvt", "L", :absolute => 1.nm, :relative => 0.001)

-tolerance("nfet_01v8", "W", :absolute => 1.nm, :relative => 0.001)

-tolerance("nfet_01v8", "L", :absolute => 1.nm, :relative => 0.001)

-tolerance("nfet_01v8_lvt", "W", :absolute => 1.nm, :relative => 0.001)

-tolerance("nfet_01v8_lvt", "L", :absolute => 1.nm, :relative => 0.001)

-

-# NangateOpenCellLibrary Digital gates input equivalence :

-equivalent_pins("*AND2_1", "A", "B")

-equivalent_pins("*AND2_2", "A", "B")

-equivalent_pins("*AND2_4", "A", "B")

-equivalent_pins("*AND3_1", "A", "B", "C")

-equivalent_pins("*AND3_2", "A", "B", "C")

-equivalent_pins("*AND3_4", "A", "B", "C")

-equivalent_pins("*AND4_1", "A", "B", "C", "D")

-equivalent_pins("*AND4_2", "A", "B", "C", "D")

-equivalent_pins("*AND4_4", "A", "B", "C", "D")

-equivalent_pins("*NAND2_1", "A", "B")

-equivalent_pins("*NAND2_2", "A", "B")

-equivalent_pins("*NAND2_4", "A", "B")

-equivalent_pins("*NAND3_1", "A", "B", "C")

-equivalent_pins("*NAND3_2", "A", "B", "C")

-equivalent_pins("*NAND3_4", "A", "B", "C")

-equivalent_pins("*NAND4_X1", "A", "B", "C", "D")

-equivalent_pins("*NAND4_2", "A", "B", "C", "D")

-equivalent_pins("*NAND4_4", "A", "B", "C", "D")

-equivalent_pins("*OR2_1", "A", "B")

-equivalent_pins("*OR2_2", "A", "B")

-equivalent_pins("*OR2_4", "A", "B")

-equivalent_pins("*OR3_1", "A", "B", "C")

-equivalent_pins("*OR3_2", "A", "B", "C")

-equivalent_pins("*OR3_4", "A", "B", "C")

-equivalent_pins("*OR4_1", "A", "B", "C", "D")

-equivalent_pins("*OR4_2", "A", "B", "C", "D")

-equivalent_pins("*OR4_4", "A", "B", "C", "D")

-equivalent_pins("*NOR2_1", "A", "B")

-equivalent_pins("*NOR2_2", "A", "B")

-equivalent_pins("*NOR2_4", "A", "B")

-equivalent_pins("*NOR3_1", "A", "B", "C")

-equivalent_pins("*NOR3_2", "A", "B", "C")

-equivalent_pins("*NOR3_4", "A", "B", "C")

-equivalent_pins("*NOR4_1", "A", "B", "C", "D")

-equivalent_pins("*NOR4_2", "A", "B", "C", "D")

-equivalent_pins("*NOR4_4", "A", "B", "C", "D")

-equivalent_pins("*XOR2_1", "A", "B")

-equivalent_pins("*XOR2_2", "A", "B")

-equivalent_pins("*XNOR2_1", "A", "B")

-equivalent_pins("*XNOR2_2", "A", "B")

-

-#max_res(1000000)

-#min_caps(1e-15)

-

-#compare 

-if ! compare 

-  #raise "ERROR : Netlists don't match"

-  puts "ERROR : Netlists don't match"

-else

-  puts "INFO : Congratulations! Netlists match."

-end</text>

-</klayout-macro>