Merge pull request #112 from mithro/fix-power-pins

Fix power pins
diff --git a/libraries/sky130_fd_sc_hd/latest b/libraries/sky130_fd_sc_hd/latest
index 7f79525..7343e0e 160000
--- a/libraries/sky130_fd_sc_hd/latest
+++ b/libraries/sky130_fd_sc_hd/latest
@@ -1 +1 @@
-Subproject commit 7f795252dcbf6909aea6bd5eb9c5ea98b2ae7a74
+Subproject commit 7343e0e05fa00c3e763ae7b6837b1b59bc4b2de6
diff --git a/libraries/sky130_fd_sc_hd/v0.0.1 b/libraries/sky130_fd_sc_hd/v0.0.1
index 4cbecdc..8fbd464 160000
--- a/libraries/sky130_fd_sc_hd/v0.0.1
+++ b/libraries/sky130_fd_sc_hd/v0.0.1
@@ -1 +1 @@
-Subproject commit 4cbecdca96976da7730fa1141910b8995dc70346
+Subproject commit 8fbd4642cf717e487c090332bea9cca28c4182bf
diff --git a/libraries/sky130_fd_sc_hd/v0.0.2 b/libraries/sky130_fd_sc_hd/v0.0.2
index 7f79525..7343e0e 160000
--- a/libraries/sky130_fd_sc_hd/v0.0.2
+++ b/libraries/sky130_fd_sc_hd/v0.0.2
@@ -1 +1 @@
-Subproject commit 7f795252dcbf6909aea6bd5eb9c5ea98b2ae7a74
+Subproject commit 7343e0e05fa00c3e763ae7b6837b1b59bc4b2de6
diff --git a/libraries/sky130_fd_sc_hdll/latest b/libraries/sky130_fd_sc_hdll/latest
index c4512ed..bedaa66 160000
--- a/libraries/sky130_fd_sc_hdll/latest
+++ b/libraries/sky130_fd_sc_hdll/latest
@@ -1 +1 @@
-Subproject commit c4512ed05f2211985f984c12ecfa819604af9318
+Subproject commit bedaa668e40fd33f1b4f010c3e9dadf4c1f7ccad
diff --git a/libraries/sky130_fd_sc_hdll/v0.1.0 b/libraries/sky130_fd_sc_hdll/v0.1.0
index 60697a7..417d732 160000
--- a/libraries/sky130_fd_sc_hdll/v0.1.0
+++ b/libraries/sky130_fd_sc_hdll/v0.1.0
@@ -1 +1 @@
-Subproject commit 60697a72b40969b7818cae0efb79b66e2cd93e74
+Subproject commit 417d7320322248ce42a17332eb3d539daaad0f28
diff --git a/libraries/sky130_fd_sc_hdll/v0.1.1 b/libraries/sky130_fd_sc_hdll/v0.1.1
index c4512ed..bedaa66 160000
--- a/libraries/sky130_fd_sc_hdll/v0.1.1
+++ b/libraries/sky130_fd_sc_hdll/v0.1.1
@@ -1 +1 @@
-Subproject commit c4512ed05f2211985f984c12ecfa819604af9318
+Subproject commit bedaa668e40fd33f1b4f010c3e9dadf4c1f7ccad
diff --git a/libraries/sky130_fd_sc_hs/latest b/libraries/sky130_fd_sc_hs/latest
index 8bc807e..78d267f 160000
--- a/libraries/sky130_fd_sc_hs/latest
+++ b/libraries/sky130_fd_sc_hs/latest
@@ -1 +1 @@
-Subproject commit 8bc807e704409ec72223e1e7b9462ea9dd81e5a3
+Subproject commit 78d267f3d4e9468aad3c792d50d7bbbf1b7943bf
diff --git a/libraries/sky130_fd_sc_hs/v0.0.1 b/libraries/sky130_fd_sc_hs/v0.0.1
index 73908d9..a91cba7 160000
--- a/libraries/sky130_fd_sc_hs/v0.0.1
+++ b/libraries/sky130_fd_sc_hs/v0.0.1
@@ -1 +1 @@
-Subproject commit 73908d9138e521567132102472622e5fc534fe0d
+Subproject commit a91cba780217867c7ea6859e26e43abff0c523f2
diff --git a/libraries/sky130_fd_sc_hs/v0.0.2 b/libraries/sky130_fd_sc_hs/v0.0.2
index 8bc807e..78d267f 160000
--- a/libraries/sky130_fd_sc_hs/v0.0.2
+++ b/libraries/sky130_fd_sc_hs/v0.0.2
@@ -1 +1 @@
-Subproject commit 8bc807e704409ec72223e1e7b9462ea9dd81e5a3
+Subproject commit 78d267f3d4e9468aad3c792d50d7bbbf1b7943bf
diff --git a/libraries/sky130_fd_sc_ls/latest b/libraries/sky130_fd_sc_ls/latest
index b8d4fa7..6f224b9 160000
--- a/libraries/sky130_fd_sc_ls/latest
+++ b/libraries/sky130_fd_sc_ls/latest
@@ -1 +1 @@
-Subproject commit b8d4fa73fb356364f01439adf6fae5d0187a4094
+Subproject commit 6f224b969032bdef9d27292b8365f9e144fd73cb
diff --git a/libraries/sky130_fd_sc_ls/v0.1.0 b/libraries/sky130_fd_sc_ls/v0.1.0
index 06ffd21..9d09e70 160000
--- a/libraries/sky130_fd_sc_ls/v0.1.0
+++ b/libraries/sky130_fd_sc_ls/v0.1.0
@@ -1 +1 @@
-Subproject commit 06ffd21614b39f9d1a6b100e29f6813fcd01ed75
+Subproject commit 9d09e70eae31440cd88c0fb1528a2585dba3ae83
diff --git a/libraries/sky130_fd_sc_ls/v0.1.1 b/libraries/sky130_fd_sc_ls/v0.1.1
index b8d4fa7..6f224b9 160000
--- a/libraries/sky130_fd_sc_ls/v0.1.1
+++ b/libraries/sky130_fd_sc_ls/v0.1.1
@@ -1 +1 @@
-Subproject commit b8d4fa73fb356364f01439adf6fae5d0187a4094
+Subproject commit 6f224b969032bdef9d27292b8365f9e144fd73cb
diff --git a/libraries/sky130_fd_sc_ms/latest b/libraries/sky130_fd_sc_ms/latest
index 7ef2bc9..1243058 160000
--- a/libraries/sky130_fd_sc_ms/latest
+++ b/libraries/sky130_fd_sc_ms/latest
@@ -1 +1 @@
-Subproject commit 7ef2bc933dd3dba52b1a3abbc741e5130ae034d3
+Subproject commit 124305843c9f3efc948261b22adbbf17a3413d41
diff --git a/libraries/sky130_fd_sc_ms/v0.0.1 b/libraries/sky130_fd_sc_ms/v0.0.1
index 5825c0b..72b0174 160000
--- a/libraries/sky130_fd_sc_ms/v0.0.1
+++ b/libraries/sky130_fd_sc_ms/v0.0.1
@@ -1 +1 @@
-Subproject commit 5825c0bd2c1b5156b7a3f671b94d2ebeacbb43e3
+Subproject commit 72b01744bdbdf20017a578d55ea08e60384bd2fb
diff --git a/libraries/sky130_fd_sc_ms/v0.0.2 b/libraries/sky130_fd_sc_ms/v0.0.2
index 7ef2bc9..1243058 160000
--- a/libraries/sky130_fd_sc_ms/v0.0.2
+++ b/libraries/sky130_fd_sc_ms/v0.0.2
@@ -1 +1 @@
-Subproject commit 7ef2bc933dd3dba52b1a3abbc741e5130ae034d3
+Subproject commit 124305843c9f3efc948261b22adbbf17a3413d41
diff --git a/scripts/python-skywater-pdk/skywater_pdk/liberty.py b/scripts/python-skywater-pdk/skywater_pdk/liberty.py
index ab32f09..7fb314f 100755
--- a/scripts/python-skywater-pdk/skywater_pdk/liberty.py
+++ b/scripts/python-skywater-pdk/skywater_pdk/liberty.py
@@ -918,7 +918,6 @@
 
 
 def liberty_dict(dtype, dvalue, data, indent=tuple(), attribute_types=None):
