Dan Fritchman
06/09/2021, 5:59 PMMatthew Guthaus
06/09/2021, 6:00 PMDan Fritchman
06/09/2021, 6:13 PMMatthew Guthaus
06/09/2021, 6:14 PMMatthew Guthaus
06/09/2021, 6:15 PMMatthew Guthaus
06/09/2021, 6:15 PMDan Fritchman
06/09/2021, 6:35 PMALI AHMED
06/09/2021, 10:51 PMMatthew Ballance
06/10/2021, 1:36 AMMatthew Guthaus
06/10/2021, 1:52 AMMatthew Guthaus
06/10/2021, 1:53 AMHieu Bui
06/10/2021, 3:55 AMdiff --git a/scripts/magic/drc.tcl b/scripts/magic/drc.tcl
index 5019f2c..90b4bfb 100755
--- a/scripts/magic/drc.tcl
+++ b/scripts/magic/drc.tcl
@@ -13,6 +13,10 @@
# limitations under the License.
if { [info exist ::env(MAGIC_DRC_USE_GDS)] && $::env(MAGIC_DRC_USE_GDS) } {
+ if { [info exist ::env(USE_SRAM_ABSTRACT)] && $::env(USE_SRAM_ABSTRACT) } {
+ load $::env(PDKPATH)/libs.ref/sky130_sram_macros/maglef/$::env(SRAM_ABSTRACT_MODEL)
+ gds noduplicates true
+ }
gds read $::env(CURRENT_GDS)
} else {
lef read $::env(TECH_LEF)
Then, in the config file you need to add two configs:
# This needs a patch to openlane
set ::env(USE_SRAM_ABSTRACT) 1
## this needs a pdk build with the sram macros
set ::env(SRAM_ABSTRACT_MODEL) ${SRAM_MODEL_NAME}.mag
The DRC for the SRAM will pass.
My observation is that if the DOUTs are not connected (no metal wire connect to the pins), they will cause DRC violations. Therefore, you should connect it to somewhere.Matthew Guthaus
06/10/2021, 5:01 AMTinh Pham
07/09/2021, 3:50 AMMatthew Guthaus
07/09/2021, 3:55 AMMatthew Guthaus
07/09/2021, 3:55 AMTinh Pham
07/09/2021, 4:02 AM