Skip to content

Commit

Permalink
Merge pull request #95 from gdsfactory/improve_klayout_tech
Browse files Browse the repository at this point in the history
improve technology
  • Loading branch information
joamatab authored May 29, 2024
2 parents 52dcb93 + 63b8526 commit e696bbb
Show file tree
Hide file tree
Showing 6 changed files with 183 additions and 136 deletions.
1 change: 1 addition & 0 deletions sky130/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class Path:
lyp_yaml = module_path / "klayout" / "layers.yaml"
libs = module_path / "sky130A"
sparameters = module_path / "sparameters"
klayout = module_path / "klayout"

libs_tech = libs / "libs.tech"
libs_ref = libs / "libs.ref"
Expand Down
62 changes: 62 additions & 0 deletions sky130/klayout/d25/sky130.lyd25
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<klayout-macro>
<description/>
<version/>
<category>d25</category>
<prolog/>
<epilog/>
<doc/>
<autorun>false</autorun>
<autorun-early>false</autorun-early>
<priority>0</priority>
<shortcut/>
<show-in-menu>true</show-in-menu>
<group-name>d25_scripts</group-name>
<menu-path>tools_menu.d25.end</menu-path>
<interpreter>dsl</interpreter>
<dsl-interpreter-name>d25-dsl-xml</dsl-interpreter-name>
<text>

poly = input(66, 20)
dnwell = input(64, 18)
nwell = input(64, 20)
pwell = input(19, 44)
nsdm = input(93, 44)
hvtp = input(78, 44)
licon1 = input(66, 44)
li1 = input(67, 20)
mcon = input(67, 44)
met1 = input(68, 20)
via1 = input(68, 44)
met2 = input(69, 20)
via2 = input(69, 44)
met3 = input(70, 20)
via3 = input(70, 44)
met4 = input(71, 20)
via4 = input(71, 44)
met5 = input(72, 20)



z(poly, zstart: 0.0, zstop: 0.2, name: 'poly: psi 66/20', )
z(dnwell, zstart: -1.2, zstop: 0.0, name: 'dnwell: n 64/18', )
z(nwell, zstart: -0.1, zstop: 0.0, name: 'nwell: n 64/20', )
z(pwell, zstart: -0.7, zstop: 0.0, name: 'pwell: p 19/44', )
z(nsdm, zstart: -0.1, zstop: 0.0, name: 'nsdm: n 93/44', )
z(hvtp, zstart: -0.1, zstop: 0.0, name: 'hvtp: p 78/44', )
z(licon1, zstart: 0.0, zstop: 0.9, name: 'licon1: metal 66/44', )
z(li1, zstart: 0.9, zstop: 1.0, name: 'li1: metal 67/20', )
z(mcon, zstart: 1.0, zstop: 1.4, name: 'mcon: metal 67/44', )
z(met1, zstart: 1.4, zstop: 1.7, name: 'met1: metal 68/20', )
z(via1, zstart: 1.7, zstop: 2.0, name: 'via1: metal 68/44', )
z(met2, zstart: 2.0, zstop: 2.4, name: 'met2: metal 69/20', )
z(via2, zstart: 2.4, zstop: 2.8, name: 'via2: metal 69/44', )
z(met3, zstart: 2.8, zstop: 3.6, name: 'met3: metal 70/20', )
z(via3, zstart: 3.6, zstop: 4.0, name: 'via3: metal 70/44', )
z(met4, zstart: 4.0, zstop: 4.9, name: 'met4: metal 71/20', )
z(via4, zstart: 4.9, zstop: 5.4, name: 'via4: metal 71/44', )
z(met5, zstart: 5.4, zstop: 6.6, name: 'met5: metal 72/20', )


</text>
</klayout-macro>
19 changes: 18 additions & 1 deletion sky130/klayout/layers.lyp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,23 @@
<name>pwelldrawing_m 64/44</name>
<source>64/44@1</source>
</properties>
<properties>
<frame-color>#0000ff</frame-color>
<fill-color>#0000ff</fill-color>
<frame-brightness>0</frame-brightness>
<fill-brightness>0</fill-brightness>
<dither-pattern>I1</dither-pattern>
<line-style/>
<valid>true</valid>
<visible>true</visible>
<transparent>false</transparent>
<width/>
<marked>false</marked>
<xfill>false</xfill>
<animation>0</animation>
<name>pwelld 19/44</name>
<source>19/44@1</source>
</properties>
<properties>
<frame-color>#ffbff2</frame-color>
<fill-color>#ffbff2</fill-color>
Expand Down Expand Up @@ -1102,7 +1119,7 @@
<marked>false</marked>
<xfill>false</xfill>
<animation>0</animation>
<name>met1drawing_m 68/20</name>
<name>met1 68/20</name>
<source>68/20@1</source>
</properties>
<properties>
Expand Down
9 changes: 6 additions & 3 deletions sky130/klayout/layers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ LayerViews:
hatch_pattern: hollow
width: 1
color: "cyan"
pwelld:
layer: [19, 44]
layer_in_name: true
hatch_pattern: hollow
color: "blue"
pwellpin_m:
layer: [122, 16]
layer_in_name: true
Expand Down Expand Up @@ -310,14 +315,12 @@ LayerViews:
npcdrawing_m:
layer: [95, 20]
layer_in_name: true

