From a237292b8c20fba6112403367c74719140cbbed9 Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Sat, 9 Nov 2024 16:13:10 -0500 Subject: [PATCH 1/5] fixing versioning --- Makefile | 4 ++-- VERSION | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index a169cc5..dc65e84 100644 --- a/Makefile +++ b/Makefile @@ -42,7 +42,7 @@ 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 @@ -52,7 +52,7 @@ linux: lib 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 From ce1cec648886ccd8bf328d3c5b23b5a6d341632b Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Sun, 10 Nov 2024 14:53:08 -0500 Subject: [PATCH 2/5] a few fixes in layout, adding a few new DRC rules --- bin/ckt | 2 +- lib/phy | 2 +- lib/sch | 2 +- tech/sky130.py | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/ckt b/bin/ckt index 05064df..fba53c6 160000 --- a/bin/ckt +++ b/bin/ckt @@ -1 +1 @@ -Subproject commit 05064dffba9fddc9aa03860d38bc27de053d0504 +Subproject commit fba53c6523968b2cd750e84161257ec19cb29df0 diff --git a/lib/phy b/lib/phy index 80d48c0..6fac305 160000 --- a/lib/phy +++ b/lib/phy @@ -1 +1 @@ -Subproject commit 80d48c045d76ff7dc82feb2efe4f8eee0bdde258 +Subproject commit 6fac305154b0119cd0eadbf1d9c7e0ea1be8ffa7 diff --git a/lib/sch b/lib/sch index c017621..3043b55 160000 --- a/lib/sch +++ b/lib/sch @@ -1 +1 @@ -Subproject commit c017621a69b74de46c71b4b3ee755bdcb054fd45 +Subproject commit 3043b55eb3aa719bd4655d039c3aeb9c353d1d64 diff --git a/tech/sky130.py b/tech/sky130.py index baa8628..178bb70 100644 --- a/tech/sky130.py +++ b/tech/sky130.py @@ -271,6 +271,7 @@ fill(nwell_label) fill(dnwell) fill(hvtp) +fill(lvtn) fill(nsdm) fill(psdm) fill(pwell_pin) @@ -321,6 +322,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) From 167bbc479a0a80d73614659ca1ea614840c43955 Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Mon, 11 Nov 2024 09:14:47 -0500 Subject: [PATCH 3/5] working on DRC rule infrastructure --- lib/phy | 2 +- lib/prs | 2 +- lib/sch | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/phy b/lib/phy index 6fac305..2ee3ae3 160000 --- a/lib/phy +++ b/lib/phy @@ -1 +1 @@ -Subproject commit 6fac305154b0119cd0eadbf1d9c7e0ea1be8ffa7 +Subproject commit 2ee3ae3955ba3dbd5b51c10d8939cc750d43c760 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 3043b55..1c936db 160000 --- a/lib/sch +++ b/lib/sch @@ -1 +1 @@ -Subproject commit 3043b55eb3aa719bd4655d039c3aeb9c353d1d64 +Subproject commit 1c936db3aef646d047a3db0cb820617859a63ce8 From 79888af7bee6b0ff6df00e7de4c247b2187b91ea Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Mon, 11 Nov 2024 17:16:42 -0500 Subject: [PATCH 4/5] loading polygons, cell import, tech management --- Makefile | 2 ++ bin/ckt | 2 +- lib/interpret_phy | 2 +- lib/interpret_sch | 2 +- lib/phy | 2 +- tech/{floret.py => loom.py} | 28 ++++++++++++++++++++-------- tech/{sky130.py => sky130/tech.py} | 4 +++- 7 files changed, 29 insertions(+), 13 deletions(-) rename tech/{floret.py => loom.py} (62%) mode change 100644 => 100755 rename tech/{sky130.py => sky130/tech.py} (99%) mode change 100644 => 100755 diff --git a/Makefile b/Makefile index dc65e84..bbcd038 100644 --- a/Makefile +++ b/Makefile @@ -47,6 +47,8 @@ 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 diff --git a/bin/ckt b/bin/ckt index fba53c6..9ae64a0 160000 --- a/bin/ckt +++ b/bin/ckt @@ -1 +1 @@ -Subproject commit fba53c6523968b2cd750e84161257ec19cb29df0 +Subproject commit 9ae64a05d1f32eede23792714c1611d06ffa3dbf diff --git a/lib/interpret_phy b/lib/interpret_phy index 84ae28d..f9d32a1 160000 --- a/lib/interpret_phy +++ b/lib/interpret_phy @@ -1 +1 @@ -Subproject commit 84ae28d6aa8cefde0384a54252aa20dee4f6dfb6 +Subproject commit f9d32a1d85fa5549883e1ccb78eb8b824969fac1 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 2ee3ae3..04b1647 160000 --- a/lib/phy +++ b/lib/phy @@ -1 +1 @@ -Subproject commit 2ee3ae3955ba3dbd5b51c10d8939cc750d43c760 +Subproject commit 04b164789314481ca4c1fb14b5f605796cc7115a 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 178bb70..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 From 1bc6315297abfbdfd7c274953ba56c345619e49a Mon Sep 17 00:00:00 2001 From: Ned Bingham Date: Mon, 11 Nov 2024 20:07:45 -0500 Subject: [PATCH 5/5] fixing a few more bugs --- bin/ckt | 2 +- lib/interpret_phy | 2 +- lib/phy | 2 +- lib/sch | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/ckt b/bin/ckt index 9ae64a0..31f3c14 160000 --- a/bin/ckt +++ b/bin/ckt @@ -1 +1 @@ -Subproject commit 9ae64a05d1f32eede23792714c1611d06ffa3dbf +Subproject commit 31f3c1407e4134dda16087b123bf59a88da10020 diff --git a/lib/interpret_phy b/lib/interpret_phy index f9d32a1..f968a51 160000 --- a/lib/interpret_phy +++ b/lib/interpret_phy @@ -1 +1 @@ -Subproject commit f9d32a1d85fa5549883e1ccb78eb8b824969fac1 +Subproject commit f968a518b6ab273b82f9729956f8450fc989e6da diff --git a/lib/phy b/lib/phy index 04b1647..46a3d7c 160000 --- a/lib/phy +++ b/lib/phy @@ -1 +1 @@ -Subproject commit 04b164789314481ca4c1fb14b5f605796cc7115a +Subproject commit 46a3d7cea9096e0814f3557bbcd9ae1bde63831c diff --git a/lib/sch b/lib/sch index 1c936db..db9b9ef 160000 --- a/lib/sch +++ b/lib/sch @@ -1 +1 @@ -Subproject commit 1c936db3aef646d047a3db0cb820617859a63ce8 +Subproject commit db9b9ef007d1915cd657b148cb5cd2ea71f5cb1e