ext scripts
diff --git a/scripts/core_scripts/magic-drc.tcl b/scripts/core_scripts/magic-drc.tcl index 82ba470..3db318e 100755 --- a/scripts/core_scripts/magic-drc.tcl +++ b/scripts/core_scripts/magic-drc.tcl
@@ -18,7 +18,6 @@ if { $::env(TARGET_TYPE) == "mag" } { load $::env(TARGET_DIR)/$::env(DESIGN_NAME).mag } else { - lef read $::env(TECH_LEF) def read $::env(TARGET_DIR)/$::env(DESIGN_NAME).def } }
diff --git a/scripts/core_scripts/magic-ext.sh b/scripts/core_scripts/magic-ext.sh new file mode 100644 index 0000000..bd51abd --- /dev/null +++ b/scripts/core_scripts/magic-ext.sh
@@ -0,0 +1,35 @@ +#!/bin/bash +# Copyright 2020 Efabless Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# To call: ./magic-ext.sh <target_path> <design_name> <pdk-root> <target-type> <pdk-name> <output_path> + +export TARGET_DIR=$1 +export DESIGN_NAME=$2 +export PDK_ROOT=$3 +export TARGET_TYPE=$4 +export PDK=$5 +export OUT_DIR=$6 +export TCL_CALL_PATH=${7:-$(pwd)} + +echo "Running Magic..." +export MAGIC_MAGICRC=$PDK_ROOT/$PDK/libs.tech/magic/sky130A.magicrc + +magic \ + -noconsole \ + -dnull \ + -rcfile $MAGIC_MAGICRC \ + $TCL_CALL_PATH/magic-ext.tcl \ + </dev/null \ + |& tee $OUT_DIR/magic_ext.log
diff --git a/scripts/core_scripts/magic-ext.tcl b/scripts/core_scripts/magic-ext.tcl new file mode 100644 index 0000000..a67ba3b --- /dev/null +++ b/scripts/core_scripts/magic-ext.tcl
@@ -0,0 +1,43 @@ +#!/usr/bin/tclsh +# Copyright 2020 Efabless Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +puts "Performing Spice Extractions..." + +if { ![file isdirectory $::env(OUT_DIR)] } { + exec mkdir $::env(OUT_DIR)/ +} + + +if { $::env(TARGET_TYPE) == "gds"} { + gds read $::env(TARGET_DIR)/$::env(DESIGN_NAME).gds +} else { + if { $::env(TARGET_TYPE) == "mag" } { + load $::env(TARGET_DIR)/$::env(DESIGN_NAME).mag + } else { + def read $::env(TARGET_DIR)/$::env(DESIGN_NAME).def + } +} + +load $::env(DESIGN_NAME) -dereference +cd $::env(OUT_DIR)/ +extract do local +# extract warn all +extract +ext2spice lvs +ext2spice $::env(DESIGN_NAME).ext +feedback save $::env(OUT_DIR)/magic_extraction_feedback.txt + +puts "Done!" \ No newline at end of file
diff --git a/scripts/ext-def-sky130A.sh b/scripts/ext-def-sky130A.sh new file mode 100644 index 0000000..64c29f5 --- /dev/null +++ b/scripts/ext-def-sky130A.sh
@@ -0,0 +1,29 @@ +#!/bin/bash +# Copyright 2020 Efabless Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# To call: ./ext-gds-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/] + +export TARGET_DIR=$1 +export DESIGN_NAME=$2 +export PDK_ROOT=$3 +export OUT_DIR=${4:-$TARGET_DIR/results/} +export TCL_CALL_PATH=$(pwd)/core_scripts + +if ! [[ -d "$OUT_DIR" ]] +then + mkdir $OUT_DIR +fi + +bash ./core_scripts/magic-ext.sh $TARGET_DIR $DESIGN_NAME $PDK_ROOT "def" "sky130A" $OUT_DIR $TCL_CALL_PATH
diff --git a/scripts/ext-gds-sky130A.sh b/scripts/ext-gds-sky130A.sh new file mode 100644 index 0000000..d7ddb64 --- /dev/null +++ b/scripts/ext-gds-sky130A.sh
@@ -0,0 +1,29 @@ +#!/bin/bash +# Copyright 2020 Efabless Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# To call: ./ext-gds-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/] + +export TARGET_DIR=$1 +export DESIGN_NAME=$2 +export PDK_ROOT=$3 +export OUT_DIR=${4:-$TARGET_DIR/results/} +export TCL_CALL_PATH=$(pwd)/core_scripts + +if ! [[ -d "$OUT_DIR" ]] +then + mkdir $OUT_DIR +fi + +bash ./core_scripts/magic-ext.sh $TARGET_DIR $DESIGN_NAME $PDK_ROOT "gds" "sky130A" $OUT_DIR $TCL_CALL_PATH
diff --git a/scripts/ext-mag-sky130A.sh b/scripts/ext-mag-sky130A.sh new file mode 100644 index 0000000..7e320fa --- /dev/null +++ b/scripts/ext-mag-sky130A.sh
@@ -0,0 +1,29 @@ +#!/bin/bash +# Copyright 2020 Efabless Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# To call: ./ext-gds-sky130A.sh <target_path> <design_name> <pdk-root> [<output_path> default is <target_path>/results/] + +export TARGET_DIR=$1 +export DESIGN_NAME=$2 +export PDK_ROOT=$3 +export OUT_DIR=${4:-$TARGET_DIR/results/} +export TCL_CALL_PATH=$(pwd)/core_scripts + +if ! [[ -d "$OUT_DIR" ]] +then + mkdir $OUT_DIR +fi + +bash ./core_scripts/magic-ext.sh $TARGET_DIR $DESIGN_NAME $PDK_ROOT "mag" "sky130A" $OUT_DIR $TCL_CALL_PATH