diff --git a/xschem_library/examples/classD_amp.sch b/xschem_library/examples/classD_amp.sch index 90facfc8..44bfeea7 100644 --- a/xschem_library/examples/classD_amp.sch +++ b/xschem_library/examples/classD_amp.sch @@ -6,23 +6,23 @@ S {} E {} L 3 50 -1350 390 -1350 {} L 3 920 -1350 1360 -1350 {} -L 4 525 -210 530 -250 {} -L 4 530 -250 535 -210 {} -L 4 340 -230 342.5 -242.5 {} -L 4 342.5 -242.5 347.5 -250 {} -L 4 347.5 -250 352.5 -250 {} -L 4 352.5 -250 357.5 -242.5 {} -L 4 357.5 -242.5 360 -230 {} -L 4 377.5 -217.5 380 -230 {} -L 4 372.5 -210 377.5 -217.5 {} -L 4 367.5 -210 372.5 -210 {} -L 4 362.5 -217.5 367.5 -210 {} -L 4 360 -230 362.5 -217.5 {} -L 4 380 -230 382.5 -242.5 {} -L 4 382.5 -242.5 387.5 -250 {} -L 4 387.5 -250 392.5 -250 {} -L 4 392.5 -250 397.5 -242.5 {} -L 4 397.5 -242.5 400 -230 {} +L 4 475 -210 480 -250 {} +L 4 480 -250 485 -210 {} +L 4 290 -230 292.5 -242.5 {} +L 4 292.5 -242.5 297.5 -250 {} +L 4 297.5 -250 302.5 -250 {} +L 4 302.5 -250 307.5 -242.5 {} +L 4 307.5 -242.5 310 -230 {} +L 4 327.5 -217.5 330 -230 {} +L 4 322.5 -210 327.5 -217.5 {} +L 4 317.5 -210 322.5 -210 {} +L 4 312.5 -217.5 317.5 -210 {} +L 4 310 -230 312.5 -217.5 {} +L 4 330 -230 332.5 -242.5 {} +L 4 332.5 -242.5 337.5 -250 {} +L 4 337.5 -250 342.5 -250 {} +L 4 342.5 -250 347.5 -242.5 {} +L 4 347.5 -242.5 350 -230 {} L 4 20 -860 20 -760 {dash=1} L 4 10 -770 140 -770 {dash=1} L 4 80 -860 80 -770 {dash=2} @@ -31,20 +31,20 @@ L 4 20 -1180 20 -1080 {dash=1} L 4 10 -1090 140 -1090 {dash=1} L 4 80 -1180 80 -1090 {dash=2} L 4 20 -1160 110 -1160 {dash=2} +L 4 485 -210 490 -250 {} +L 4 490 -250 495 -210 {} +L 4 495 -210 500 -250 {} +L 4 500 -250 505 -210 {} +L 4 505 -210 510 -250 {} +L 4 510 -250 515 -210 {} +L 4 515 -210 520 -250 {} +L 4 520 -250 525 -210 {} +L 4 525 -210 530 -250 {} +L 4 530 -250 535 -210 {} L 4 535 -210 540 -250 {} L 4 540 -250 545 -210 {} L 4 545 -210 550 -250 {} L 4 550 -250 555 -210 {} -L 4 555 -210 560 -250 {} -L 4 560 -250 565 -210 {} -L 4 565 -210 570 -250 {} -L 4 570 -250 575 -210 {} -L 4 575 -210 580 -250 {} -L 4 580 -250 585 -210 {} -L 4 585 -210 590 -250 {} -L 4 590 -250 595 -210 {} -L 4 595 -210 600 -250 {} -L 4 600 -250 605 -210 {} L 7 20 -1090 60 -1090 {} L 7 60 -1090 70 -1095 {} L 7 70 -1095 90 -1155 {} @@ -56,15 +56,15 @@ L 7 70 -835 90 -775 {} L 7 100 -770 140 -770 {} L 7 90 -775 100 -770 {} B 2 1060 -660 2040 -350 {flags=graph -y1=-41 -y2=41 +y1=-94.5342 +y2=77.5746 ypos1=2.19058 ypos2=36.4765 divy=5 subdivy=1 unity=1 -x1=0.00050943 -x2=0.00178945 +x1=0.000421769 +x2=0.0019873 divx=5 subdivx=1 node="out @@ -77,13 +77,13 @@ digital=0} B 2 1060 -340 2040 -150 {flags=graph y1=0 y2=12 -ypos1=-1.9553 -ypos2=8.02886 +ypos1=0.540742 +ypos2=10.5249 divy=5 subdivy=1 unity=1 -x1=0.00050943 -x2=0.00178945 +x1=0.000421769 +x2=0.0019873 divx=5 subdivx=1 @@ -91,11 +91,12 @@ subdivx=1 dataset=0 unitx=u digital=1 -color="7 4 4 4 6" +color="7 4 4 7 6 4" node="\\"out;out 8 / 5 +\\" \\"Gate Up;gu out -\\" \\"Gate Down;gd vnn -\\" -drive +driveu +drived ref"} B 2 1060 -990 2040 -680 {flags=graph y1=0.0016 @@ -105,8 +106,8 @@ ypos2=14.7089 divy=5 subdivy=1 unity=1 -x1=0.00050943 -x2=0.00178945 +x1=0.000421769 +x2=0.0019873 divx=5 subdivx=1 @@ -115,10 +116,11 @@ dataset=0 unitx=u digital=0 -color="6 7" -node="ref +color="6 8 7" +node="refu +refd in"} -B 2 610 -650 1006 -505 {flags=image,unscaled +B 2 600 -780 996 -635 {flags=image,unscaled alpha=0.6 image_data=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} B 2 1060 -1310 2040 -1000 {flags=graph @@ -129,8 +131,8 @@ ypos2=36.4765 divy=5 subdivy=1 unity=1 -x1=0.00050943 -x2=0.00178945 +x1=0.000421769 +x2=0.0019873 divx=5 subdivx=1 @@ -142,7 +144,7 @@ color="4 7 8" node="\\"xm1 power;vpp out - i(vu) * avg()\\" \\"xm2 power;out vnn - i(vd) * avg()\\" \\"Load power;out_lpf 2 ** 8 / avg()\\""} -T {PWM Modulator} 470 -480 0 0 0.6 0.6 {} +T {PWM Modulator} 480 -610 0 0 0.6 0.6 {} T {Driver} 230 -930 0 0 0.6 0.6 {} T {LP Filter} 700 -1040 0 0 0.6 0.6 {} @@ -174,7 +176,7 @@ lab=GD_I} N 220 -770 220 -760 { lab=GD} N 610 -370 710 -370 { -lab=DRIVE} +lab=DRIVED} N 220 -1090 220 -1080 { lab=GU} N 70 -510 70 -490 { @@ -185,17 +187,17 @@ N 190 -510 190 -490 { lab=VSS} N 190 -590 190 -570 { lab=VNN} -N 320 -510 320 -490 { +N 70 -370 70 -350 { lab=0} -N 320 -590 320 -570 { +N 70 -450 70 -430 { lab=VSS} N 220 -1090 280 -1090 { lab=GU} N 220 -770 280 -770 { lab=GD} -N 490 -150 490 -130 { +N 440 -150 440 -130 { lab=VSS} -N 310 -150 310 -130 { +N 260 -150 260 -130 { lab=VSS} N 780 -920 780 -890 { lab=OUT_LPF} @@ -214,12 +216,22 @@ N 900 -920 940 -920 { lab=OUT_LPF} N 780 -920 900 -920 { lab=OUT_LPF} -N 490 -340 490 -210 { +N 260 -400 490 -400 { +lab=IN} +N 260 -400 260 -210 { +lab=IN} +N 610 -520 710 -520 { +lab=DRIVEU} +N 440 -490 490 -490 { +lab=REFU} +N 440 -340 490 -340 { +lab=REFD} +N 260 -550 490 -550 { +lab=IN} +N 260 -550 260 -400 { +lab=IN} +N 440 -230 440 -210 { lab=REF} -N 310 -400 490 -400 { -lab=IN} -N 310 -400 310 -210 { -lab=IN} C {nmos3.sym} 440 -770 0 0 {name=xm2 model=irf540 m=1 program=evince url="https://www.vishay.com/docs/91021/irf540.pdf" @@ -321,13 +333,15 @@ C {ammeter.sym} 460 -870 0 0 {name=vd net_name=true current=0.2069} C {ammeter.sym} 460 -970 0 0 {name=vu net_name=true current=0.2005} C {lab_pin.sym} 460 -1160 0 0 {name=p27 lab=VPP} C {lab_pin.sym} 460 -910 0 0 {name=p3 lab=OUT} -C {comp_ngspice.sym} 550 -370 0 0 {name=x1 VCC=VCC} -C {bsource.sym} 220 -730 0 1 {name=B1 VAR=V FUNC="'6/2*(1+tanh(V(REF,DRIVE)*20))'" +C {comp_ngspice.sym} 550 -370 2 1 {name=x1 +OFFSET=0 +AMPLITUDE=10} +C {bsource.sym} 220 -730 0 1 {name=B1 VAR=V FUNC="'6/2*(1+tanh(V(DRIVED)*20))'" } -C {lab_pin.sym} 710 -370 0 1 {name=p6 lab=DRIVE} -C {bsource.sym} 220 -1050 0 1 {name=B2 VAR=V FUNC="'6/2*(1+tanh(V(DRIVE,REF)*20))'" +C {lab_pin.sym} 710 -370 0 1 {name=p6 lab=DRIVED} +C {bsource.sym} 220 -1050 0 1 {name=B2 VAR=V FUNC="'6/2*(1+tanh(V(DRIVEU)*20))'" } -C {code_shown.sym} 20 -420 0 0 {name=CONTROL value=" +C {code_shown.sym} 0 -290 0 0 {name=CONTROL value=" .param VCC=10 .control save all @@ -343,9 +357,9 @@ C {lab_pin.sym} 70 -590 0 0 {name=p10 lab=VPP} C {vsource.sym} 190 -540 0 0 {name=VVNN value=-40} C {lab_pin.sym} 190 -490 0 0 {name=p11 lab=VSS} C {lab_pin.sym} 190 -590 0 0 {name=p12 lab=VNN} -C {vsource.sym} 320 -540 0 0 {name=VVSS value=0} -C {lab_pin.sym} 320 -490 0 0 {name=p13 lab=0} -C {lab_pin.sym} 320 -590 0 0 {name=p14 lab=VSS} +C {vsource.sym} 70 -400 0 0 {name=VVSS value=0} +C {lab_pin.sym} 70 -350 0 0 {name=p13 lab=0} +C {lab_pin.sym} 70 -450 0 0 {name=p14 lab=VSS} C {lab_pin.sym} 220 -1090 0 0 {name=p15 lab=GU} C {lab_pin.sym} 220 -770 0 0 {name=p16 lab=GD} C {launcher.sym} 1290 -50 0 0 {name=h5 @@ -362,13 +376,13 @@ C {parax_cap.sym} 370 -760 0 0 {name=C1 gnd=0 value=20f m=1} C {parax_cap.sym} 610 -910 0 0 {name=C2 gnd=0 value=10n m=1} C {lab_wire.sym} 410 -1090 0 0 {name=l19 lab=GU_I} C {lab_wire.sym} 410 -770 0 0 {name=l2 lab=GD_I} -C {vsource.sym} 490 -180 0 0 {name=V6 value="pulse 0 VCC 0 5u 5u 5p 10u"} -C {lab_pin.sym} 490 -130 0 0 {name=p19 lab=VSS} -C {lab_pin.sym} 490 -230 0 0 {name=p20 lab=REF} -C {vsource.sym} 310 -180 0 0 {name=V7 value="SIN ( 5 4 2000 0 0 0 )" +C {vsource.sym} 440 -180 0 0 {name=V6 value="pulse 0 VCC 0 5u 5u 5p 10u"} +C {lab_pin.sym} 440 -130 0 0 {name=p19 lab=VSS} +C {lab_pin.sym} 440 -230 0 0 {name=p20 lab=REF} +C {vsource.sym} 260 -180 0 0 {name=V7 value="SIN ( 5 4 2000 0 0 0 )" } -C {lab_pin.sym} 310 -130 0 0 {name=p21 lab=VSS} -C {lab_pin.sym} 310 -230 0 0 {name=p22 lab=IN} +C {lab_pin.sym} 260 -130 0 0 {name=p21 lab=VSS} +C {lab_pin.sym} 260 -230 0 0 {name=p22 lab=IN} C {parax_cap.sym} 670 -360 0 0 {name=C4 gnd=0 value=200f m=1} C {ind.sym} 710 -920 1 0 {name=L1 m=1 @@ -389,3 +403,14 @@ descr="Netlist + Simulate Ctrl-Left-Click" tclcommand="xschem netlist; xschem simulate" } +C {comp_ngspice.sym} 550 -520 0 0 {name=x2 +OFFSET=0 +AMPLITUDE=10} +C {lab_pin.sym} 710 -520 0 1 {name=p1 lab=DRIVEU} +C {parax_cap.sym} 670 -510 0 0 {name=C6 gnd=0 value=200f m=1} +C {vsource.sym} 440 -460 0 1 {name=Voffs value=0.1} +C {lab_pin.sym} 440 -490 0 0 {name=p2 lab=REFU} +C {vsource.sym} 440 -310 2 1 {name=Voffs1 value=-0.1} +C {lab_pin.sym} 440 -340 0 0 {name=p5 lab=REFD} +C {lab_pin.sym} 440 -280 0 0 {name=p17 lab=REF} +C {lab_pin.sym} 440 -430 0 0 {name=p23 lab=REF} diff --git a/xschem_library/ngspice/comp_ngspice.sch b/xschem_library/ngspice/comp_ngspice.sch index 41a6dff5..31d2169f 100644 --- a/xschem_library/ngspice/comp_ngspice.sch +++ b/xschem_library/ngspice/comp_ngspice.sch @@ -1,4 +1,4 @@ -v {xschem version=2.9.9 file_version=1.2 } +v {xschem version=3.0.0 file_version=1.2 } G {} K {} V {} @@ -14,7 +14,7 @@ C {lab_pin.sym} 180 -260 0 1 {name=l6 sig_type=std_logic lab=IPLUS} C {lab_pin.sym} 180 -210 0 1 {name=l1 sig_type=std_logic lab=IMINUS} C {lab_pin.sym} 450 -240 0 0 {name=l2 sig_type=std_logic lab=IOUT} C {lab_pin.sym} 450 -120 0 0 {name=p35 lab=0} -C {bsource.sym} 450 -150 0 1 {name=B1 VAR=V FUNC="'VCC/2*(1+tanh(V(IPLUS,IMINUS)*300))'" +C {bsource.sym} 450 -150 0 1 {name=B1 VAR=V FUNC="'OFFSET + AMPLITUDE/2*(tanh(V(IPLUS,IMINUS)*300))'" } C {title.sym} 160 -30 0 0 {name=l3 author="Stefan Schippers"} C {res.sym} 570 -240 1 0 {name=R1 diff --git a/xschem_library/ngspice/comp_ngspice.sym b/xschem_library/ngspice/comp_ngspice.sym index da084b4b..501c8d41 100644 --- a/xschem_library/ngspice/comp_ngspice.sym +++ b/xschem_library/ngspice/comp_ngspice.sym @@ -1,8 +1,8 @@ v {xschem version=3.0.0 file_version=1.2 } G {} K {type=subcircuit -format="@name @pinlist @symname VCC=@VCC" -template="name=x1 VCC=5" +format="@name @pinlist @symname OFFSET=@OFFSET AMPLITUDE=@AMPLITUDE" +template="name=x1 OFFSET=0 AMPLITUDE=5" } V {} S {}