diff --git a/src/ngspice_backannotate.tcl b/src/ngspice_backannotate.tcl index cd05c7b5..d69eb5a6 100644 --- a/src/ngspice_backannotate.tcl +++ b/src/ngspice_backannotate.tcl @@ -136,22 +136,22 @@ proc annotate {} { for { set i 0 } { $i < $lastinst } {incr i } { set name [xschem getprop instance $i name] set type [xschem getprop instance $i cell::type] - if { $type == "probe" || $type == "devices/probe"} { + if { [regexp {(^|/)probe$} $type ] } { set net $path[xschem instance_net $i p] if {[catch {xschem setprop $i voltage [get_voltage arr $net] fast} err]} { - puts "1 error : $err net: $net" + puts "Error 1: ${err}, net: $net" } } - if { $type == "current_probe" || $type == "devices/current_probe"} { + if { [regexp {current_probe$} $type ] } { if {[catch {xschem setprop $i current [get_current arr $path$name] fast} err]} { - puts "2 error : $err" + puts "Error 2: $err" } } - if { $type == "differential_probe" || $type == "devices/differential_probe"} { + if { [regexp {differential_probe$} $type ] } { set netp $path[xschem instance_net $i p] set netm $path[xschem instance_net $i m] if {[catch {xschem setprop $i voltage [get_diff_voltage arr $netp $netm] fast} err]} { - puts "3 error : $err" + puts "Error 3: $err" } } # puts "$i $name $type" diff --git a/src/token.c b/src/token.c index e25372e1..b963c6fc 100644 --- a/src/token.c +++ b/src/token.c @@ -458,7 +458,7 @@ const char *list_tokens(const char *s, int with_quotes) /* with_quotes: */ /* 0: eat non escaped quotes (") */ /* 1: return unescaped quotes as part of the token value if they are present */ -/* 2: eat backslashes */ +/* 2: eat backslashes and unescaped double quotes (") */ const char *get_tok_value(const char *s,const char *tok, int with_quotes) { static char *result=NULL; diff --git a/xschem_library/examples/mos_power_ampli.sch b/xschem_library/examples/mos_power_ampli.sch index 081e6d20..4ceb8b5e 100644 --- a/xschem_library/examples/mos_power_ampli.sch +++ b/xschem_library/examples/mos_power_ampli.sch @@ -3,8 +3,8 @@ G {} K {} V {} S { -.probe v(ga,sa) v(gb,sb) -.probe p(q*) p(r*) i(r*) p(xm1) p(xm2) i(d*)} +* .probe v(ga,sa) v(gb,sb) +* .probe p(q*) p(r*) i(r*) p(xm1) p(xm2) i(d*)} E {} T {CURRENT MEASURE} 1040 -660 0 0 0.2 0.2 {} @@ -147,8 +147,8 @@ C {lab_pin.sym} 340 -970 0 1 {name=p23 lab=E2} C {lab_pin.sym} 560 -970 0 1 {name=p28 lab=E6} C {lab_pin.sym} 840 -1000 0 0 {name=p29 lab=E4} C {lab_pin.sym} 180 -1120 0 0 {name=p34 lab=VBOOST} -C {ammeter.sym} 1110 -540 0 0 {name=vd current=0.2093 net_name=true} -C {ammeter.sym} 1110 -640 0 0 {name=vu current=0.2336 net_name=true} +C {ammeter.sym} 1110 -540 0 0 {name=vd current=0.2229 net_name=true} +C {ammeter.sym} 1110 -640 0 0 {name=vu current=0.2165 net_name=true} C {lab_pin.sym} 60 -1180 0 0 {name=p27 lab=VPP} C {pnp.sym} 200 -950 0 1 {name=Q1 model=q2n2907p area=1 net_name=true} C {pnp.sym} 360 -790 0 1 {name=Q2 model=q2n2907p area=1 net_name=true} @@ -230,33 +230,33 @@ C {lab_pin.sym} 180 -690 0 0 {name=p8 lab=C7} C {lab_pin.sym} 340 -710 0 1 {name=p31 lab=C2} C {title.sym} 160 -30 0 0 {name=l2 author="Stefan Schippers"} C {lab_pin.sym} 930 -700 0 0 {name=p32 lab=SA} -C {ammeter.sym} 1110 -350 0 0 {name=v0 current=0.2288 net_name=true} +C {ammeter.sym} 1110 -350 0 0 {name=v0 current=0.2423 net_name=true} C {lab_pin.sym} 930 -380 0 0 {name=p35 lab=SB} -C {ammeter.sym} 560 -890 0 0 {name=v1 current=0.01956 net_name=true} -C {ammeter.sym} 340 -890 0 0 {name=v2 current=0.01947 net_name=true} +C {ammeter.sym} 560 -890 0 0 {name=v1 current=0.01959 net_name=true} +C {ammeter.sym} 340 -890 0 0 {name=v2 current=0.01949 net_name=true} C {ammeter.sym} 260 -310 0 0 {name=v3 current=0.03924 net_name=true} -C {ammeter.sym} 770 -440 3 0 {name=v4 current=0.01942 net_name=true} -C {ammeter.sym} 690 -680 0 0 {name=v5 current=0.006271 net_name=true} -C {ammeter.sym} 180 -870 0 1 {name=v6 current=0.01955 net_name=true} -C {ammeter.sym} 840 -890 0 0 {name=v7 current=0.0195 net_name=true} -C {spice_probe.sym} 1010 -440 0 0 {name=p36 analysis=tran voltage=-46.31} -C {spice_probe_vdiff.sym} 930 -410 0 0 {name=p37 analysis=tran voltage=3.689} -C {spice_probe_vdiff.sym} 930 -730 0 0 {name=p38 analysis=tran voltage=3.691} -C {spice_probe.sym} 1010 -760 0 0 {name=p39 analysis=tran voltage=3.814} -C {spice_probe.sym} 1220 -590 0 0 {name=p40 analysis=tran voltage=0.1231} +C {ammeter.sym} 770 -440 3 0 {name=v4 current=0.01944 net_name=true} +C {ammeter.sym} 690 -680 0 0 {name=v5 current=0.006183 net_name=true} +C {ammeter.sym} 180 -870 0 1 {name=v6 current=0.01952 net_name=true} +C {ammeter.sym} 840 -890 0 0 {name=v7 current=0.01947 net_name=true} +C {spice_probe.sym} 1010 -440 0 0 {name=p36 analysis=tran voltage=-46.14} +C {spice_probe_vdiff.sym} 930 -410 0 0 {name=p37 analysis=tran voltage=3.693} +C {spice_probe_vdiff.sym} 930 -730 0 0 {name=p38 analysis=tran voltage=3.685} +C {spice_probe.sym} 1010 -760 0 0 {name=p39 analysis=tran voltage=3.548} +C {spice_probe.sym} 1220 -590 0 0 {name=p40 analysis=tran voltage=-0.1372} C {spice_probe.sym} 380 -530 0 0 {name=p41 analysis=tran voltage=21.3} C {spice_probe.sym} 140 -530 0 1 {name=p42 analysis=tran voltage=21.3} -C {spice_probe.sym} 250 -470 0 1 {name=p43 analysis=tran voltage=20.61} -C {spice_probe.sym} 440 -790 0 0 {name=p44 analysis=tran voltage=48.22} -C {spice_probe.sym} 280 -950 0 0 {name=p45 analysis=tran voltage=48.22} -C {spice_probe.sym} 730 -810 0 0 {name=p46 analysis=tran voltage=25.21} +C {spice_probe.sym} 250 -470 0 1 {name=p43 analysis=tran voltage=20.38} +C {spice_probe.sym} 440 -790 0 0 {name=p44 analysis=tran voltage=48.05} +C {spice_probe.sym} 280 -950 0 0 {name=p45 analysis=tran voltage=47.26} +C {spice_probe.sym} 730 -810 0 0 {name=p46 analysis=tran voltage=24.6} C {spice_probe.sym} 610 -1180 0 0 {name=p47 analysis=tran voltage=50} -C {spice_probe.sym} 760 -1120 0 0 {name=p48 analysis=tran voltage=50} -C {ammeter.sym} 1300 -590 3 0 {name=v8 current=0.03055 net_name=true} +C {spice_probe.sym} 760 -1120 0 0 {name=p48 analysis=tran voltage=49.03} +C {ammeter.sym} 1300 -590 3 0 {name=v8 current=-2.1207e-04 net_name=true} C {spice_probe.sym} 1110 -280 0 0 {name=p49 analysis=tran voltage=-50} -C {spice_probe.sym} 280 -630 0 1 {name=p50 analysis=tran voltage=42.36} -C {spice_probe.sym} 340 -820 0 1 {name=p51 analysis=tran voltage=49.03} -C {spice_probe.sym} 120 -210 0 1 {name=p52 analysis=tran voltage=-42.58} +C {spice_probe.sym} 280 -630 0 1 {name=p50 analysis=tran voltage=42.18} +C {spice_probe.sym} 340 -820 0 1 {name=p51 analysis=tran voltage=48.86} +C {spice_probe.sym} 120 -210 0 1 {name=p52 analysis=tran voltage=-42.41} C {spice_probe.sym} 130 -70 0 1 {name=p53 analysis=tran voltage=-50} C {opin.sym} 600 -130 0 0 {name=p5 lab=OUT} C {ipin.sym} 530 -180 0 0 {name=p1 lab=MINUS} diff --git a/xschem_library/examples/poweramp.sch b/xschem_library/examples/poweramp.sch index f164c26f..ec3c88ff 100644 --- a/xschem_library/examples/poweramp.sch +++ b/xschem_library/examples/poweramp.sch @@ -26,25 +26,25 @@ T {actual value 200} 870 -1330 0 0 0.4 0.4 {} N 160 -1250 160 -1230 {lab=#net1} N 160 -1110 160 -1090 {lab=#net2} -N 280 -1170 340 -1170 {lab=VSS} +N 370 -1170 380 -1170 {lab=VSS} N 710 -700 860 -700 {lab=OUTM} N 510 -1200 580 -1200 {lab=VSS} N 580 -1200 580 -1190 {lab=VSS} N 580 -1190 620 -1190 {lab=VSS} N 550 -1240 580 -1240 {lab=IN} N 620 -1250 710 -1250 {lab=REFP} -N 280 -1180 280 -1170 {lab=VSS} -N 280 -1250 280 -1240 {lab=VPP} -N 270 -1100 270 -1090 {lab=VNN} -N 270 -1170 270 -1160 {lab=VSS} +N 280 -1180 280 -1170 {lab=#net3} +N 280 -1250 280 -1240 {lab=#net4} +N 270 -1100 270 -1090 {lab=#net5} +N 270 -1170 270 -1160 {lab=#net3} N 160 -1090 190 -1090 {lab=#net2} -N 270 -1090 340 -1090 {lab=VNN} +N 370 -1090 380 -1090 {lab=VNN} N 160 -1250 190 -1250 {lab=#net1} -N 280 -1250 340 -1250 {lab=VPP} -N 270 -1170 280 -1170 {lab=VSS} -N 250 -1250 280 -1250 {lab=VPP} -N 250 -1090 270 -1090 {lab=VNN} -N 160 -1170 270 -1170 {lab=VSS} +N 370 -1250 380 -1250 {lab=VPP} +N 270 -1170 280 -1170 {lab=#net3} +N 250 -1250 280 -1250 {lab=#net4} +N 250 -1090 270 -1090 {lab=#net5} +N 160 -1170 270 -1170 {lab=#net3} N 550 -950 710 -950 {lab=OUTM} N 400 -890 550 -890 {lab=FBN} N 550 -770 550 -750 {lab=IN} @@ -87,6 +87,9 @@ N 350 -890 400 -890 {lab=FBN} N 350 -430 400 -430 {lab=FB} N 580 -1110 620 -1110 {lab=VSS} N 580 -1120 580 -1110 {lab=VSS} +N 280 -1250 310 -1250 {lab=#net4} +N 270 -1090 310 -1090 {lab=#net5} +N 280 -1170 310 -1170 {lab=#net3} C {code.sym} 1020 -210 0 0 {name=STIMULI only_toplevel=true tclcommand="xschem edit_vi_prop" @@ -99,7 +102,8 @@ vvss vss 0 dc 0 .param frequ=20k .param gain=42 -.tran 6e-7 0.009 uic +.op +* .tran 6e-7 0.009 uic ** models are generally not free: you must download @@ -111,18 +115,17 @@ vvss vss 0 dc 0 * .probe i(*) * .probe p(r*) p(v*) "} -C {vsource.sym} 160 -1200 0 0 {name=V1 value="pwl 0 0 1m 50"} -C {vsource.sym} 160 -1140 0 0 {name=V0 value="pwl 0 0 1m 50"} -C {lab_pin.sym} 340 -1250 0 1 {name=p5 lab=VPP} -C {lab_pin.sym} 340 -1090 0 1 {name=p6 lab=VNN} -C {lab_pin.sym} 340 -1170 0 1 {name=p3 lab=VSS} +C {vsource.sym} 160 -1200 0 0 {name=V1 value="dc 50 pwl 0 0 1m 50"} +C {vsource.sym} 160 -1140 0 0 {name=V0 value="dc 50 pwl 0 0 1m 50"} +C {lab_pin.sym} 380 -1250 0 1 {name=p5 lab=VPP} +C {lab_pin.sym} 380 -1090 0 1 {name=p6 lab=VNN} +C {lab_pin.sym} 380 -1170 0 1 {name=p3 lab=VSS} C {lab_pin.sym} 860 -240 0 1 {name=p14 lab=OUTP} C {res.sym} 860 -490 0 1 {name=R1 m=1 value=8} C {lab_pin.sym} 510 -1200 0 0 {name=p26 lab=VSS} C {lab_pin.sym} 550 -1240 0 0 {name=p31 lab=IN} C {vcvs.sym} 620 -1220 0 0 {name=E3 value='gain*0.99'} C {lab_pin.sym} 710 -1250 0 1 {name=p32 lab=REFP} -C {capa.sym} 280 -1210 0 0 {name=C2 m=1 value="100u"} C {capa.sym} 270 -1130 0 0 {name=C3 m=1 value="100u"} C {res.sym} 220 -1250 1 1 {name=R11 m=1 value=0.3} C {res.sym} 220 -1090 1 1 {name=R9 m=1 value=0.3} @@ -178,3 +181,8 @@ C {lab_pin.sym} 350 -270 0 0 {name=p19 lab=FB} C {lab_pin.sym} 350 -730 0 0 {name=p25 lab=FBN} C {title.sym} 160 -30 0 0 {name=l2 author="Stefan Schippers"} C {lab_pin.sym} 880 -1250 0 0 {name=p27 lab=IN_INT} +C {ammeter.sym} 340 -1250 3 0 {name=vcurrvpp current=0.5636 net_name=true} +C {spice_probe.sym} 790 -700 0 0 {name=p40 analysis=tran voltage=-0.1372} +C {spice_probe.sym} 770 -240 0 0 {name=p29 analysis=tran voltage=-0.1372} +C {ammeter.sym} 340 -1090 3 0 {name=vcurrvnn current=-0.5715 net_name=true} +C {ammeter.sym} 340 -1170 3 0 {name=vcurrvss current=0.007914 net_name=true}