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_list(k, v, i=tuple()): def liberty_dict(dtype, dvalue, data, indent=tuple(), attribute_types=None): - """ >>> def g(a, b, c): @@ -945,8 +944,6 @@ def liberty_dict(dtype, dvalue, data, indent=tuple(), attribute_types=None): } """ - - assert isinstance(data, dict), (dtype, dvalue, data) if attribute_types is None: @@ -968,8 +965,9 @@ def liberty_dict(dtype, dvalue, data, indent=tuple(), attribute_types=None): # 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 @@ def liberty_dict(dtype, dvalue, data, indent=tuple(), attribute_types=None): 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 @@ def main(): if __name__ == "__main__": import doctest - doctest.testmod() + fail, _ = doctest.testmod() + if fail > 0: + sys.exit(1) sys.exit(main())