-
     """
 
     >>> def g(a, b, c):
@@ -945,8 +944,6 @@
     }
 
     """
-
-
     assert isinstance(data, dict), (dtype, dvalue, data)
 
     if attribute_types is None:
@@ -968,8 +965,9 @@
     # Sort the attributes
     def attr_sort_key(item):
         k, v = item
-        if " " in k:
-            ktype, kvalue = k.split(" ", 1)
+
+        if "," in k:
+            ktype, kvalue = k.split(",", 1)
             sortable_kv = sortable_extracted_numbers(kvalue)
         else:
             ktype = k
@@ -1040,12 +1038,15 @@
             elif is_liberty_list(ktype):
                 o.extend(liberty_list(ktype, v, indent_n))
 
+            elif "table" == ktype:
+                o.append('%s%s : "%s";' % (INDENT*len(indent_n), k, ",".join(v)))
+
             elif "clk_width" == ktype:
                 for l in sorted(v):
                     o.append('%s%s : "%s";' % (INDENT*len(indent_n), k, l))
 
             else:
-                raise ValueError("Unknown %s: %r\n%s" % (k, v, indent_n))
+                raise ValueError("Unknown %s: %r\n%s" % ((ktype, kvalue, k), v, indent_n))
 
         else:
             if ktype in dtype_attribute_types:
@@ -1152,5 +1153,7 @@
 
 if __name__ == "__main__":
     import doctest
-    doctest.testmod()
+    fail, _ = doctest.testmod()
+    if fail > 0:
+        sys.exit(1)
     sys.exit(main())