blob: 113ebeccbfebd4594c3b7c7d7b2e0d23eba32793 [file] [log] [blame]
#! /bin/csh
set spice = /usr/local/bin/ngspice
if( $#argv != 3 ) then
echo "usage: getres nmodel_file pmodel_file dev_file"
exit 1
endif
if( ! -f $1 ) then
echo "can't open spice nfet model file '"$1"'"
exit 1
endif
if( ! -f $2 ) then
echo "can't open spice pfet model file '"$2"'"
exit 1
endif
if( -f $argv[3] ) then
source $argv[3]
else
echo "can't open device configuration file '"$argv[3]"'"
exit 1
endif
set nmos = `grep -i "\.MODEL" $1 | grep -i NMOS`
set pmos = `grep -i "\.MODEL" $1 | grep -i PMOS`
if( $#nmos == 0 ) then
echo "can't find nmos .MODEL card in '"$1"'"
exit 1
endif
if( $#pmos == 0 ) then
echo "can't find pmos .MODEL card in '"$1"'"
exit 1
endif
cat $1 ckt.spi > tmp.spi
ed - <<end tmp.spi >& /dev/null
g/N_FET/s/N_FET/$nmos[2]/g
g/P_FET/s/P_FET/$pmos[2]/g
g/C_LOAD/s/C_LOAD/$cap/g
g/N_WITH/s/N_WITH/$nwith/g
g/N_LEN/s/N_LEN/$nlen/g
g/P_WITH/s/P_WITH/$pwith/g
g/P_LEN/s/P_LEN/$plen/g
w
q
end
$spice -n -b -r spi.out tmp.spi
if( $status != 0 ) then
echo "something went wrong with spice, look at 'tmp.spi'"
exit 1
endif
./findr -c $cap -n $nwith,$nlen -p $pwith,$plen spi.out |& tee resists