From e770336d96bbd8669e7a7ab7f8c80b94eeafa384 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Thu, 18 Apr 2024 19:42:45 -0700 Subject: [PATCH] Changes to lef creation to avoid magic bug and reram addtions. --- scripts/be_checks/lvs_config.md | 1 + scripts/be_checks/run_extract | 2 +- scripts/be_checks/run_hier_check | 7 ++++--- scripts/be_checks/tech/sky130B/cvc.models | 1 + scripts/be_checks/tech/sky130B/known_abstract_filter.awk | 1 + scripts/be_checks/tech/sky130B/spi2cdl | 2 +- 6 files changed, 9 insertions(+), 5 deletions(-) diff --git a/scripts/be_checks/lvs_config.md b/scripts/be_checks/lvs_config.md index 15f6bbc6..b664e659 100644 --- a/scripts/be_checks/lvs_config.md +++ b/scripts/be_checks/lvs_config.md @@ -6,6 +6,7 @@ Required variables: - **TOP_SOURCE** : Top source cell name. - **TOP_LAYOUT** : Top layout cell name. - **LAYOUT_FILE** : Layout gds data file. +- **LVS_SPICE_FILES_TO_FIX** : A list of spice files that work with mag extraction but need to be modified for gds extraction. - **LVS_SPICE_FILES** : A list of spice files. - **LVS_VERILOG_FILES** : A list of verilog files. Note: files with child modules should be listed before parent modules. Not needed for purely analog designs. diff --git a/scripts/be_checks/run_extract b/scripts/be_checks/run_extract index a8d07a2a..0391c548 100755 --- a/scripts/be_checks/run_extract +++ b/scripts/be_checks/run_extract @@ -280,7 +280,7 @@ foreach cell { $ABSTRACT_CELLS } { ;# Set abstract cells and delete all their su } } lef nocheck vssd1 vssd2 vccd1 vccd2 vssa1 vssa2 vdda1 vdda2 - lef write \$cell -hide 10um -pinonly 10um + lef write \$cell -hide -pinonly } } set current_time [orig_clock seconds] diff --git a/scripts/be_checks/run_hier_check b/scripts/be_checks/run_hier_check index 00e1ab96..e0e9dbab 100755 --- a/scripts/be_checks/run_hier_check +++ b/scripts/be_checks/run_hier_check @@ -71,7 +71,7 @@ if [[ $(echo $SOURCE_FILES | wc -w) -gt 0 ]]; then sed '/^[ ]*module[ ].*[^ ](/s/(/ (/' $(echo $SOURCE_FILES) | awk -v top=$TOP_SOURCE ' - $1 ~ /^\/\*/ { + $1 ~ /^\/\*/ { # skip block comments while ( ! /\*\// ) { getline; } @@ -80,16 +80,17 @@ if [[ $(echo $SOURCE_FILES | wc -w) -gt 0 ]]; then if ( $2 in modules ) { print "Duplicate module definition", $2 > "'$WORK_ROOT/hier.log'"; } + modules[$2] = 1; if ( ! ( $2 in cells ) ) { cells[$2] = 1; } module = $2; next; } - $1 ~ /^\/\// { + $1 ~ /^[ ]*\/\// { # skip single line comments next; } - / \(/ && ! /^[ ]*\/\*/ { + / \(/ && $1 !~ /^\./ { key = module "/" $1; if ( ! ( $1 in cells ) ) { cells[$1] = 1; diff --git a/scripts/be_checks/tech/sky130B/cvc.models b/scripts/be_checks/tech/sky130B/cvc.models index bcab9a9b..fd208319 100644 --- a/scripts/be_checks/tech/sky130B/cvc.models +++ b/scripts/be_checks/tech/sky130B/cvc.models @@ -45,6 +45,7 @@ R sky130_fd_pr__res_high_po_1p41 R=l/1.41*300 R sky130_fd_pr__res_high_po_2p85 R=l/2.85*300 R sky130_fd_pr__res_high_po_5p73 R=l/5.73*300 R sky130_fd_pr__res_iso_pw R=l/w*4400 +R sky130_fd_pr_reram__reram_cell R=10 R sky130_fd_pr__reram_reram_cell R=10 MN sky130_fd_pr__nfet_01v8 Vth=0.2 Vgs=1.8 Vds=1.8 diff --git a/scripts/be_checks/tech/sky130B/known_abstract_filter.awk b/scripts/be_checks/tech/sky130B/known_abstract_filter.awk index f832f602..3652cba3 100644 --- a/scripts/be_checks/tech/sky130B/known_abstract_filter.awk +++ b/scripts/be_checks/tech/sky130B/known_abstract_filter.awk @@ -2,4 +2,5 @@ /__tapvpwrvgnd_/ {next} /__fakediode_/ {next} /sky130_fd_pr__/ {next} # ignore primitive devices +/sky130_fd_pr_reram__/ {next} # ignore primitive reram devices { print } diff --git a/scripts/be_checks/tech/sky130B/spi2cdl b/scripts/be_checks/tech/sky130B/spi2cdl index 3f4de4e8..10072646 100755 --- a/scripts/be_checks/tech/sky130B/spi2cdl +++ b/scripts/be_checks/tech/sky130B/spi2cdl @@ -29,7 +29,7 @@ awk ' print "R" $0, "$SUB=" bulk; next; } -/^X.*sky130_fd_pr__reram_reram_cell.*=/ { +/^X.*sky130_fd_pr.*_reram_cell.*=/ { print "R" $0; next; }