diff --git a/Makefile b/Makefile index a169cc5..bbcd038 100644 --- a/Makefile +++ b/Makefile @@ -42,17 +42,19 @@ MAINTAINER_EMAIL = "$(shell git config user.email)" all: version lib version: - @git rev-list --tags --max-count=1 | xargs -I{} git describe --tags {} | cut -c2- > VERSION + @git describe --tags --abbrev=0 | cut -c2- > VERSION linux: lib mkdir -p lm-linux/usr/local/bin cp bin/ckt/lm lm-linux/usr/local/bin + mkdir -p lm-linux/usr/local/share/ + cp -r tech lm-linux/usr/local/share mkdir -p lm-linux/DEBIAN mkdir -p debian touch debian/control echo "Package: loom" > lm-linux/DEBIAN/control git fetch --tags --no-recurse-submodules - git rev-list --tags --max-count=1 | xargs -I{} git describe --tags {} | sed 's/v\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)/\1.\2-\3/g' | xargs -I{} echo "Version: {}" >> lm-linux/DEBIAN/control + git describe --tags --abbrev=0 | sed 's/v\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)/\1.\2-\3/g' | xargs -I{} echo "Version: {}" >> lm-linux/DEBIAN/control echo "Section: base" >> lm-linux/DEBIAN/control echo "Priority: optional" >> lm-linux/DEBIAN/control echo "Architecture: amd64" >> lm-linux/DEBIAN/control diff --git a/VERSION b/VERSION index 5712157..5eef0f1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.10.1 +0.10.2 diff --git a/bin/ckt b/bin/ckt index 05064df..31f3c14 160000 --- a/bin/ckt +++ b/bin/ckt @@ -1 +1 @@ -Subproject commit 05064dffba9fddc9aa03860d38bc27de053d0504 +Subproject commit 31f3c1407e4134dda16087b123bf59a88da10020 diff --git a/lib/interpret_phy b/lib/interpret_phy index 84ae28d..f968a51 160000 --- a/lib/interpret_phy +++ b/lib/interpret_phy @@ -1 +1 @@ -Subproject commit 84ae28d6aa8cefde0384a54252aa20dee4f6dfb6 +Subproject commit f968a518b6ab273b82f9729956f8450fc989e6da diff --git a/lib/interpret_sch b/lib/interpret_sch index 15287d9..415acbc 160000 --- a/lib/interpret_sch +++ b/lib/interpret_sch @@ -1 +1 @@ -Subproject commit 15287d9e932e7892b3a9312f7d4935528b2a3a8b +Subproject commit 415acbc6992ee0a6d59497e18c70a9b7e128c50e diff --git a/lib/phy b/lib/phy index 80d48c0..46a3d7c 160000 --- a/lib/phy +++ b/lib/phy @@ -1 +1 @@ -Subproject commit 80d48c045d76ff7dc82feb2efe4f8eee0bdde258 +Subproject commit 46a3d7cea9096e0814f3557bbcd9ae1bde63831c diff --git a/lib/prs b/lib/prs index 51a7f97..f031601 160000 --- a/lib/prs +++ b/lib/prs @@ -1 +1 @@ -Subproject commit 51a7f97e7a4f64fe265b2b7acf83e665b0845333 +Subproject commit f03160151ed55c5f41f4a6810501f60a57e14781 diff --git a/lib/sch b/lib/sch index c017621..db9b9ef 160000 --- a/lib/sch +++ b/lib/sch @@ -1 +1 @@ -Subproject commit c017621a69b74de46c71b4b3ee755bdcb054fd45 +Subproject commit db9b9ef007d1915cd657b148cb5cd2ea71f5cb1e diff --git a/tech/floret.py b/tech/loom.py old mode 100644 new mode 100755 similarity index 62% rename from tech/floret.py rename to tech/loom.py index dd5c005..b0fbe28 --- a/tech/floret.py +++ b/tech/loom.py @@ -9,6 +9,9 @@ def dbunit(value): print(f"dbunit({value})") +def scale(value): + print(f"scale({value})") + def paint(name, major, minor): global Layers Layers += 1 @@ -21,25 +24,28 @@ def width(layer, value): def fill(layer): print(f"fill({layer})") -def nmos(name, polyOverhang): +def nmos(variant, name, stack, exclude=[], bins=[]): global Models Models += 1 - print(f"nmos(\"{name}\", {polyOverhang}) # {-Models}") + print(f"nmos(\"{variant}\", \"{name}\", {stack}, {exclude}, {bins}) # {-Models}") return -Models -def pmos(name, polyOverhang): +def pmos(variant, name, stack, exclude=[], bins=[]): global Models Models += 1 - print(f"pmos(\"{name}\", {polyOverhang}) # {-Models}") + print(f"pmos(\"{variant}\", \"{name}\", {stack}, {exclude}, {bins}) # {-Models}") return -Models -def subst(model, draw, label, pin, overhangX, overhangY): - print(f"subst({model}, {draw}, {label}, {pin}, {overhangX}, {overhangY})") +def subst(draw, label, pin): + print(f"subst({draw}, {label}, {pin})") + +def well(draw, label, pin): + print(f"well({draw}, {label}, {pin})") -def via(draw, label, pin, downLevel, upLevel, downLo, downHi, upLo, upHi): +def via(level, downLevel, upLevel): global Vias Vias += 1 - print(f"via({draw}, {label}, {pin}, {downLevel}, {upLevel}, {downLo}, {downHi}, {upLo}, {upHi}) # {Vias-1}") + print(f"via({level}, {downLevel}, {upLevel}) # {Vias-1}") return Vias-1 def route(draw, label, pin): @@ -54,6 +60,12 @@ def spacing(left, right, value): print(f"spacing({left}, {right}, {value}) # {-Rules}") return -Rules +def enclosing(left, right, lo, hi): + global Rules + Rules += 1 + print(f"spacing({left}, {right}, {lo}, {hi}) # {-Rules}") + return -Rules + def b_and(left, right): global Rules Rules += 1 diff --git a/tech/sky130.py b/tech/sky130/tech.py old mode 100644 new mode 100755 similarity index 99% rename from tech/sky130.py rename to tech/sky130/tech.py index baa8628..b94992a --- a/tech/sky130.py +++ b/tech/sky130/tech.py @@ -1,4 +1,6 @@ -from floret import * +#!/usr/bin/python3 + +from loom import * AL = 0 # do not change CU = 1 # do not change @@ -271,6 +273,7 @@ fill(nwell_label) fill(dnwell) fill(hvtp) +fill(lvtn) fill(nsdm) fill(psdm) fill(pwell_pin) @@ -321,6 +324,7 @@ spacing(psdm, psdm, 76) spacing(diff, diff, 54) spacing(hvtp, hvtp, 76) +spacing(lvtn, lvtn, 76) spacing(poly, poly, 42) spacing(licon1, licon1, 34) spacing(li1, li1, 34)