Corrected the sky130.json file, which had a major problem caused by
accidentally duplicating a block of text, resulting in an invalid
JSON file. Also: Revised the JSON file format so that "commit" is
a block rather than a single key-value pair, and is contstructed
similarly to the "version" block, with an entry for each tool used
in the PDK build (currently magic and open_pdks), to provide a git
commit number for each. This has to be done in conjunction with
the update of magic to version 8.3.273 to provide the "--commit"
command line option.
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index 54494fe..071700e 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -359,6 +359,7 @@
COMMIT_DEFS += -DFD_SC_LP_COMMIT=$(shell cd ${SKYWATER_PATH} ; git rev-parse @:libraries/sky130_fd_sc_lp/latest)
endif
endif
+COMMIT_DEFS += -DMAGIC_COMMIT=$(shell magic -dnull -noconsole --commit)
COMMIT_DEFS += -DMAGIC_VERSION=$(shell magic -dnull -noconsole --version)
COMMIT_DEFS += -DOPEN_PDKS_VERSION=$(shell cat ../VERSION)
diff --git a/sky130/sky130.json b/sky130/sky130.json
index 0ec84f5..a399110 100644
--- a/sky130/sky130.json
+++ b/sky130/sky130.json
@@ -1,15 +1,23 @@
#define DESCRIPTION Skywater 0.13um CMOS, local interconntect + high-resistance poly
#ifdef METAL5
#define OPTION1 + 5 metal layer backend stack
+#else
+#define OPTION1
#endif (METAL5)
#ifdef MIM
#define OPTION2 + MiM caps
+#else
+#define OPTION2
#endif (MIM)
#ifdef REDISTRIBUTION
#define OPTION3 + redistribution layer
+#else
+#define OPTION3
#endif (REDISTRIBUTION)
#ifdef RERAM
#define OPTION4 + ReRAM
+#else
+#define OPTION4
#endif (RERAM)
{
"foundry": "SW",
@@ -17,7 +25,6 @@
"node": "TECHNAME",
"feature-size": "130nm",
"status": "active",
- "commit": "OPEN_PDKS_COMMIT",
"description": "DESCRIPTION OPTION1 OPTION2 OPTION3 OPTION4",
"options": [
#ifdef METAL5
@@ -74,42 +81,11 @@
"sky130_ml_xx_hd": "ALPHA_COMMIT"
},
"build": {
- "magic": "MAGIC_VERSION",
- "open_pdks": "OPEN_PDKS_VERSION"
+ "open_pdks": "OPEN_PDKS_VERSION",
+ "magic": "MAGIC_VERSION"
}
-}
-
-#ifdef REDISTRIBUTION
-#undef REDISTRIBUTION
- "REDISTRIBUTION"
-#endif (REDISTRIBUTION)
- ],
- "stdcells": {
- "sky130_fd_sc_hd": "FD_SC_HD_COMMIT",
- "sky130_fd_sc_hdll": "FD_SC_HDLL_COMMIT",
- "sky130_fd_sc_hs": "FD_SC_HS_COMMIT",
- "sky130_fd_sc_hvl": "FD_SC_HVL_COMMIT",
- "sky130_fd_sc_lp": "FD_SC_LP_COMMIT",
- "sky130_fd_sc_ls": "FD_SC_LS_COMMIT",
- "sky130_fd_sc_ms": "FD_SC_MS_COMMIT",
- "sky130_osu_sc_t12": "OSU_T12_COMMIT",
- "sky130_osu_sc_t15": "OSU_T15_COMMIT",
- "sky130_osu_sc_t18": "OSU_T18_COMMIT"
- },
- "iocells": {
- "sky130_fd_io": "FD_IO_COMMIT"
- },
- "primitive": {
- "sky130_fd_pr": "FD_PR_COMMIT"
- },
- "memory": {
- "sky130_sram_macros": "SRAM_COMMIT"
- },
- "other": {
- "sky130_ml_xx_hd": "ALPHA_COMMIT"
- },
- "build": {
- "magic": "MAGIC_VERSION",
- "open_pdks": "OPEN_PDKS_VERSION"
+ "commit": {
+ "open_pdks": "OPEN_PDKS_COMMIT",
+ "magic": "MAGIC_COMMIT"
}
}