From d14a68847e31ff58900c7e57051a29cd04e97ad3 Mon Sep 17 00:00:00 2001 From: Bob Vanhoof Date: Tue, 9 Feb 2021 13:09:26 +0100 Subject: [PATCH] added cell label checker and cell labels to the freepdk technology --- .gitignore | 1 + compiler/base/geometry.py | 4 +++- technology/freepdk45/gds_lib/cell_1rw.gds | Bin 19116 -> 20480 bytes 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3d6e4f92..e31298d6 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ **/model_data outputs technology/freepdk45/ncsu_basekit +.idea diff --git a/compiler/base/geometry.py b/compiler/base/geometry.py index debeceee..0f970747 100644 --- a/compiler/base/geometry.py +++ b/compiler/base/geometry.py @@ -359,7 +359,9 @@ class instance(geometry): for offset in range(len(normalized_br_offsets)): for port in range(len(br_names)): cell_br_meta.append([br_names[offset], row, col, port]) - + + if normalized_storage_nets == []: + debug.error("normalized storage nets should not be empty! Check if the GDS labels Q and Q_bar are correctly set on M1 of the cell",1) Q_x = normalized_storage_nets[0][0] Q_y = normalized_storage_nets[0][1] diff --git a/technology/freepdk45/gds_lib/cell_1rw.gds b/technology/freepdk45/gds_lib/cell_1rw.gds index 38e53e27872bed4854cc2320d02e6eb82977cffc..19628df63fdad37dd0689f8120dabcf18a57eccc 100644 GIT binary patch literal 20480 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