Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

improve technology #95

Merged
merged 1 commit into from
May 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading