2011-05-28 21:08:04 +02:00
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# ngspice DC, AC and noise test routines
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Rel Date Who Comments
|
|
|
|
|
# ==== ========== ============= ========
|
2017-07-18 15:18:08 +02:00
|
|
|
# 1.1 07/05/17 Dietmar Warning Version detection included
|
2011-05-28 21:08:04 +02:00
|
|
|
# 1.0 05/13/11 Dietmar Warning Initial version
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
package simulate;
|
2017-07-18 15:18:08 +02:00
|
|
|
if (defined($main::simulatorCommand)) {
|
|
|
|
|
$simulatorCommand=$main::simulatorCommand;
|
|
|
|
|
} else {
|
|
|
|
|
$simulatorCommand="ngspice";
|
|
|
|
|
}
|
2011-05-28 21:08:04 +02:00
|
|
|
$netlistFile="ngspiceCkt";
|
|
|
|
|
use strict;
|
|
|
|
|
|
|
|
|
|
sub version {
|
2017-07-18 15:18:08 +02:00
|
|
|
my($version,$vaVersion);
|
|
|
|
|
$version="unknown";
|
|
|
|
|
$vaVersion="unknown";
|
|
|
|
|
if (!open(OF,">$simulate::netlistFile")) {
|
|
|
|
|
die("ERROR: cannot open file $simulate::netlistFile, stopped");
|
|
|
|
|
}
|
|
|
|
|
print OF "version test";
|
|
|
|
|
print OF "r1 1 0 1";
|
|
|
|
|
print OF "v1 1 0 1";
|
|
|
|
|
print OF ".control";
|
|
|
|
|
print OF "version";
|
|
|
|
|
print OF ".endc";
|
|
|
|
|
print OF ".end";
|
|
|
|
|
close(OF);
|
|
|
|
|
if (!open(SIMULATE,"$simulate::simulatorCommand < $simulate::netlistFile 2>/dev/null|")) {
|
|
|
|
|
die("ERROR: cannot run $simulate::simulatorCommand, stopped");
|
|
|
|
|
}
|
|
|
|
|
while (<SIMULATE>) {
|
|
|
|
|
chomp;
|
|
|
|
|
# Check whether this line is the one we are looking for.
|
|
|
|
|
# Also the term in parenthesis "()" stores the number to $1 which we can reuse later.
|
|
|
|
|
if (m/.+ngspice-([0-9]+)/) {
|
|
|
|
|
# Simple read the stored group from the matching in the if clause
|
|
|
|
|
$version=$1;
|
|
|
|
|
last;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
close(SIMULATE);
|
|
|
|
|
return($version,$vaVersion);
|
2011-05-28 21:08:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub runNoiseTest {
|
|
|
|
|
my($variant,$outputFile)=@_;
|
|
|
|
|
my($arg,$name,$value,$type,$pin,$noisePin);
|
|
|
|
|
my(@BiasList,$i,@Field);
|
|
|
|
|
my(@X,@Noise,$temperature,$biasVoltage,$sweepVoltage,$inData);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Make up the netlist, using a subckt to encapsulate the
|
|
|
|
|
# instance. This simplifies handling of the variants as
|
|
|
|
|
# the actual instance is driven by voltage-controlled
|
|
|
|
|
# voltage sources from the subckt pins, and the currents
|
|
|
|
|
# are fed back to the subckt pins using current-controlled
|
|
|
|
|
# current sources. Pin swapping, polarity reversal, and
|
|
|
|
|
# m-factor scaling can all be handled by simple modifications
|
|
|
|
|
# of this subckt.
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
@X=();@Noise=();
|
|
|
|
|
$noisePin=$main::Outputs[0];
|
|
|
|
|
if ($main::fMin == $main::fMax) {
|
|
|
|
|
$main::frequencySpec="lin 0 $main::fMin ".(10*$main::fMin); # spice3f5 bug workaround
|
|
|
|
|
}
|
|
|
|
|
foreach $temperature (@main::Temperature) {
|
|
|
|
|
foreach $biasVoltage (split(/\s+/,$main::biasListSpec)) {
|
|
|
|
|
if ($main::fMin == $main::fMax) {
|
|
|
|
|
push(@X,@main::BiasSweepList);
|
|
|
|
|
}
|
|
|
|
|
foreach $sweepVoltage (@main::BiasSweepList) {
|
|
|
|
|
if (!open(OF,">$simulate::netlistFile")) {
|
|
|
|
|
die("ERROR: cannot open file $simulate::netlistFile, stopped");
|
|
|
|
|
}
|
|
|
|
|
print OF "* Noise simulation for $main::simulatorName";
|
|
|
|
|
&generateCommonNetlistInfo($variant,$temperature);
|
|
|
|
|
print OF "vin dummy 0 0 ac 1";
|
2015-03-27 22:22:49 +01:00
|
|
|
print OF "rin dummy 0 1.0 noise=0";
|
2011-05-28 21:08:04 +02:00
|
|
|
foreach $pin (@main::Pin) {
|
|
|
|
|
if ($main::isFloatingPin{$pin}) {
|
|
|
|
|
print OF "i_$pin $pin 0 0";
|
|
|
|
|
} elsif ($pin eq $main::biasListPin) {
|
|
|
|
|
print OF "v_$pin $pin 0 $biasVoltage";
|
|
|
|
|
} elsif ($pin eq $main::biasSweepPin) {
|
|
|
|
|
print OF "v_$pin $pin 0 $sweepVoltage";
|
|
|
|
|
} else {
|
|
|
|
|
print OF "v_$pin $pin 0 $main::BiasFor{$pin}";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
print OF "x1 ".join(" ",@main::Pin)." mysub";
|
|
|
|
|
print OF "hn 0 n_$noisePin v_$noisePin 1";
|
2015-03-26 14:01:35 +01:00
|
|
|
print OF ".control";
|
|
|
|
|
print OF "set sqrnoise";
|
|
|
|
|
print OF ".endc";
|
2011-05-28 21:08:04 +02:00
|
|
|
print OF ".noise v(n_$noisePin) vin $main::frequencySpec";
|
|
|
|
|
print OF ".print noise all";
|
|
|
|
|
print OF ".end";
|
|
|
|
|
close(OF);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Run simulations and get the results
|
|
|
|
|
#
|
|
|
|
|
|
2017-07-18 15:18:08 +02:00
|
|
|
if (!open(SIMULATE,"$simulate::simulatorCommand < $simulate::netlistFile 2>/dev/null|")) {
|
|
|
|
|
die("ERROR: cannot run $simulate::simulatorCommand, stopped");
|
2011-05-28 21:08:04 +02:00
|
|
|
}
|
|
|
|
|
$inData=0;
|
|
|
|
|
while (<SIMULATE>) {
|
|
|
|
|
chomp;s/^\s+//;s/\s+$//;s/,/ /g;
|
|
|
|
|
if (/Index\s+frequency\s+inoise_spectrum\s+onoise_spectrum/i) {
|
|
|
|
|
$inData=1;<SIMULATE>;next;
|
|
|
|
|
}
|
|
|
|
|
@Field=split;
|
|
|
|
|
if (/\*/ || ($#Field != 3)) {$inData=0}
|
|
|
|
|
next if (!$inData);
|
|
|
|
|
if ($main::fMin == $main::fMax) {
|
|
|
|
|
push(@Noise,1*$Field[3]);$inData=0;next; # spice3f5 bug workaround
|
|
|
|
|
}
|
|
|
|
|
push(@X,1*$Field[1]);
|
|
|
|
|
push(@Noise,1*$Field[3]);
|
|
|
|
|
}
|
|
|
|
|
close(SIMULATE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Write the results to a file
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
if (!open(OF,">$outputFile")) {
|
|
|
|
|
die("ERROR: cannot open file $outputFile, stopped");
|
|
|
|
|
}
|
|
|
|
|
if ($main::fMin == $main::fMax) {
|
|
|
|
|
printf OF ("V($main::biasSweepPin)");
|
|
|
|
|
} else {
|
|
|
|
|
printf OF ("Freq");
|
|
|
|
|
}
|
|
|
|
|
foreach (@main::Outputs) {
|
|
|
|
|
printf OF (" N($_)");
|
|
|
|
|
}
|
|
|
|
|
printf OF ("\n");
|
|
|
|
|
for ($i=0;$i<=$#X;++$i) {
|
|
|
|
|
if (defined($Noise[$i])) {printf OF ("$X[$i] $Noise[$i]\n")}
|
|
|
|
|
}
|
|
|
|
|
close(OF);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Clean up, unless the debug flag was specified
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
if (! $main::debug) {
|
|
|
|
|
unlink($simulate::netlistFile);
|
|
|
|
|
if (!opendir(DIRQA,".")) {
|
|
|
|
|
die("ERROR: cannot open directory ., stopped");
|
|
|
|
|
}
|
|
|
|
|
foreach (grep(/^$simulate::netlistFile\.ic/,readdir(DIRQA))) {unlink($_)}
|
|
|
|
|
closedir(DIRQA);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub runAcTest {
|
|
|
|
|
my($variant,$outputFile)=@_;
|
|
|
|
|
my($arg,$name,$value,$type,$pin,$mPin,$fPin,%NextPin);
|
|
|
|
|
my(@BiasList,$acStim,$i,@Field);
|
|
|
|
|
my(@X,$omega,$twoPi,%g,%c,$temperature,$biasVoltage,$sweepVoltage,$inData,$outputLine);
|
|
|
|
|
$twoPi=8.0*atan2(1.0,1.0);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Make up the netlist, using a subckt to encapsulate the
|
|
|
|
|
# instance. This simplifies handling of the variants as
|
|
|
|
|
# the actual instance is driven by voltage-controlled
|
|
|
|
|
# voltage sources from the subckt pins, and the currents
|
|
|
|
|
# are fed back to the subckt pins using current-controlled
|
|
|
|
|
# current sources. Pin swapping, polarity reversal, and
|
|
|
|
|
# m-factor scaling can all be handled by simple modifications
|
|
|
|
|
# of this subckt.
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
foreach $mPin (@main::Pin) {
|
|
|
|
|
foreach $fPin (@main::Pin) {
|
|
|
|
|
@{$g{$mPin,$fPin}}=();
|
|
|
|
|
@{$c{$mPin,$fPin}}=();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@X=();
|
|
|
|
|
foreach $temperature (@main::Temperature) {
|
|
|
|
|
foreach $biasVoltage (split(/\s+/,$main::biasListSpec)) {
|
|
|
|
|
if ($main::fMin == $main::fMax) {
|
|
|
|
|
push(@X,@main::BiasSweepList);
|
|
|
|
|
}
|
|
|
|
|
foreach $sweepVoltage (@main::BiasSweepList) {
|
|
|
|
|
if (!open(OF,">$simulate::netlistFile")) {
|
|
|
|
|
die("ERROR: cannot open file $simulate::netlistFile, stopped");
|
|
|
|
|
}
|
|
|
|
|
print OF "* AC simulation for $main::simulatorName";
|
|
|
|
|
&generateCommonNetlistInfo($variant,$temperature);
|
|
|
|
|
foreach $fPin (@main::Pin) {
|
|
|
|
|
foreach $mPin (@main::Pin) {
|
|
|
|
|
if ($mPin eq $fPin) {
|
|
|
|
|
$acStim=" ac 1";
|
|
|
|
|
} else {
|
|
|
|
|
$acStim="";
|
|
|
|
|
}
|
|
|
|
|
if ($main::isFloatingPin{$mPin}) {
|
|
|
|
|
print OF "i_${mPin}_$fPin ${mPin}_$fPin 0 0";
|
|
|
|
|
} elsif ($mPin eq $main::biasListPin) {
|
|
|
|
|
print OF "v_${mPin}_$fPin ${mPin}_$fPin 0 $biasVoltage$acStim";
|
|
|
|
|
} elsif ($mPin eq $main::biasSweepPin) {
|
|
|
|
|
print OF "v_${mPin}_$fPin ${mPin}_$fPin 0 $sweepVoltage$acStim";
|
|
|
|
|
} else {
|
|
|
|
|
print OF "v_${mPin}_$fPin ${mPin}_$fPin 0 $main::BiasFor{$mPin}$acStim";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
print OF "x_$fPin ".join("_$fPin ",@main::Pin)."_$fPin mysub";
|
|
|
|
|
}
|
|
|
|
|
print OF ".ac $main::frequencySpec";
|
|
|
|
|
foreach $mPin (@main::Pin) {
|
|
|
|
|
foreach $fPin (@main::Pin) {
|
|
|
|
|
print OF ".print ac i(v_${mPin}_$fPin)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
print OF ".end";
|
|
|
|
|
close(OF);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Run simulations and get the results
|
|
|
|
|
#
|
|
|
|
|
|
2017-07-18 15:18:08 +02:00
|
|
|
if (!open(SIMULATE,"$simulate::simulatorCommand < $simulate::netlistFile 2>/dev/null|")) {
|
|
|
|
|
die("ERROR: cannot run $simulate::simulatorCommand, stopped");
|
2011-05-28 21:08:04 +02:00
|
|
|
}
|
|
|
|
|
$inData=0;
|
|
|
|
|
while (<SIMULATE>) {
|
|
|
|
|
chomp;s/^\s+//;s/\s+$//;s/,/ /g;
|
|
|
|
|
if (/^Index\s+frequency\s+v_([a-zA-Z][a-zA-Z0-9]*)_([a-zA-Z][a-zA-Z0-9]*)#branch/i) {
|
|
|
|
|
$mPin=$1;$fPin=$2;<SIMULATE>;$inData=1;next;
|
|
|
|
|
}
|
|
|
|
|
@Field=split;
|
|
|
|
|
if (/^\*/ || ($#Field != 3)) {$inData=0;}
|
|
|
|
|
next if (!$inData);
|
|
|
|
|
if (($main::fMin != $main::fMax) && ($mPin eq $fPin) && ($mPin eq $main::Pin[0])) {
|
|
|
|
|
push(@X,1*$Field[1]);
|
|
|
|
|
}
|
|
|
|
|
push(@{$g{$mPin,$fPin}},$Field[2]);
|
|
|
|
|
$omega=$twoPi*$Field[1];
|
|
|
|
|
if ($mPin eq $fPin) {
|
|
|
|
|
push(@{$c{$mPin,$fPin}},$Field[3]/$omega);
|
|
|
|
|
} else {
|
|
|
|
|
push(@{$c{$mPin,$fPin}},-1*$Field[3]/$omega);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
close(SIMULATE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Write the results to a file
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
if (!open(OF,">$outputFile")) {
|
|
|
|
|
die("ERROR: cannot open file $outputFile, stopped");
|
|
|
|
|
}
|
|
|
|
|
if ($main::fMin == $main::fMax) {
|
|
|
|
|
printf OF ("V($main::biasSweepPin)");
|
|
|
|
|
} else {
|
|
|
|
|
printf OF ("Freq");
|
|
|
|
|
}
|
|
|
|
|
foreach (@main::Outputs) {
|
|
|
|
|
($type,$mPin,$fPin)=split(/\s+/,$_);
|
|
|
|
|
printf OF (" $type($mPin,$fPin)");
|
|
|
|
|
}
|
|
|
|
|
printf OF ("\n");
|
|
|
|
|
for ($i=0;$i<=$#X;++$i) {
|
|
|
|
|
$outputLine="$X[$i]";
|
|
|
|
|
foreach (@main::Outputs) {
|
|
|
|
|
($type,$mPin,$fPin)=split(/\s+/,$_);
|
|
|
|
|
if ($type eq "g") {
|
|
|
|
|
if (defined(${$g{$mPin,$fPin}}[$i])) {
|
|
|
|
|
$outputLine.=" ${$g{$mPin,$fPin}}[$i]";
|
|
|
|
|
} else {
|
|
|
|
|
undef($outputLine);last;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (defined(${$c{$mPin,$fPin}}[$i])) {
|
|
|
|
|
$outputLine.=" ${$c{$mPin,$fPin}}[$i]";
|
|
|
|
|
} else {
|
|
|
|
|
undef($outputLine);last;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (defined($outputLine)) {printf OF ("$outputLine\n")}
|
|
|
|
|
}
|
|
|
|
|
close(OF);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Clean up, unless the debug flag was specified
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
if (! $main::debug) {
|
|
|
|
|
unlink($simulate::netlistFile);
|
|
|
|
|
if (!opendir(DIRQA,".")) {
|
|
|
|
|
die("ERROR: cannot open directory ., stopped");
|
|
|
|
|
}
|
|
|
|
|
foreach (grep(/^$simulate::netlistFile\.ic/,readdir(DIRQA))) {unlink($_)}
|
|
|
|
|
closedir(DIRQA);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub runDcTest {
|
|
|
|
|
my($variant,$outputFile)=@_;
|
|
|
|
|
my($arg,$name,$value,$i,@Field,$pin);
|
|
|
|
|
my($start,$stop,$step);
|
|
|
|
|
my(@V,%DC,$temperature,$biasVoltage);
|
|
|
|
|
my($inData,$inResults);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Make up the netlist, using a subckt to encapsulate the
|
|
|
|
|
# instance. This simplifies handling of the variants as
|
|
|
|
|
# the actual instance is driven by voltage-controlled
|
|
|
|
|
# voltage sources from the subckt pins, and the currents
|
|
|
|
|
# are fed back to the subckt pins using current-controlled
|
|
|
|
|
# current sources. Pin swapping, polarity reversal, and
|
|
|
|
|
# m-factor scaling can all be handled by simple modifications
|
|
|
|
|
# of this subckt.
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
@V=();
|
|
|
|
|
foreach $pin (@main::Outputs) {@{$DC{$pin}}=()}
|
|
|
|
|
($start,$stop,$step)=split(/\s+/,$main::biasSweepSpec);
|
|
|
|
|
$start-=$step;
|
|
|
|
|
foreach $temperature (@main::Temperature) {
|
|
|
|
|
foreach $biasVoltage (split(/\s+/,$main::biasListSpec)) {
|
|
|
|
|
if (!open(OF,">$simulate::netlistFile")) {
|
|
|
|
|
die("ERROR: cannot open file $simulate::netlistFile, stopped");
|
|
|
|
|
}
|
|
|
|
|
print OF "* DC simulation for $main::simulatorName";
|
|
|
|
|
&generateCommonNetlistInfo($variant,$temperature);
|
|
|
|
|
foreach $pin (@main::Pin) {
|
|
|
|
|
if ($main::isFloatingPin{$pin}) {
|
|
|
|
|
print OF "i_$pin $pin 0 0";
|
|
|
|
|
} elsif ($pin eq $main::biasListPin) {
|
|
|
|
|
print OF "v_$pin $pin 0 $biasVoltage";
|
|
|
|
|
} elsif ($pin eq $main::biasSweepPin) {
|
|
|
|
|
print OF "v_$pin $pin 0 $start";
|
|
|
|
|
} else {
|
|
|
|
|
print OF "v_$pin $pin 0 $main::BiasFor{$pin}";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
print OF "x1 ".join(" ",@main::Pin)." mysub";
|
|
|
|
|
print OF ".dc v_$main::biasSweepPin $main::biasSweepSpec";
|
|
|
|
|
foreach $pin (@main::Outputs) {
|
|
|
|
|
if ($main::isFloatingPin{$pin}) {
|
|
|
|
|
print OF ".print dc v($pin)";
|
|
|
|
|
} else {
|
|
|
|
|
print OF ".print dc i(v_$pin)";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
print OF ".end";
|
|
|
|
|
close(OF);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Run simulations and get the results
|
|
|
|
|
#
|
|
|
|
|
|
2017-07-18 15:18:08 +02:00
|
|
|
if (!open(SIMULATE,"$simulate::simulatorCommand < $simulate::netlistFile 2>/dev/null|")) {
|
|
|
|
|
die("ERROR: cannot run $simulate::simulatorCommand, stopped");
|
2011-05-28 21:08:04 +02:00
|
|
|
}
|
|
|
|
|
$inResults=0;
|
|
|
|
|
while (<SIMULATE>) {
|
|
|
|
|
chomp;s/^\s+//;s/\s+$//;s/#branch//;s/\(/_/;s/\)//;
|
|
|
|
|
if (/^Index\s+v-sweep\s+v_/i) {$inResults=1;($pin=$');<SIMULATE>;next}
|
|
|
|
|
@Field=split;
|
|
|
|
|
if ($#Field != 2) {$inResults=0}
|
|
|
|
|
next if (!$inResults);
|
|
|
|
|
if ($pin eq $main::Outputs[0]) {
|
|
|
|
|
push(@V,$Field[1]);
|
|
|
|
|
}
|
|
|
|
|
push(@{$DC{$pin}},$Field[2]);
|
|
|
|
|
}
|
|
|
|
|
close(SIMULATE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Write the results to a file
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
if (!open(OF,">$outputFile")) {
|
|
|
|
|
die("ERROR: cannot open file $outputFile, stopped");
|
|
|
|
|
}
|
|
|
|
|
printf OF ("V($main::biasSweepPin)");
|
|
|
|
|
foreach $pin (@main::Outputs) {
|
|
|
|
|
if ($main::isFloatingPin{$pin}) {
|
|
|
|
|
printf OF (" V($pin)");
|
|
|
|
|
} else {
|
|
|
|
|
printf OF (" I($pin)");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
printf OF ("\n");
|
|
|
|
|
for ($i=0;$i<=$#V;++$i) {
|
|
|
|
|
next if (abs($V[$i]-$start) < abs(0.1*$step)); # this is dummy first bias point
|
|
|
|
|
printf OF ("$V[$i]");
|
|
|
|
|
foreach $pin (@main::Outputs) {printf OF (" ${$DC{$pin}}[$i]")}
|
|
|
|
|
printf OF ("\n");
|
|
|
|
|
}
|
|
|
|
|
close(OF);
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Clean up, unless the debug flag was specified
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
if (! $main::debug) {
|
|
|
|
|
unlink($simulate::netlistFile);
|
|
|
|
|
if (!opendir(DIRQA,".")) {
|
|
|
|
|
die("ERROR: cannot open directory ., stopped");
|
|
|
|
|
}
|
|
|
|
|
foreach (grep(/^$simulate::netlistFile\.ic/,readdir(DIRQA))) {unlink($_)}
|
|
|
|
|
closedir(DIRQA);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub generateCommonNetlistInfo {
|
|
|
|
|
my($variant,$temperature)=@_;
|
|
|
|
|
my(@Pin_x,$arg,$name,$value,$eFactor,$fFactor,$pin);
|
|
|
|
|
foreach $pin (@main::Pin) {push(@Pin_x,"${pin}_x")}
|
Squashed commit of the following:
commit 4939bc89934899c16dcd14e11839bedd3c289ee9
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Oct 25 22:04:16 2020 +0100
added cppduals cleanly
commit 834cbc5aba9c1d5470a6f838161703a657d12810
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Oct 25 22:03:40 2020 +0100
remove cppduals
commit 69b922cef25b3ec2d2b7026bff19ed5428b6d00f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Oct 25 21:59:00 2020 +0100
cppduals in new diretory
commit 4337cc0e3386e5d3745945fd3a9f0012c1046def
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Oct 25 21:49:52 2020 +0100
hicum license cleaning
commit ba439dfdf5fbe1fd36518d5d389d06dcf73d5b83
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Oct 17 13:19:05 2020 +0200
moved sh stamp, working
commit 29028ff34defad33ece73fe5432a2bccb2aed96b
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Oct 17 12:56:54 2020 +0200
forgot something
commit 5743d2b55160b9dc7d14f57dc07057b69ffffec7
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Oct 17 12:54:35 2020 +0200
rth stamp moved (no yet working)
commit 42d61da3eba4c9a45d0ea3b5424cad564532a127
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Oct 17 11:54:10 2020 +0200
Hicum C/C++ code now under 3-clause BSD
commit 5088e869ea5b816111410c1190b21da20b69353c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Oct 17 11:44:57 2020 +0200
cleaned comments
commit 18fc66e71b5f384d044fcc9e90a430dc6c5de44d
Author: dwarning <dwarning>
Date: Sat Sep 12 19:48:11 2020 +0200
rm some less useful comments - no code change
commit 861f286fda6610c5c8ab2cba669ce0ef6a65066c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Sep 8 15:45:46 2020 +0200
clean hicum2ask
commit a52274ba7d5c9e9878e9616b53d40c918b516729
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Sep 8 15:43:18 2020 +0200
fix nqs transient
commit fa7f96b4af3bbc664e629766ada11cb2a7607c57
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Sep 7 13:17:42 2020 +0200
fix HICUM csu readin
commit 23183f10b6c66a8efc016764e0b1b230af8561b8
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Aug 8 15:35:32 2020 +0200
added it to Hicum states -> noise
commit 020fc706075d629e7f327a973a363f553b96aef3
Author: dwarning <dwarning>
Date: Tue Aug 4 09:18:05 2020 +0200
change inst to here
commit 33d06d9732b8fb05ebc48fad4d02f19b9e94c9fd
Author: dwarning <dwarning>
Date: Tue Aug 4 09:12:37 2020 +0200
reintroduce iavl and correct ibici shot noise
commit 7251265231c82cf7111e374770b2264f85f95e3a
Author: dwarning <dwarning>
Date: Tue Aug 4 08:59:26 2020 +0200
more reasonable plot scaling
commit 67919b9bd8de1bc550d0ef5ed0d173016bc79ff3
Author: dwarning <dwarning>
Date: Tue Aug 4 08:56:04 2020 +0200
yet another try for flicker noise scaling
commit 689177a55f661054d9b031e16c5662faf69ac717
Author: dwarning <dwarning>
Date: Mon Aug 3 10:41:44 2020 +0200
correct multiplier scaling for rsu
commit 58b89af40a673d1c427e2ec3c0a51fd0c42a0d49
Author: dwarning <dwarning>
Date: Sun Aug 2 18:57:14 2020 +0200
prevent division by 0 for rbi
commit a4e7eb5b6c0321bc215fa39e92d821cc3d5b5490
Author: dwarning <dwarning>
Date: Sun Aug 2 18:25:51 2020 +0200
fix instance multiplier application for noise
commit 36862a7bc61a751473b2fb2c67d4af02b103f3fc
Author: dwarning <dwarning>
Date: Fri Jul 31 21:06:13 2020 +0200
white spaces
commit 8a0504bb13de3cdd4b91143e62500d27136812c4
Author: dwarning <dwarning>
Date: Fri Jul 31 18:32:45 2020 +0200
add a transient analysis example
commit c1f034869709972633ae04e57a0adbed07b1d9b5
Author: dwarning <dwarning>
Date: Fri Jul 31 18:31:10 2020 +0200
still problems in different terminal configurations
commit 26e026e4c80cb8cbb8345882444cd69a6539713d
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jul 31 14:36:34 2020 +0200
fix stamp for Cth
commit dd84b1fcd3f8db4db184e9d4fd2c368f8415a16c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jul 31 14:22:16 2020 +0200
fix bug in Cscp stamp
commit 1f13d2526fb833a5061353de1a447ec02a16ee0a
Author: dwarning <dwarning>
Date: Fri Jul 31 11:29:25 2020 +0200
visualc mod - no impact to hicum
commit cff491feca5d3bce0dc2e5b7fce5dd8f47961b76
Author: dwarning <dwarning>
Date: Fri Jul 31 10:59:52 2020 +0200
wrong and twice assignment
commit 4a9dc52037ef14d2e17f5073d3f8e2b7ed94dab8
Author: dwarning <dwarning>
Date: Fri Jul 31 10:00:20 2020 +0200
twice assignment
commit c76bcc7cca603f6e6d48c36f4e5a8eb497738396
Author: dwarning <dwarning>
Date: Thu Jul 30 12:36:30 2020 +0200
delete base nodes from inner to outer
commit 4a472a34516638b54bc04d6e8386b5e145df2065
Author: dwarning <dwarning>
Date: Mon Jul 27 15:34:15 2020 +0200
correct the switch for Vbici limiting
commit f47bc449b319786daa8f35d6a753876107c60b73
Author: dwarning <dwarning>
Date: Sun Jul 26 21:56:48 2020 +0200
few parameter adaptions to version 2.40
commit 5901ec29024172180f235b138373d8b92ca52438
Author: dwarning <dwarning>
Date: Sun Jul 26 16:37:44 2020 +0200
sign for CONSTCtoK must be +
commit 556171a905026e08a887763b22420e8a82d6c987
Author: dwarning <dwarning>
Date: Sun Jul 26 16:36:15 2020 +0200
rbi is 0 if nodes are collapsed
commit 724887f32c8ef18c415f252e77cb11a5477d9d8b
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jul 26 12:45:15 2020 +0200
add ngspice Temperature clipping in HICUM
commit d735f445e5c38697c8ade7bce4d41a0d0486253c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jul 26 12:13:39 2020 +0200
removed rbi fallback, removed rth_de
commit 162b174acd958fbbbd9de7874252ba264f9c5e55
Author: dwarning <dwarning>
Date: Sat Jul 25 12:31:05 2020 +0200
add few small-signal parameter
commit 5afb2dc8c8a2267bbeb0821fe5d917e3f4b2594d
Author: dwarning <dwarning>
Date: Fri Jul 24 16:49:11 2020 +0200
reduce unnecassary inits
commit 0efc047f5fec5259ef4c34549e7d9641b61bd821
Author: dwarning <dwarning>
Date: Fri Jul 24 16:03:10 2020 +0200
few typos and comments
commit 14a5cd873ba402f2b7c371b997dcdb3f6c18cb0f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jul 24 11:25:51 2020 +0200
remove rbi stamps if nodes collapsed finish
commit f5461183f30e60f9a860b2521c94fadc9aee573f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jul 24 11:17:33 2020 +0200
hicumL2 load -> remove stamp for rbi, if node BP BI collapsed
commit 00f51465e370b333f8e590db1b20f66a32e2ff96
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jul 24 11:07:58 2020 +0200
finish cleaning
commit 019ef4e07edfef15b7548fef31464c9648baa1ac
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jul 24 10:50:05 2020 +0200
moving derivatives from _Tdev to _Vrth in a clean way (start)
commit 154036c09ff5176d3661f92665885c48a6c05c4e
Author: Markus Mueller <metroid120@googlemail.com>
Date: Thu Jul 23 16:50:31 2020 +0200
consistent derivative with Vrth/Tdev=> will rework this, I do not like
this
commit 03c3efd7628e031f41cc2e3e0f6699d60189e635
Author: Markus Mueller <metroid120@googlemail.com>
Date: Thu Jul 23 16:22:46 2020 +0200
finally: avalanche at very high T fix
commit 64704fd53e6311a655524ae52afa1d1101db6546
Merge: a26b3ee2b f6db74ac5
Author: Markus Mueller <metroid120@googlemail.com>
Date: Thu Jul 23 15:56:29 2020 +0200
Merge remote-tracking branch 'origin/markus_dev' into markus_dev
commit a26b3ee2b20c668df6d41938a06472440803855f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Thu Jul 23 15:56:17 2020 +0200
start bugfix
commit f6db74ac50da167d3081c1c7e8a2e5eda254183f
Author: dwarning <dwarning>
Date: Tue Jul 21 18:56:32 2020 +0200
rm obsolete files
commit 9854038f2c22acf688fa494496ca7b71855198ea
Author: dwarning <dwarning>
Date: Tue Jul 21 16:48:56 2020 +0200
allow periphal resistors and rbi default 0
commit 34f579c08f9b8378c29074678e9cb651f49092ce
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jul 21 13:05:54 2020 +0200
fix bug node collapsing BI BP
commit 6f5627f44169bd4eb72dea3fb7d8f6d600ddcdb5
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jul 21 11:48:22 2020 +0200
node collapsing BI BP HICUM
commit 187d391383cfe76fb5214971ac0ad7fe94b7e397
Author: dwarning <dwarning>
Date: Tue Jul 21 09:58:59 2020 +0200
few corrections and reordering
commit 0fc39a424e52804c40003b55ee398812cbaf151b
Author: dwarning <dwarning>
Date: Mon Jul 20 19:36:15 2020 +0200
unify nqs flag for setup/unsetup
commit 8944ad2e32e69b87c79d512e05505d41f22bd311
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 18 14:23:30 2020 +0200
iavl_Vbiei changed sign back ...
commit cc9682f9e541fd16e89cfe687367257be975766f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 18 14:05:12 2020 +0200
HICUM limit for avalanche
commit 284583e0cc19ff5247d7ce8df8d3292ff60d2062
Author: dwarning <dwarning>
Date: Wed Jul 15 10:11:46 2020 +0200
cleanup initial conditions to the traditional spice usage
commit c3cadb8de18cfe522e33c1499e927890a3dbb90d
Author: dwarning <dwarning>
Date: Wed Jul 15 08:57:03 2020 +0200
rm unused files
commit 8bc687ddbe66af29234b4aba9279d01fc4d9cda2
Author: dwarning <dwarning>
Date: Mon Jul 13 10:44:56 2020 +0200
correct check6 init
commit 9250464ac16eded2cc38deec0bf64af9bc03c639
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jul 12 14:00:46 2020 +0200
fix bug in HICUM Qjci calculation, derivatives now more rigorous with
dual numbers
commit 0fb86510aab4881e858728c588d72852e69df4ca
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 11 15:02:04 2020 +0200
fix gmin in HICUM
commit 735339e288ceb61d0aa19e09fb6160bd16cbfed6
Merge: fd5b7a648 1659190b2
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 11 14:45:08 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit fd5b7a6485a030491c42f5f6b836ee6b5d00ac49
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 11 14:44:01 2020 +0200
fix HICUM gmin
commit 1659190b21476bd6a0603da7b1d3a4c8ed316657
Author: dwarning <dwarning>
Date: Sat Jul 11 09:57:29 2020 +0200
real node collapsing with slightly better results in qa test
convergence problems in high current avalanche breakdown still exist
commit aaa94e5c108b76d8e73969dda926d8b8916690d7
Author: dwarning <dwarning>
Date: Thu Jul 9 18:10:04 2020 +0200
add hspice to qa
commit 6fe586cf9d5f302afd19fe8573e64348ddf551db
Author: dwarning <dwarning>
Date: Thu Jul 9 17:26:28 2020 +0200
relax convergence criteria for qa test
commit 127c2ca4516b22dcd9e28bb0edab25f5bd03004f
Author: dwarning <dwarning>
Date: Thu Jul 9 14:02:48 2020 +0200
correct loop stopping criteria
commit cfae080c1a3c4740b22a493c0993ac39350e217c
Author: dwarning <dwarning>
Date: Wed Jul 8 18:02:13 2020 +0200
examples now version 2.4.0
commit 7b099242da5e00ade6c037eae4c6b4312fdd80bd
Author: dwarning <dwarning>
Date: Wed Jul 8 17:18:28 2020 +0200
rm non qa file
commit 0c2ef2f7c4a0e675985a0ec24a09fdcb8c659c91
Author: dwarning <dwarning>
Date: Wed Jul 8 17:15:58 2020 +0200
qa test is now version 2.4.0
commit e90939126dfa6061b9f03b0146d2630fee875528
Author: dwarning <dwarning>
Date: Wed Jul 8 17:13:29 2020 +0200
qa test is now version 2.4.0
commit 114aeee5c55eaf0d0c604338a4c847b1344c60f5
Author: dwarning <dwarning>
Date: Wed Jul 8 17:12:05 2020 +0200
now version 2.4.0
commit 0f3377651363083d7dcc75bca8ea93f02eb89f36
Author: dwarning <dwarning>
Date: Wed Jul 8 11:40:43 2020 +0200
reactivate convergence check
commit 6f382c76d822761ecc1be8ed8b2b4383326b6d3b
Author: dwarning <dwarning>
Date: Wed Jul 8 11:02:30 2020 +0200
rm old comments and artefacts
commit 5950a2fb0325795903d3651d0d99bc1fda7198f3
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jul 8 09:51:03 2020 +0200
example print for dual number
commit abab05435227fdd788f0f7963ddb18f0bb465fab
Author: dwarning <dwarning>
Date: Tue Jul 7 08:51:51 2020 +0200
nqs must set after defaulting model parameters
commit 4c34e54c7bf8efa6e321877eb41285fdebf7e72d
Author: dwarning <dwarning>
Date: Mon Jul 6 21:37:04 2020 +0200
prevent false branch because of rounding error for flcomp
commit 4bb09b35c370ddc1bf31d028e4c3be173511c5fe
Author: dwarning <dwarning>
Date: Sun Jul 5 22:16:28 2020 +0200
clear separation between geometry and temperature scaling
commit 90ab76d87675c87a0920aa10d352316c5741298a
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jul 5 18:14:08 2020 +0200
fix comments in HICUM scaling
commit d7dd26880c48ad48b407f6a2ae2b84c315a01948
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jul 5 18:03:23 2020 +0200
forgot some parameters that depend on "area" and T, but are needed as
model variables in load
commit 320a66c0a49c88c050e905c5c4eb67a0ee5de2e0
Merge: d78032109 b09edc706
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jul 5 17:27:20 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit d78032109f38dd8143682bb9067d0bbb141486f2
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jul 5 17:26:45 2020 +0200
HICUM scaling with "area" and "m" parameters.
commit b09edc706a70563650308c31dbef0ba8acbe56eb
Author: dwarning <dwarning>
Date: Sun Jul 5 17:10:51 2020 +0200
must fallthrough because icVbe is after icVce
commit dbd99a33a5b34d727fd8ee78172b5433cc80d440
Author: dwarning <dwarning>
Date: Sun Jul 5 09:59:09 2020 +0200
some useful examples to show hicum2 capabilities
commit ba1c2de06ec9eae63e8fb82cef845b182576ee35
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 4 20:21:38 2020 +0200
added comment to IC vars
commit 6fce26437e595b7a3365515d806d750330d88602
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 4 20:03:13 2020 +0200
remove hicum inital conditions that are not spice-like
commit aa283f40ef9fac81b93425c5d66ce804c1a7fecc
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jul 4 19:55:58 2020 +0200
added HICUM pole zero analysis
commit 2165afdf27e923387713aae7780b3826b0d97922
Author: dwarning <dwarning>
Date: Fri Jul 3 17:39:03 2020 +0200
another cut&paste error and typo
commit 8b680b0c28bc8d69a388538e67f60cbf99371406
Author: dwarning <dwarning>
Date: Fri Jul 3 17:28:40 2020 +0200
another cut&paste error
commit f1698c7a81277196725f7c0d58489cd503d75af3
Author: dwarning <dwarning>
Date: Fri Jul 3 15:42:37 2020 +0200
add shot noise sources for it and ibiei
commit 966891d5f73d79a32bbeb61e70838bc1bd026311
Author: dwarning <dwarning>
Date: Fri Jul 3 14:39:31 2020 +0200
correct multiplier for flicker noise and base-emitter source connection
commit 80e932424f91a11eaf88109ed712733ad1afc8e7
Author: dwarning <dwarning>
Date: Fri Jul 3 14:27:52 2020 +0200
cut&paste error
commit 61ee68c782fb852f9ada7a85dc3bb5e091abd22b
Author: dwarning <dwarning>
Date: Thu Jul 2 21:05:58 2020 +0200
few corrections in noise model
commit ad16be59ba689e962d413a765a108232e7e92a82
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jul 1 14:44:13 2020 +0200
reorder code
commit e81b41c653ac99f6e6ea62fb1707ce9c2df936a7
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jul 1 14:33:12 2020 +0200
fix bugs HICHUM acload
commit 1d5f88e93dceedd45dadcbc87fdd5c7dbfd966ee
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 28 11:51:10 2020 +0200
fix bugs
commit bbb729ae8f09448b0f71687537fb727e4d2aa7fb
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 28 11:03:48 2020 +0200
intermediate state
commit a95aade55ab5e88c1d0bf841a5a9b933d6851d85
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 27 20:16:37 2020 +0200
fix derivative in NQS network
commit a54c52221c7d30b6ccc613e4018fd199c2ac29d7
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 27 20:05:58 2020 +0200
small fixes HICUM
commit 7407302d5016424403cc135f77e97d8b53002e8c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 27 17:48:23 2020 +0200
fix bug in HICUMacload
commit bb03c8f663267cc4830ae5c1390ef63f6945abde
Merge: 1fa789874 e7d143e04
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 24 13:17:15 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit 1fa78987473bc4ea2b61fcfd86c3671a4c3bd829
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 24 13:16:20 2020 +0200
remove nqs from limit function and gmin
commit e7d143e044c20635156fc948cfdf5dc8e1d95d29
Author: dwarning <dwarning>
Date: Tue Jun 23 18:22:40 2020 +0200
tk is not an alias parameter name
commit 75e3a4da642b1df955547dce97630f8908ed0f52
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 23 16:24:59 2020 +0200
protect nqs network
commit 1c36e997ba5ff8fca90e3e62ce393a68bf4a731a
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 23 15:44:46 2020 +0200
nqs in ac
commit 524abe95f3cfec546131bd7d2d663740ff0f6452
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 23 15:21:27 2020 +0200
NQS in acload
commit 0833f955efd420afffb46e81f6f584857448a1cc
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 23 14:47:35 2020 +0200
move cross-coupled charges from state vector to here struct
commit 03b4a874778a47d6bc46581880a55dfb946775b5
Author: dwarning <dwarning>
Date: Mon Jun 22 11:52:42 2020 +0200
prevent crash if tnode is given but she parameter not
commit 9ab20e2f35334fe6a472186d93fd093d831bc6df
Author: dwarning <dwarning>
Date: Mon Jun 22 11:51:47 2020 +0200
alias for tnom
commit 3140bedc3f53111ff3fd307e3c9fd5370e31868b
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 21 21:50:39 2020 +0200
fix nqs
commit 8dfd2e5a4df294058f3064b076b217558aca7ab4
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 20 18:41:35 2020 +0200
fix HICUM setup
commit f6e4bba9e3d0bf715b70682703b43e6da8450cb5
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 20 18:40:04 2020 +0200
finish NQS for DC case
commit 21862cbdb9fa8dba15b0b098e294e3362f567515
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 20 17:55:01 2020 +0200
first test ok ... modify state vector now
commit 1c5773292ed4304e470419c18d72e369e24c0199
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 20 17:45:57 2020 +0200
first implementation of NQS, not tested
commit 4fd24db7664ddd22fcd7f17ffff282a7ba23f598
Author: dwarning <dwarning>
Date: Fri Jun 19 22:12:49 2020 +0200
external temp node has number 5
commit 8fb3f2ce9a6f25786fa583f28e2aae350512634a
Merge: b7e4c39d8 5f4085d4a
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jun 19 19:05:31 2020 +0200
Merge remote-tracking branch 'origin/markus_dev' into markus_dev
commit b7e4c39d80b4b93ae58efc7449d43f39712f7bb9
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jun 19 19:03:46 2020 +0200
fix unset t node HICUM
commit 5f4085d4a8193cc9978f768d2d4fb89271b56c3a
Author: dwarning <dwarning>
Date: Wed Jun 17 20:34:02 2020 +0200
unify self-heating switch
commit c927c32541f8ee57ebce35066a5b0b10fdbf76af
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 17 18:41:15 2020 +0200
qaSpec with ads run
commit d05eaa744e6abefdb2a2a874c6028e6f8b714ef1
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 17 17:38:50 2020 +0200
added derivatives for NQS network
commit 88cf4bb92583cf8f02f5f65c23dde02a64f992e8
Author: dwarning <dwarning>
Date: Wed Jun 17 13:24:03 2020 +0200
allow SHE also without external temperature node
prevent crash with rth=0
commit 716125334263ed3819241cdb9342b6cc4ce174b1
Merge: a46cb231a e2bb25b12
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 16 17:33:41 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit a46cb231a030d8bc66599472e0100aab5649669e
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 16 17:32:20 2020 +0200
tmp node to gnd in HICUM if no SH
commit e2bb25b125c765576f054d111a446376b7121a11
Author: dwarning <dwarning>
Date: Mon Jun 15 08:54:50 2020 +0200
qaSpec guess for ads
commit bbde282b5168293a0ac9c451d4a3378e0829ce47
Author: dwarning <dwarning>
Date: Mon Jun 15 08:33:17 2020 +0200
typo 1D
commit 4e6deec579ffd1ea51014c66bcd58070daffc5d0
Merge: 5da1d7031 6fbbeb06d
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 14 19:58:33 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit 5da1d7031c224db1abacc3ec4df36ac1f74dab3e
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 14 19:57:56 2020 +0200
HICUMload transient part first review, small fixes
commit 96af16e673002d7083661acd4099104c29a10e53
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 14 18:53:49 2020 +0200
gmin fix
commit 6fbbeb06d980caf3226fd6821318274ba51780b1
Author: dwarning <dwarning>
Date: Sun Jun 14 11:05:12 2020 +0200
complete device node request for temp node
commit eae118787e13aaeadb77cf85d9a4c9e8f66268b5
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 13 21:52:32 2020 +0200
fix hicumACload singular matrix bug
commit 2a1f47e1e5689b18ee569f232511a803bb9d867d
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 13 20:29:04 2020 +0200
cleaned
commit 7e5fdae91712102ca84097fcc41cf16223506c3f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 13 20:19:51 2020 +0200
refactor gmin in HICUM
commit 7aadd9af4aaa1613a824bed3cc8b67974122a4a9
Merge: f55f613c2 595e46447
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 13 19:32:02 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit f55f613c242c4388943a27eecee454d27a2246c5
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat Jun 13 19:31:39 2020 +0200
added dual numbers include in ngspice/include
commit 595e4644794479a8a0b91d8f1ecd02816df61584
Author: dwarning <dwarning>
Date: Fri Jun 12 19:13:26 2020 +0200
introduce version parameter to prevent warnings in qa test
commit 147bf5eb4ab0571e649a0521c0e573aba8f6788c
Author: dwarning <dwarning>
Date: Fri Jun 12 17:16:48 2020 +0200
use standard include path configuration for external cppduals
commit 7a41174b5ec1c7a3896fa12480eb89b2f09bbacf
Author: dwarning <dwarning>
Date: Thu Jun 11 18:22:42 2020 +0200
add ads for qa test
commit 3942fc48ce8a9ac6f564be6a0571450c56b3ee91
Author: Markus Mueller <metroid120@googlemail.com>
Date: Thu Jun 11 17:40:13 2020 +0200
added charges for SHE in HICUMacload
commit 12fa8a8cf7816f031e742c6684de4189bae366e6
Author: dwarning <dwarning>
Date: Thu Jun 11 15:34:06 2020 +0200
resolve confusing naming of instance parameter structure
commit 7578aec2a8851c00585a77a7ea65f911dd286cc4
Author: dwarning <dwarning>
Date: Thu Jun 11 15:29:40 2020 +0200
introduce version parameter to prevent warnings in qa test
commit b401428cdda201b3e217d94c4c39f1eb2ff991c7
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 10 18:17:44 2020 +0200
minor cleaning
commit 5d28b97fb514f5a2d59bfd01951a65e2d12e2c80
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 7 16:46:21 2020 +0200
added SHE stamps for DC currents in HICUMacload
commit 9737dc7a5b4c681c69c08028fe6af69db077be25
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 7 16:36:36 2020 +0200
HICUM acload initial review
commit 6eefe34d56bc0aedfd086adc246d0f8fd12aed56
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 7 13:58:24 2020 +0200
add real part of AC matrix
commit 55e14e62e76ee1d1984691c4f740782c608ff208
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 7 13:20:12 2020 +0200
dirty fix iavl
commit 99a21e9f61f311a1dabae209623e085bbcdcd7d9
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun Jun 7 12:15:39 2020 +0200
some minor modificaitons, avalanche current problems
commit 99f8c9a9edcbec4f3b90ae7a739fd30cb9183c60
Merge: 17898981c 6b9f5647c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jun 5 10:27:08 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit 17898981cd681a2c88fc0e01deaf86f5182cd565
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri Jun 5 10:20:21 2020 +0200
minor cleaning, fix derivative iavl
commit 6b9f5647caa47c80c74aa4d5a190c0c994c5b609
Author: dwarning <dwarning>
Date: Thu Jun 4 18:23:10 2020 +0200
first version for cmc qa check
commit 3f11d387742314968aedafec8d0ef9424e1d8004
Author: Markus Mueller <metroid120@googlemail.com>
Date: Thu Jun 4 16:37:09 2020 +0200
implemented experimental rth direct evaluation
commit 40900da8bf6b7ea49f752cbd9c17c9b22668086e
Author: Markus Mueller <metroid120@googlemail.com>
Date: Thu Jun 4 14:45:12 2020 +0200
small correction
commit 7f1493bddbe4f87bb3e0ea387967d35b79696c62
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 3 19:25:35 2020 +0200
minor changes, cleaning
commit 55367a44a5f57e8817e8252573df2b713f755d00
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 3 19:05:39 2020 +0200
completed all del voltages
commit d32ff77aef4caf112dbf87f224e9c4e7ccac9f6e
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 3 18:23:19 2020 +0200
renaming variables for cleaner code
commit e4b4978368fae796b5a7b97c4dffc34dbcd75a46
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 3 18:17:49 2020 +0200
adding derivatives of branches with respect to Vrth to the state vector
commit a6b39a749cf3a5c177e32ae458a5e031591f0bdc
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 3 17:29:37 2020 +0200
correct Temperature update
commit 55c33ad675d46f171ae861f1b63d2dd497b933e5
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Jun 3 17:21:31 2020 +0200
before changing Temp in load
commit 7f7b31e5c0ba54f7535da10004439cfb7e2dd883
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 2 20:01:07 2020 +0200
fixing small bugs
commit 755527807406ed2f782fd8f1b6defd7cff0fc274
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 2 19:39:48 2020 +0200
fixed some stamps
commit 0d59e12518a542e4a305c9067ba0f17d62ef1371
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Jun 2 19:13:50 2020 +0200
fixed avalanche
commit ee25c6ce4209927377018dbd6ac0e926a36f6a9c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Jun 1 20:07:25 2020 +0200
cleaned up
commit d61b5102076289cf5e0b17c151939c9034e9b171
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Jun 1 19:18:45 2020 +0200
hicumL2 load routine seems to be working, next ac?
commit 29a61f21e2c2bd944c9158259c50347469ec11ea
Merge: c94120cbf dcf4a4487
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Jun 1 14:32:39 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit c94120cbf958c7a287355e22d1c0354d3e760f18
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Jun 1 14:30:40 2020 +0200
first hicum convergence with SH
commit dcf4a44871cc9c2b2aa1b35e2a56620db0913282
Merge: c37a88bec c1444a06b
Author: dwarning <dwarning>
Date: Mon Jun 1 10:57:42 2020 +0200
Merge branch 'markus_dev' of ssh://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit c37a88bec8a12ab766ac1471a1dc452eabea41d3
Author: dwarning <dwarning>
Date: Mon Jun 1 10:56:53 2020 +0200
set the cppduals include folder above ngspice dir
commit c1444a06b606cde594d7ad8054df527cdd1d4f68
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun May 31 20:38:16 2020 +0200
finish hicum SH review, next testing.
commit e3c194e050701139506ff821f931f7e14141129b
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun May 31 20:26:41 2020 +0200
fixed some stamps, improved code readability, temp stamps corrected
commit 59c50d509572bf916021abc40e69a896f71e7ef6
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat May 30 20:37:28 2020 +0200
fixed rbi stamp, convergence looks pretty good DC no SH
commit f7012280e626a885c5635a19db7025477def0f71
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sat May 30 17:12:37 2020 +0200
fix rbi convergence
commit 326b29c4d86ff9f72fd2959419a8476f913cde48
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri May 29 16:54:30 2020 +0200
started work on self heating
commit 4994feaa2b1b3d13873665b9383ae6e74ecd24d5
Author: Markus Mueller <metroid120@googlemail.com>
Date: Fri May 29 16:08:18 2020 +0200
corrected rbi stamp...
commit 460e7ec04bd00563e4455a8868de1622dab10260
Author: mariok <mario.krattenmacher@web.de>
Date: Wed May 20 11:22:01 2020 +0200
more thermal stuff implemented
commit 194331867e3a92dd9740f72403f303a7121f5954
Author: mariok <mario.krattenmacher@web.de>
Date: Tue May 19 16:24:34 2020 +0200
added HICUMtempCollPtr HICUMtempBasePtr HICUMtempEmitPtr
commit 697af41531cc193346b9fca1f2584b44f0dc0a09
Author: dwarning <dwarning>
Date: Tue May 19 08:03:35 2020 +0200
exchange hicum2temp file in VS project
commit 03750cd24e528119c69d69cf2fc188cfe7d7d334
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun May 17 20:20:00 2020 +0200
ziwschenstand, checked code for maths errors
commit 418966c6e5625be535766ed3c6df7c124431a589
Author: mariok <mario.krattenmacher@web.de>
Date: Wed May 13 10:25:49 2020 +0200
can not call a function inside a comparision
commit abecd18651a5d490bbe6d75ad33bffa204df3322
Author: mariok <mario.krattenmacher@web.de>
Date: Wed May 13 10:09:11 2020 +0200
removed all buggs from hicumL2 to debug.
commit 1fe3cc8b12420b0a3e28fd25290d9d583abe02a9
Merge: afdffacd4 58f66c1d4
Author: mariok <mario.krattenmacher@web.de>
Date: Wed May 13 07:30:56 2020 +0200
Merge remote-tracking branch 'origin/markus_dev' into hicum2-mario
commit afdffacd4b54c992d9168e6babb9ff1e29b0f916
Author: mariok <mario.krattenmacher@web.de>
Date: Tue May 12 19:59:09 2020 +0200
ac und pz load
commit 890ccc415fdba241e9964baa6c066e69ea8e7c7c
Author: mariok <mario.krattenmacher@web.de>
Date: Tue May 12 19:55:23 2020 +0200
implemented hicum_diode as example
commit 63bf7113d4f46cb95c5c3e2b94f0e2e22ec81ea0
Author: mariok <mario.krattenmacher@web.de>
Date: Tue May 12 18:33:51 2020 +0200
all temperature scaling equations done using dual numbers
commit 96c66dd6456693e2f89b4d62390e12160b6c5823
Author: mariok <mario.krattenmacher@web.de>
Date: Tue May 12 17:14:17 2020 +0200
started dual numbers in hicum2temp and a transfer struct in hicum2defs
commit 58f66c1d460f8c7c80c23ab6a08f9ea370ab028f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue May 12 12:28:50 2020 +0200
fix Vbe initialization
commit 35deffa742aea641e5ddc5077c3d78179f84d133
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue May 12 12:25:48 2020 +0200
cleaned further
commit 304dd91f585aa5cc361ae996a9af2ff33043158a
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue May 12 12:15:52 2020 +0200
cleaned up, small fixes, include Tf
commit 1d7da49e27b49f69449dffd164b5c3d079ca8f3f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue May 12 09:37:39 2020 +0200
fixed bugs
commit 479c2a19eaabc4c7545b60d3aaeaf4ad702e19a3
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon May 11 15:50:01 2020 +0200
forgot Nan catcher
commit 5bbe0f9cf7022bff22bdf932f548e883ea2f79f0
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon May 11 15:48:03 2020 +0200
bugfix Q_p calculation
commit 67857cf983e72243b3d6d37f882e4eadb20c0ecc
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon May 11 15:42:27 2020 +0200
fixed derivatives and itf for case without newton iteration
commit d6ee2c206e3daf24fd52b9e58cf87961552c6b16
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon May 11 14:08:18 2020 +0200
resolved some un-initialized variables
commit 76ed5cb36a9aca1ad2a1b081fa30d039d66b4e3b
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun May 10 20:48:38 2020 +0200
finished clean
commit ba6e6d5e4990d048a34ab818e033363dd19f6869
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun May 10 18:48:24 2020 +0200
added all remaining hicum l2 elements
commit 36244b809a3ea143aafc9bed62ea9376bc876f31
Author: Markus Mueller <metroid120@googlemail.com>
Date: Sun May 10 17:45:27 2020 +0200
resolved Dietmar comments from email
commit eaa5be9716360a4003920ed94057e4fe92be9fdd
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue May 5 16:38:08 2020 +0200
added base emitter recombination current and derivatives
commit 4318b7165bccd5e4fba632de02da96e5a64920bd
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue May 5 14:30:15 2020 +0200
added initial conditions for all nodes, model converging again for
simple modelcard
commit 3008c526bff4cba463c362dec2efc2b6c4e60b2a
Author: mariok <mario.krattenmacher@web.de>
Date: Mon May 4 19:00:31 2020 +0200
removed QpT and testing only 1 OP
commit 9cb4c1546f70543b5e3b4060a600157e493c2534
Author: mariok <mario.krattenmacher@web.de>
Date: Mon May 4 18:37:52 2020 +0200
icVBE and icVCE used for DC
commit 8a7369767551f3d5a2e18102ea0aae40a6dd8319
Author: mariok <mario.krattenmacher@web.de>
Date: Mon May 4 18:03:46 2020 +0200
fixed dual number Q_0_hjei_vbe
commit 5783938b086e9b1f9bfb17e32aaf24aedf72f72e
Author: mariok <mario.krattenmacher@web.de>
Date: Mon May 4 16:30:41 2020 +0200
reintroduced dtemp as instance parameter
commit 9350f3f3be710f195fb68b3f9f9ce30f937444ba
Author: dwarning <dwarning>
Date: Sun May 3 17:25:12 2020 +0200
Revert some namings
commit 197f6db83b7d5ad7a6bbb20acf2b884889bcd06c
Author: dwarning <dwarning>
Date: Sat May 2 23:18:58 2020 +0200
Adapt VS project to C++
commit af32f79641536edfa94cc683b6cede036969c667
Author: dwarning <dwarning>
Date: Sat May 2 23:18:43 2020 +0200
Skip NQS effekt and revert some namings
commit a995aa0ccec30cedf7c8088b5c6780abd0bab1c9
Author: dwarning <dwarning>
Date: Sat May 2 23:18:27 2020 +0200
Skip NQS effekt
commit d7295cbe78dd08ba99e95922e1a5a90de2b25666
Merge: 2502b57ee 6ca440e58
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Apr 29 19:04:32 2020 +0200
Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit 2502b57eee9a2820387cd884705096074e0e3d67
Author: Markus Mueller <metroid120@googlemail.com>
Date: Wed Apr 29 19:03:26 2020 +0200
added quests, derivative vciei changed to vbiei vbici
commit 6ca440e584f124fbdc5866c0a2eb5daf6b4ffb9e
Author: dwarning <dwarning>
Date: Wed Apr 29 09:35:12 2020 +0200
add hicumL2.cpp instead of hicum2load.c in VS project
commit 6e98506a7ff35658e7e287a2bd9c9f050cdd2cc0
Author: dwarning <dwarning>
Date: Wed Apr 29 09:33:08 2020 +0200
cmath seems not to have M_PI
commit d6332815b3e7239feb89ccc9fbb349f62fc11aba
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Apr 28 20:58:35 2020 +0200
derivatives it looking good
commit aaaace7247f8da75b03065d22752f7261434cd43
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Apr 28 19:39:48 2020 +0200
adding hicum derivatives like a mad-man
commit 2d8a3e36292afe276c6dc7506aefbfe5005fe053
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Apr 28 18:44:46 2020 +0200
added Q_pT and derivatives...fun
commit 50a3e372cfefb4e45df19ec0008c8e9ffad3d99f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Apr 28 17:17:17 2020 +0200
starting work on transfer current
commit 8fd70e2f151d017018cb8e2d31e8f97b6a395e3c
Author: Markus Mueller <metroid120@googlemail.com>
Date: Tue Apr 28 13:01:18 2020 +0200
added asks, found bug with ibci
commit 2baac89ae3d02e44d314132be5cd884a7a12ca8b
Merge: 97a0aa856 c897e60c8
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 27 20:47:06 2020 +0200
Merge remote-tracking branch 'origin/hicum2-thermal' into markus_dev
commit c897e60c8b1e6df92564bf6e56ce9e3efc2bd40f
Author: mariok <mario.krattenmacher@web.de>
Date: Mon Apr 27 18:12:40 2020 +0200
pointer in ask
commit 3b0551c544e542e10006b77bc0684b3075c874f7
Author: mariok <mario.krattenmacher@web.de>
Date: Mon Apr 27 17:36:19 2020 +0200
two small bugfixes
commit b02c763ed1a1e1e53c095e8b88627a7d76e0954a
Author: mariok <mario.krattenmacher@web.de>
Date: Mon Apr 27 17:13:30 2020 +0200
HICUM2ask done according to VA-Code
commit 97a0aa856b69806b3816a4db74e0b88a464b26a1
Merge: afbde8050 d86caadb0
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 27 16:22:32 2020 +0200
Merge remote-tracking branch 'origin/hicum2-thermal' into markus_dev
commit afbde805009884b532fb9cad37827d2a4f6464ab
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 27 16:21:25 2020 +0200
zwischenstand
commit d86caadb07482926593ce3cfc1dce53ebc009341
Author: mariok <mario.krattenmacher@web.de>
Date: Thu Apr 23 18:23:40 2020 +0200
added nodes for NQS
commit 1b0cf0d08c7ca282dba8f1fbecf05b391324ef95
Author: mariok <mario.krattenmacher@web.de>
Date: Thu Apr 23 16:59:55 2020 +0200
testing with and without self heating
commit 64c0c41180420b205b1eae1237634d31ffd2d1a5
Merge: 9da946bf2 0d0c6a080
Author: mariok <mario.krattenmacher@web.de>
Date: Thu Apr 23 16:29:18 2020 +0200
Merge branch 'markus_dev' into hicum2-thermal
commit 0d0c6a0800681868ad8aa3f14367d1f81936e593
Author: mariok <mario.krattenmacher@web.de>
Date: Thu Apr 23 16:26:37 2020 +0200
assigned the temperature derivates to me
commit 1b00fad771d6cd34b5bb3fd1fc5a1d23bcc87790
Merge: f5a1c35d8 dc7891f7b
Author: mariok <mario.krattenmacher@web.de>
Date: Thu Apr 23 14:16:32 2020 +0200
Merge branch 'markus_dev' of ssh://git.code.sf.net/p/ngspice/ngspice into markus_dev
commit f5a1c35d803a2406e114133bb469705acd2fb7e5
Author: mariok <mario.krattenmacher@web.de>
Date: Thu Apr 23 14:14:40 2020 +0200
removed dummdumm
commit dc7891f7b543b1f9651ed25e5632c631f402df49
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 19:16:36 2020 +0200
added more junction caps, checklist and overview
commit 0dbf31bc739938eecc281656a3141085ffc4df42
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 19:00:16 2020 +0200
derivatives rbi
commit 330d009fa684295f78f6b669fae2c663f7f4fe26
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 18:40:24 2020 +0200
more derivatives avalanche current, ibcis
commit ce200d75e337c7cb684391b2d7556f6c2d8c8804
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 18:05:49 2020 +0200
derivatives peripheral junction caps, diodes
commit 8ce9733f9176d5220c8db8c4deb322eb64f4ad1a
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 17:45:42 2020 +0200
derivatives tunneling current
commit 806ff8013825cc154f11f2206644d0d8be825ecb
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 17:17:14 2020 +0200
derivatives critical current
commit 8f49490cecf43ee22aecebcccb16752bc5a1728f
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 16:59:09 2020 +0200
derivatives T_f0
commit 3164dbe594025e16d8dfbd1c50922dbcac70e62a
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 16:38:34 2020 +0200
derivatives hole charge at low bias
commit b32bf6dd149a218e74af389f3a7bea9adcc89f22
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 16:27:38 2020 +0200
zwischenstand
commit 84307c4acfb72aeb0cf9acbd0ca64223a58a20cb
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 16:19:25 2020 +0200
zwischenstand
commit 0d94c5d56d86c52ab0638e095d7c6b816723929f
Author: mariok <mario.krattenmacher@web.de>
Date: Mon Apr 20 10:56:58 2020 +0200
moved cppduals to system lib include
commit 9da946bf2d5beaa1a1e74c0465d78bfd079bc320
Author: mariok <mario.krattenmacher@web.de>
Date: Mon Apr 20 09:59:49 2020 +0200
started derivatives of hicum2 minority charge
commit a2946e98a442e32fab493bcbd8d05ca934c20e20
Author: Markus Mueller <metroid120@googlemail.com>
Date: Mon Apr 20 09:56:06 2020 +0200
introduced dual numbers, ported hiucm2load to c++ hicumL2.cpp, boolean
type protected by extern "C"
commit c7e5df27dbd5b74586d64c9404166e67a1c7af62
Author: mariok <mario.krattenmacher@web.de>
Date: Thu Apr 16 14:44:41 2020 +0200
DC runs with Ixf
commit 08a0e6a019957ba9c29ee96653254880b26c8c98
Author: mariok <mario.krattenmacher@web.de>
Date: Wed Apr 15 18:15:26 2020 +0200
gummel works with flsh = 1 and flnqs = 0
commit b83e05ee95c6d9771189e54ce6834519d71071c3
Author: mariok <mario.krattenmacher@web.de>
Date: Tue Apr 14 16:09:42 2020 +0200
added test to makefile
commit 7d29a9a269cb405c71fd64249c5b439b87a64cc3
Author: mariok <mario.krattenmacher@web.de>
Date: Tue Apr 14 10:06:27 2020 +0200
test circuit and results
commit 14c46bc3bd3f2f2a4f333ef8e85e2d35dcfd8cc5
Author: mariok <mario.krattenmacher@web.de>
Date: Mon Apr 13 18:12:06 2020 +0200
cleaned renaming in all files
commit 67ddd98f7520d6cd729bbb5ca927859bb3d3f2b0
Author: dwarning <dwarning>
Date: Wed Jan 29 13:08:02 2020 +0100
rename
commit 9551b6df924e455bde48d5da3077dcd764d95761
Author: dwarning <dwarning>
Date: Wed Jan 29 13:07:42 2020 +0100
rename
commit 12bb866ba5d2481b09f6c9adc17ec21ed3038534
Author: dwarning <dwarning>
Date: Wed Jan 29 13:06:45 2020 +0100
rename
commit 414eeb4067249d3065181e308ffe7eb815a6f181
Author: dwarning <dwarning>
Date: Tue Jan 28 22:18:08 2020 +0100
clarify charge and capacitance implementation
commit c318ef15eefd0a0517cb35f4a4403a8e8cd00e17
Author: dwarning <dwarning>
Date: Sat Jan 25 14:57:55 2020 +0100
introduce first excess phase network and update to 2.4.0
commit 85c34cfb0f2b594febbd0adcb315ebb4e5499748
Author: dwarning <dwarning>
Date: Wed Jan 22 18:16:54 2020 +0100
VS update
commit 86ff2778f8ffcce688e8e08099801d920d6a3927
Author: dwarning <dwarning>
Date: Wed Jan 22 18:16:29 2020 +0100
OP infos
commit 1607f4d88c026fd573e19a16793208c48b025612
Author: dwarning <dwarning>
Date: Wed Jan 22 18:16:19 2020 +0100
OP infos
commit ca1e114922fecc11a4245a04f5639c11d539be8f
Author: dwarning <dwarning>
Date: Wed Jan 22 18:16:11 2020 +0100
OP infos
commit 408440d33b65741a7cd1171a9023f13cfb180e15
Author: dwarning <dwarning>
Date: Tue Jan 21 11:25:56 2020 +0100
some cleanings
commit 3364f6da87f79763344fd0f9ef705b521e23ee09
Author: dwarning <dwarning>
Date: Tue Jan 14 09:55:58 2020 +0100
VS update
commit 6fbefe4afa0fd1355eab636756ae592bad8b501f
Author: dwarning <dwarning>
Date: Tue Jan 14 09:55:48 2020 +0100
Ongoing derivations
commit 86521dd7c0e067644765e4de450b2eead9a1c24a
Author: dwarning <dwarning>
Date: Tue Jan 14 09:02:52 2020 +0100
VS update
commit ba5b106faeecc3170c3d018ec10b0a388c12e2cf
Author: dwarning <dwarning>
Date: Tue Jan 14 09:01:30 2020 +0100
Ongoing derivations
commit ea6254eca3b21fb3c7044eee00053cfce170034f
Author: dwarning <dwarning>
Date: Sat Jan 11 17:17:21 2020 +0100
Initial HICUM2 integration
commit 2bd0f1bdab6161ec21f790c4908590fcafa9b818
Author: dwarning <dwarning>
Date: Mon Jan 6 00:11:48 2020 +0100
Initial HICUM2 integration
commit 7d160f659e46021c0da882ea84ce4868ecd0acc0
Author: dwarning <dwarning>
Date: Sun Jan 5 15:01:20 2020 +0100
Initial HICUM2 integration
commit 420ca90e55bb77a3999527f25fa985146c6a1ef3
Author: dwarning <dwarning>
Date: Sun Jan 5 15:00:06 2020 +0100
Initial HICUM2 integration
2020-10-31 19:17:59 +01:00
|
|
|
print OF ".options temp=$temperature gmin=1e-13 abstol=1e-13 reltol=1e-3";
|
2011-05-28 21:08:04 +02:00
|
|
|
if ($variant=~/^scale$/) {
|
|
|
|
|
die("ERROR: there is no scale or shrink option for ngspice, stopped");
|
|
|
|
|
}
|
|
|
|
|
if ($variant=~/^shrink$/) {
|
|
|
|
|
die("ERROR: there is no scale or shrink option for ngspice, stopped");
|
|
|
|
|
}
|
|
|
|
|
if ($variant=~/_P/) {
|
|
|
|
|
$eFactor=-1;$fFactor=1;
|
|
|
|
|
} else {
|
|
|
|
|
$eFactor=1;$fFactor=-1;
|
|
|
|
|
}
|
|
|
|
|
if ($variant=~/^m$/) {
|
|
|
|
|
if ($main::outputNoise) {
|
|
|
|
|
$fFactor/=sqrt($main::mFactor);
|
|
|
|
|
} else {
|
|
|
|
|
$fFactor/=$main::mFactor;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (defined($main::verilogaFile)) {
|
|
|
|
|
die("ERROR: Verilog-A model support is not implemented for ngspice, stopped");
|
|
|
|
|
}
|
|
|
|
|
print OF ".subckt mysub ".join(" ",@Pin_x);
|
|
|
|
|
foreach $pin (@main::Pin) {
|
|
|
|
|
if ($main::isFloatingPin{$pin}) { # assumed "dt" thermal pin, no scaling sign change
|
|
|
|
|
print OF "v_$pin ${pin} ${pin}_x 0";
|
|
|
|
|
} elsif ($variant=~/^Flip/ && defined($main::flipPin{$pin})) {
|
|
|
|
|
print OF "e_$pin ${pin}_v 0 $main::flipPin{$pin}_x 0 $eFactor";
|
|
|
|
|
print OF "v_$pin ${pin}_v ${pin} 0";
|
|
|
|
|
print OF "f_$pin $main::flipPin{$pin}_x 0 v_$pin $fFactor";
|
|
|
|
|
} else {
|
|
|
|
|
print OF "e_$pin ${pin}_v 0 ${pin}_x 0 $eFactor";
|
|
|
|
|
print OF "v_$pin ${pin}_v ${pin} 0";
|
|
|
|
|
print OF "f_$pin ${pin}_x 0 v_$pin $fFactor";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
print OF "${main::keyLetter}1 ".join(" ",@main::Pin)." mymodel";
|
|
|
|
|
foreach $arg (@main::InstanceParameters) {
|
|
|
|
|
($name,$value)=split(/=/,$arg);
|
|
|
|
|
if ($variant=~/^scale$/) {
|
|
|
|
|
if ($main::isLinearScale{$name}) {
|
|
|
|
|
$value/=$main::scaleFactor;
|
|
|
|
|
} elsif ($main::isAreaScale{$name}) {
|
|
|
|
|
$value/=$main::scaleFactor**2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ($variant=~/^shrink$/) {
|
|
|
|
|
if ($main::isLinearScale{$name}) {
|
|
|
|
|
$value/=(1.0-$main::shrinkPercent*0.01);
|
|
|
|
|
} elsif ($main::isAreaScale{$name}) {
|
|
|
|
|
$value/=(1.0-$main::shrinkPercent*0.01)**2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
print OF "+ $name=$value";
|
|
|
|
|
}
|
|
|
|
|
if ($variant eq "m") {
|
|
|
|
|
print OF "+ m=$main::mFactor";
|
|
|
|
|
}
|
|
|
|
|
if ($variant=~/_P/) {
|
|
|
|
|
print OF ".model mymodel $main::pTypeSelectionArguments";
|
|
|
|
|
} else {
|
|
|
|
|
print OF ".model mymodel $main::nTypeSelectionArguments";
|
|
|
|
|
}
|
|
|
|
|
foreach $arg (@main::ModelParameters) {
|
|
|
|
|
print OF "+ $arg";
|
|
|
|
|
}
|
|
|
|
|
print OF ".ends";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
1;
|