From ea685d3c646ee169a3a12b9131b554a7bad6c11f Mon Sep 17 00:00:00 2001 From: Brian Taylor Date: Tue, 1 Aug 2023 14:37:20 -0700 Subject: [PATCH 1/5] For d0_eff, d0_gff timing models specify the 1.0e-12 minimum Xspice delay valuesrather than defaulting to 1ns. --- src/frontend/udevices.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/frontend/udevices.c b/src/frontend/udevices.c index 49822946e..e7ae3b90b 100644 --- a/src/frontend/udevices.c +++ b/src/frontend/udevices.c @@ -918,12 +918,18 @@ void initialize_udevice(char *subckt_line) "ugate", "", "d0_gate", ""); (void) add_xlator(default_models, xdata); /* .model d0_gff ugff () */ - xdata = create_xlate("", "", "ugff", "d_dlatch", "d0_gff", ""); + xdata = create_xlate("", +"(data_delay=1.0e-12 enable_delay=1.0e-12 set_delay=1.0e-12 reset_delay=1.0e-12 rise_delay=1.0e-12 fall_delay=1.0e-12)", + "ugff", "d_dlatch", "d0_gff", ""); (void) add_xlator(default_models, xdata); - xdata = create_xlate("", "", "ugff", "d_srlatch", "d0_gff", ""); + xdata = create_xlate("", +"(sr_delay=1.0e-12 enable_delay=1.0e-12 set_delay=1.0e-12 reset_delay=1.0e-12 rise_delay=1.0e-12 fall_delay=1.0e-12)", + "ugff", "d_srlatch", "d0_gff", ""); (void) add_xlator(default_models, xdata); /* .model d0_eff ueff () */ - xdata = create_xlate("", "", "ueff", "", "d0_eff", ""); + xdata = create_xlate("", +"(clk_delay=1.0e-12 set_delay=1.0e-12 reset_delay=1.0e-12 rise_delay=1.0e-12 fall_delay=1.0e-12)", + "ueff", "", "d0_eff", ""); (void) add_xlator(default_models, xdata); /* .model d0_tgate utgate () */ xdata = create_xlate("", "(inertial_delay=true delay=1.0e-12)", From 0b6a937537e485127ab5b8f0b090262875f1caaf Mon Sep 17 00:00:00 2001 From: dwarning Date: Fri, 4 Aug 2023 15:00:36 +0200 Subject: [PATCH 2/5] no need for extra run --- examples/vbic/npn_out.sp | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/vbic/npn_out.sp b/examples/vbic/npn_out.sp index 30256ec4c..44ea0a0a6 100644 --- a/examples/vbic/npn_out.sp +++ b/examples/vbic/npn_out.sp @@ -9,7 +9,6 @@ XQ1 C B 0 S qnva .control dc vc 0.0 5.0 0.05 ib 1u 10u 1u -run plot abs(i(vc)) .endc From aecf5cdcbaebf2a3d54848e4a6a84e851e48d4f8 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Fri, 4 Aug 2023 20:11:39 +0200 Subject: [PATCH 3/5] Fix comment on old-style .lib --- src/frontend/inpcom.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 1726feed6..d7b178151 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -1350,10 +1350,9 @@ struct inp_read_t inp_read( FILE *fp, int call_depth, const char *dir_name, */ if (ciprefix(".lib", buffer)) if (newcompat.lt || newcompat.ps) { - /* compatibility mode, - * this is neither a libray section definition nor a - * reference interpret as old style .lib (no lib - * name given) + /* In lt or ps there is no library section definition defined, + * so .lib is interpreted as old style .lib (no lib + * name given, .lib replaced by .include). */ char *s = skip_non_ws(buffer); /* skip over .lib */ fprintf(cp_err, " File included as: .inc %s\n", s); From 2a1ecefc28544320f603464ae934c886e52b8ada Mon Sep 17 00:00:00 2001 From: dwarning Date: Fri, 4 Aug 2023 21:38:04 +0200 Subject: [PATCH 4/5] better low Ic range covering --- examples/vbic/npn_ft.sp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/vbic/npn_ft.sp b/examples/vbic/npn_ft.sp index 90854519c..62d9196e2 100644 --- a/examples/vbic/npn_ft.sp +++ b/examples/vbic/npn_ft.sp @@ -21,7 +21,7 @@ set scratch=$curplot $ store its name to 'scratch' setplot $scratch $ make 'scratch' the active plot let ft=unitvec(ft_runs) $ create a vector in plot 'scratch' to store ft data let ic=unitvec(ft_runs) $ create a vector in plot 'scratch' to store ic data -foreach myic 1m 4m 7m 10m 20m 40m 60m 75m 90m 100m 110m 130m 180m +foreach myic 2m 5m 9m 15m 22m 30m 50m 75m 90m 100m 110m 130m 180m alter ic = $myic ac dec 100 100k 50g *plot vdb(vgain#branch) From 93443b988e81de4da0eb4bda83fd44282f85244b Mon Sep 17 00:00:00 2001 From: dwarning Date: Fri, 4 Aug 2023 21:43:45 +0200 Subject: [PATCH 5/5] decrease iteration count for low base biasing --- src/spicelib/devices/vbic/vbicload.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/spicelib/devices/vbic/vbicload.c b/src/spicelib/devices/vbic/vbicload.c index b0c7efff4..622345c20 100644 --- a/src/spicelib/devices/vbic/vbicload.c +++ b/src/spicelib/devices/vbic/vbicload.c @@ -246,7 +246,8 @@ VBICload(GENmodel *inModel, CKTcircuit *ckt) Vrth = 0.0, Icth = 0.0, Icth_Vrth = 0.0; } else if((ckt->CKTmode & MODEINITJCT) && (here->VBICoff==0)) { Vbe=Vbei=Vbex=model->VBICtype*here->VBICtVcrit; - Vbc=Vbci=Vbcx=Vbep=0.0; + Vbc=Vbcx=Vbep=0.0; + Vbci=-model->VBICtype*here->VBICtVcrit; Vbcp=Vbc-Vbe; Vrci=Vrbi=Vrbp=0.0; Vrcx=Vrbx=Vre=Vrs=0.0;