[Pkg-electronics-commits] [gnucap] 05/47: paramset: multi-line paramset

felix salfelder felix-guest at moszumanska.debian.org
Mon Sep 26 10:34:32 UTC 2016


This is an automated email from the git hooks/post-receive script.

felix-guest pushed a commit to branch master
in repository gnucap.

commit ec034a1f0bf26b2abb0c9bc86309941e8fd23add
Author: al davis <ad211 at freeelectron.net>
Date:   Sat Sep 10 15:50:32 2016 -0400

    paramset:  multi-line paramset
---
 apps/lang_verilog.cc               | 17 ++++++++++----
 include/patchlev.h                 |  2 +-
 tests/==out/lang_verilog.1a.gc.out | 33 ++++++++++++++++++++++++++
 tests/lang_verilog.1a.gc           | 47 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 94 insertions(+), 5 deletions(-)

diff --git a/apps/lang_verilog.cc b/apps/lang_verilog.cc
index 45dcbb2..32fb49b 100644
--- a/apps/lang_verilog.cc
+++ b/apps/lang_verilog.cc
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  * 02110-1301, USA.
  */
+//testing=script 2016.09.10
 #include "globals.h"
 #include "c_comand.h"
 #include "d_dot.h"
@@ -229,7 +230,6 @@ DEV_DOT* LANG_VERILOG::parse_command(CS& cmd, DEV_DOT* x)
  *  "endparamset"
  */
 //BUG// no paramset_item_declaration, falls back to spice mode
-//BUG// must be on single line
 
 MODEL_CARD* LANG_VERILOG::parse_paramset(CS& cmd, MODEL_CARD* x)
 {
@@ -239,9 +239,18 @@ MODEL_CARD* LANG_VERILOG::parse_paramset(CS& cmd, MODEL_CARD* x)
   parse_label(cmd, x);
   parse_type(cmd, x);
   cmd >> ';';
-  parse_args_paramset(cmd, x);
-  cmd >> "endparamset ";
-  cmd.check(bWARNING, "what's this?");
+
+  for (;;) {
+    parse_args_paramset(cmd, x);
+    if (cmd >> "endparamset ") {
+      break;
+    }else if (!cmd.more()) {
+      cmd.get_line("verilog-paramset>");
+    }else{untested();
+      cmd.check(bWARNING, "what's this?");
+      break;
+    }
+  }
   return x;
 }
 /*--------------------------------------------------------------------------*/