width: 1
color: "#bf4026"
li1drawing_m:
layer: [67, 20]
layer_in_name: true
hatch_pattern: hollow

width: 1
color: "#ffe6bf"
li1pin_m:
Expand Down Expand Up @@ -402,7 +405,7 @@ LayerViews:
hatch_pattern: hollow
width: 1
color: "#ccccd9"
met1drawing_m:
met1:
layer: [68, 20]
layer_in_name: true
width: 1
Expand Down
88 changes: 15 additions & 73 deletions sky130/klayout/tech.lyt
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
<description/>
<group/>
<dbu>0.001</dbu>
<default-grids/>
<base-path/>
<original-base-path>/home/jmatres/sky130/sky130/klayout/sky130</original-base-path>
<original-base-path/>
<layer-properties_file>layers.lyp</layer-properties_file>
<add-other-layers>true</add-other-layers>
<reader-options>
Expand Down Expand Up @@ -70,6 +71,7 @@
<read-lef-with-def>true</read-lef-with-def>
<macro-resolution-mode>default</macro-resolution-mode>
<separate-groups>false</separate-groups>
<joined-paths>false</joined-paths>
<map-file/>
</lefdef>
<mebes>
Expand Down Expand Up @@ -115,8 +117,7 @@
<create-other-layers>true</create-other-layers>
<keep-layer-names>false</keep-layer-names>
<merge>true</merge>
<lib-paths>
</lib-paths>
<lib-paths/>
</mag>
</reader-options>
<writer-options>
Expand All @@ -134,8 +135,8 @@
</gds2>
<oasis>
<compression-level>2</compression-level>
<write-cblocks>false</write-cblocks>
<strict-mode>false</strict-mode>
<write-cblocks>true</write-cblocks>
<strict-mode>true</strict-mode>
<write-std-properties>1</write-std-properties>
<subst-char>*</subst-char>
<permissive>false</permissive>
Expand All @@ -153,74 +154,15 @@
<write-timestamp>true</write-timestamp>
</mag>
</writer-options>
<d25>
<src># Provide z stack information here
#
# Each line is one layer. The specification consists of a layer specification, a colon and arguments.
# The arguments are named (like "x=...") or in serial. Parameters are separated by comma or blanks.
# Named arguments are:
#
# zstart The lower z position of the extruded layer in µm
# zstop The upper z position of the extruded layer in µm
# height The height of the extruded layer in µm
#
# 'height', 'zstart' and 'zstop' can be used in any combination. If no value is given for 'zstart',
# the upper level of the previous layer will be used.
#
# If a single unnamed parameter is given, it corresponds to 'height'. Two parameters correspond to
# 'zstart' and 'zstop'.
#
# Examples:
# 1: 0.5 1.5 # extrude layer 1/0 from 0.5 to 1.5 vertically
# 1/0: 0.5 1.5 # same with explicit datatype
# 1: zstop=1.5, zstart=0.5 # same with named parameters
# 1: height=1.0, zstop=1.5 # same with z stop minus height
# 1: 1.0 zstop=1.5 # same with height as unnamed parameter
#
# VARIABLES
#
# You can declare variables with:
# var name = value
#
# You can use variables inside numeric expressions.
# Example:
# var hmetal = 0.48
# 7/0: 0.5 0.5+hmetal*2 # 2x thick metal
#
# You cannot use variables inside layer specifications currently.
#
# CONDITIONALS
#
# You can enable or disable branches of the table using 'if', 'else', 'elseif' and 'end':
# Example:
# var thick_m1 = true
# if thickm1
# 1: 0.5 1.5
# else
# 1: 0.5 1.2
# end
66/20: 0.0 0.18
64/18: -1.2 0.0
64/20: -0.12 0.0
19/44: -0.7 0.0
93/44: -0.12 0.0
78/44: -0.12 0.0
66/44: 0.0 0.9361
67/20: 0.9361 1.0361
67/44: 1.0361 1.3761
68/20: 1.3761 1.7361
68/44: 1.7361 2.0061
69/20: 2.0061 2.3661
69/44: 2.3661 2.7861
70/20: 2.7861 3.6311
70/44: 3.6311 4.0211
71/20: 4.0211 4.866099999999999
71/44: 4.866099999999999 5.371099999999999
72/20: 5.371099999999999 6.631099999999999


</src>
</d25>
<connectivity>
<connection>met1,via,met2</connection>
<connection>met2,via2,met3</connection>
<connection>met3,via3,met4</connection>
<symbols>met2='69/20'</symbols>
<symbols>via='68/44'</symbols>
<symbols>via3='70/44'</symbols>
<symbols>via2='69/44'</symbols>
<symbols>met3='70/20'</symbols>
<symbols>met4='71/20'</symbols>
</connectivity>
</technology>
Loading

0 comments on commit e696bbb

Please sign in to comment.