Updating metal connectivity for BCDLite
diff --git a/BCDLite/klayout/lvs/rule_decks/devices_connections.lvs b/BCDLite/klayout/lvs/rule_decks/devices_connections.lvs
index 4d5e90d..ea0f769 100644
--- a/BCDLite/klayout/lvs/rule_decks/devices_connections.lvs
+++ b/BCDLite/klayout/lvs/rule_decks/devices_connections.lvs
@@ -44,17 +44,21 @@
connect(metal1, via1)
connect(via1, metal2_ncap)
if METAL_LEVEL != '2LM'
- connect(metal2_ncap, via2)
- connect(via2, metal3_ncap)
+ connect(metal2_ncap, via2_ncap)
+ connect(via2_ncap, metal3_ncap)
+ connect(via2_cap, fusetop)
if METAL_LEVEL != '3LM'
- connect(metal3_ncap, via3)
- connect(via3, metal4_ncap)
+ connect(metal3_ncap, via3_ncap)
+ connect(via3_ncap, metal4_ncap)
+ connect(via3_cap, fusetop)
if METAL_LEVEL != '4LM'
- connect(metal4_ncap, via4)
- connect(via4, metal5_ncap)
+ connect(metal4_ncap, via4_ncap)
+ connect(via4_ncap, metal5_ncap)
+ connect(via4_cap, fusetop)
if METAL_LEVEL != '5LM'
- connect(metal5_ncap, via5)
- connect(via5, metaltop)
+ connect(metal5_ncap, via5_ncap)
+ connect(via5_ncap, metaltop)
+ connect(via5_cap, fusetop)
end
end
end
diff --git a/BCDLite/klayout/lvs/rule_decks/general_derivations.lvs b/BCDLite/klayout/lvs/rule_decks/general_derivations.lvs
index d6b0ec6..5626997 100644
--- a/BCDLite/klayout/lvs/rule_decks/general_derivations.lvs
+++ b/BCDLite/klayout/lvs/rule_decks/general_derivations.lvs
@@ -54,13 +54,24 @@
# metal layers derivation
-metal2_ncap = metal2.not(cap_mk).not(mom_m2_mk)
+metal2_ncap = metal2.not(mom_m2_mk)
if METAL_LEVEL != '2LM'
- metal3_ncap = metal3.not(cap_mk).not(mom_m3_mk)
+ metal3_ncap = metal3.not(mom_m3_mk)
if METAL_LEVEL != '3LM'
- metal4_ncap = metal4.not(cap_mk).not(mom_m4_mk)
- metal5_ncap = metal5.not(cap_mk).not(mom_m5_mk) if METAL_LEVEL != '4LM'
+ metal4_ncap = metal4.not(mom_m4_mk)
+ metal5_ncap = metal5.not(mom_m5_mk) if METAL_LEVEL != '4LM'
end
end
+
+
+# Splitting vias into cap-vias(connected to fusetop), ncap-vias(connected to metals)
+via2_ncap = via2.not(fusetop)
+via2_cap = via2.and(fusetop)
+via3_ncap = via3.not(fusetop)
+via3_cap = via3.and(fusetop)
+via4_ncap = via4.not(fusetop)
+via4_cap = via4.and(fusetop)
+via5_ncap = via5.not(fusetop)
+via5_cap = via5.and(fusetop)
\ No newline at end of file