diff --git a/include/patchlev.h b/include/patchlev.h
index 8210f43..c3a0514 100644
--- a/include/patchlev.h
+++ b/include/patchlev.h
@@ -1 +1 @@
-#define PATCHLEVEL "traces-1 2016.08.11"
+#define PATCHLEVEL "paramset 2016.09.10"
diff --git a/tests/==out/lang_verilog.1a.gc.out b/tests/==out/lang_verilog.1a.gc.out
new file mode 100644
index 0000000..4815dfc
--- /dev/null
+++ b/tests/==out/lang_verilog.1a.gc.out
@@ -0,0 +1,33 @@
+paramset zz npn;\
+ .level=1; .kf=NA( 0.); .af=NA( 1.); .bf=150; .br=NA( 1.); .is=NA( 100.E-18); .nf=NA( 1.); .nr=NA( 1.); .c4=NA( 0.); .nc=NA( 2.); .c2=NA( 0.); .ne=NA( 1.5); .rb=NA( 0.); .re=NA( 0.); .rc=NA( 0.); .cjc=NA( 0.); .cje=NA( 0.); .cjs=NA( 0.); .mjc=NA( 0.33); .mje=NA( 0.33); .mjs=NA( 0.); .vjc=NA( 0.75); .vje=NA( 0.75); .vjs=NA( 0.75); .xcjc=NA( 1.); .itf=NA( 0.); .ptf=NA( 0.); .tf=NA( 0.); .tr=NA( 0.); .xtf=NA( 0.); .xtb=NA( 0.); .xti=NA( 3.); .eg=NA( 1.11);\
+endparmset
+
+module dumb_resistor (a,b);
+resistor #(.r(r)) R1 (.p(a),.n(b));
+endmodule // dumb_resistor
+
+module foo (vcc,in,out);
+resistor #(.r(z)) Rc (.p(c),.n(vcc));
+zz #(.area(NA( 1.))) q1 (.c(c),.b(b),.e(e));
+dumb_resistor #(.r(abs(-z)/10)) Re (.a(e),.b(0));
+resistor #(.r(100k)) Rb1 (.p(b),.n(vcc));
+dumb_resistor #(.r(r)) Rb2 (.a(b),.b(0));
+capacitor #(.c(1u)) Cin (.p(b),.n(in));
+capacitor #(.c(1u)) Cout (.p(c),.n(out));
+resistor #(.r(100k)) Rin (.p(in),.n(0));
+resistor #(.r(100k)) Rout (.p(out),.n(0));
+endmodule // foo
+
+foo #(.r(10k)) X1 (.vcc(V_cc),.in(amp_in),.out(out));
+resistor #(.r(10*(1-gain))) Rin1 (.p(in),.n(amp_in));
+resistor #(.r(10*gain)) Rin2 (.p(amp_in),.n(0));
+vsource #( DC  20.) Vcc (.p(V_cc),.n(0));
+vsource #( AC  0.2) Vin (.p(in),.n(0));
+#           v(V_cc)    v(in)      v(out)     iter(0)    vc(X1.q1)  vce(X1.q1)
+ 27.        20.        0.         0.         16.        10.213     9.2279    
+#Freq       v(V_cc)    v(in)      v(amp_in)  v(out)    
+ 1.K        869.54p    0.2        0.099968   0.87954   
+#           v(V_cc)    v(in)      v(out)     iter(0)   
+ 27.        20.        0.         0.         16.       
+#Freq       v(V_cc)    v(in)      v(amp_in)  v(out)    
+ 1.K        796.25p    0.2        0.099968   0.80624   
diff --git a/tests/lang_verilog.1a.gc b/tests/lang_verilog.1a.gc
new file mode 100644
index 0000000..cb0f85b
--- /dev/null
+++ b/tests/lang_verilog.1a.gc
@@ -0,0 +1,47 @@
+
+simulator lang=verilog
+
+paramset zz npn;
+ .bf=150;
+endparamset
+
+module dumb_resistor (a b);
+parameter real r=10k;
+resistor #(r) R1 (a b);
+endmodule
+
+module foo (vcc in out);
+parameter real z=10k;
+parameter real r;
+resistor      #(.r(z))         Rc   (.p(c), .n(vcc));
+zz            #(.off(1))       q1   (.b(b), .c(c), .e(e));
+dumb_resistor #(.r(abs(-z)/10) Re   (e 0);
+resistor      #(.r(100k))      Rb1  (b vcc);
+dumb_resistor #(.r(r))         Rb2  (b 0);
+capacitor     #(.c(1u))        Cin  (b in);
+capacitor     #(.c(1u))        Cout (c out);
+resistor      #(.r(100k))      Rin  (in 0);
+resistor      #(.r(100k))      Rout (out 0);
+endmodule
+
+foo      #(.r(10k))         X1   (V_cc amp_in out);
+resistor #(.r(10*(1-gain))) Rin1 (in amp_in);
+resistor #(.r(10*gain))     Rin2 (amp_in 0);
+
+simulator lang=spice insensitive=no
+Vcc (V_cc 0) dc 20
+Vin (in 0) ac .2
+.simulator lang=verilog
+
+parameter gain=.5;
+list
+print op v(V_cc) v(in) v(out) iter(0) vc(X1.q1) vce(X1.q1)
+op
+print ac v(V_cc) v(in) v(amp_in) v(out)
+ac 1k
+
+resistor #(100k) Rload (out 0);
+op
+ac
+
+end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-electronics/gnucap.git



More information about the Pkg-electronics-commits mailing list