2023-10-09 12:49:11 +02:00
|
|
|
v {xschem version=3.4.4 file_version=1.2
|
|
|
|
|
*
|
|
|
|
|
* This file is part of XSCHEM,
|
|
|
|
|
* a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit
|
|
|
|
|
* simulation.
|
|
|
|
|
* Copyright (C) 1998-2023 Stefan Frederik Schippers
|
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
2022-09-21 18:38:53 +02:00
|
|
|
}
|
2022-02-18 15:11:44 +01:00
|
|
|
G {}
|
|
|
|
|
K {}
|
|
|
|
|
V {}
|
|
|
|
|
S {}
|
|
|
|
|
E {}
|
2023-06-01 11:36:47 +02:00
|
|
|
L 7 40 -800 80 -800 {}
|
|
|
|
|
B 2 850 -470 1650 -70 {flags=graph
|
2023-06-01 16:02:40 +02:00
|
|
|
y1=-58.7947
|
|
|
|
|
y2=61.2053
|
2022-02-18 15:11:44 +01:00
|
|
|
ypos1=0
|
|
|
|
|
ypos2=2
|
|
|
|
|
divy=5
|
|
|
|
|
subdivy=1
|
|
|
|
|
unity=1
|
|
|
|
|
x1=0
|
|
|
|
|
x2=0.0004
|
|
|
|
|
divx=5
|
|
|
|
|
subdivx=1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dataset=0
|
|
|
|
|
unitx=u
|
2023-06-01 11:36:47 +02:00
|
|
|
color="7 8 12 4 9 9"
|
2022-02-18 15:11:44 +01:00
|
|
|
node="out
|
2023-06-01 11:36:47 +02:00
|
|
|
\\"in*12; in 12 *\\"
|
|
|
|
|
minus
|
|
|
|
|
plus
|
|
|
|
|
vpp
|
|
|
|
|
vnn"
|
|
|
|
|
hilight_wave=-1}
|
|
|
|
|
P 7 7 60 -700 60 -760 50 -760 60 -790 70 -760 60 -760 60 -700 {fill=true}
|
2022-02-18 15:11:44 +01:00
|
|
|
T {actual value
|
|
|
|
|
50u} 270 -580 0 0 0.4 0.4 {}
|
2023-06-01 11:36:47 +02:00
|
|
|
T {Example using a symbol with an extracted netlist} 30 -1100 0 0 1 1 {}
|
|
|
|
|
T {Ideal gain should be
|
|
|
|
|
Gain =
|
|
|
|
|
(R2 + R1 // R13) / (R1 // R13)} 10 -910 0 0 0.4 0.4 {}
|
|
|
|
|
T {tcleval(= [expr \{ ( [g R2] + [rpar R1 R13] ) / [rpar R1 R13] \}])} 10 -830 0 0 0.4 0.4 {name=R2}
|
|
|
|
|
T {Title defines some helper tcl procedures} 260 -80 0 0 0.4 0.4 { layer=7}
|
|
|
|
|
T {This text is a floater on R2,
|
|
|
|
|
floater attribute only used
|
|
|
|
|
to force a tcl /attribute
|
|
|
|
|
substitution } 10 -680 0 0 0.4 0.4 { layer=7}
|
|
|
|
|
N 360 -850 360 -830 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=MINUS}
|
|
|
|
|
N 290 -280 290 -260 {lab=#net1}
|
|
|
|
|
N 290 -140 290 -120 {lab=#net2}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 290 -120 400 -120 {lab=#net2}
|
|
|
|
|
N 290 -280 400 -280 {lab=#net1}
|
|
|
|
|
N 460 -280 530 -280 {lab=VPP}
|
|
|
|
|
N 460 -120 530 -120 {lab=VNN}
|
|
|
|
|
N 460 -200 530 -200 {lab=VSS}
|
|
|
|
|
N 290 -200 400 -200 {lab=#net3}
|
2022-02-18 15:11:44 +01:00
|
|
|
N 660 -210 660 -190 {
|
|
|
|
|
lab=VSS}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 920 -1000 920 -850 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=OUT}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 360 -1000 920 -1000 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=OUT}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 360 -1000 360 -930 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=OUT}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 490 -850 620 -850 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=MINUS}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 550 -830 620 -830 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=PLUS}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 550 -830 550 -510 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=PLUS}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 1030 -850 1060 -850 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=OUT}
|
|
|
|
|
N 30 -390 30 -330 {
|
|
|
|
|
lab=VSS}
|
|
|
|
|
N 460 -690 460 -670 {lab=VPP}
|
|
|
|
|
N 480 -510 480 -480 {lab=PLUS}
|
|
|
|
|
N 480 -420 480 -400 {lab=VSS}
|
|
|
|
|
N 460 -510 480 -510 {lab=PLUS}
|
|
|
|
|
N 400 -510 460 -510 {lab=PLUS}
|
|
|
|
|
N 460 -610 460 -510 { lab=PLUS}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 360 -870 360 -850 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=MINUS}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 360 -710 360 -680 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=VSS}
|
|
|
|
|
N 480 -510 550 -510 {
|
|
|
|
|
lab=PLUS}
|
|
|
|
|
N 30 -510 340 -510 {
|
|
|
|
|
lab=IN}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 490 -960 490 -940 {lab=VPP}
|
|
|
|
|
N 490 -880 490 -850 { lab=MINUS}
|
|
|
|
|
N 1030 -850 1030 -780 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=OUT}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 1030 -720 1030 -690 {
|
2022-02-18 15:11:44 +01:00
|
|
|
lab=VSS}
|
|
|
|
|
N 30 -510 30 -450 {
|
|
|
|
|
lab=IN}
|
2023-06-01 11:36:47 +02:00
|
|
|
N 360 -850 490 -850 {
|
|
|
|
|
lab=MINUS}
|
|
|
|
|
N 920 -850 1030 -850 {
|
|
|
|
|
lab=OUT}
|
2022-02-18 15:11:44 +01:00
|
|
|
C {code.sym} 20 -190 0 0 {name=STIMULI
|
|
|
|
|
only_toplevel=true
|
|
|
|
|
tclcommand="xschem edit_vi_prop"
|
|
|
|
|
value=".include \\"models_poweramp.txt\\"
|
2023-06-01 16:02:40 +02:00
|
|
|
.options method=gear savecurrents ITL4=500 ITL5=50000 CHGTOL=1e-15 TRTOL=1
|
2022-02-18 15:11:44 +01:00
|
|
|
.control
|
|
|
|
|
save all
|
2023-06-01 16:02:40 +02:00
|
|
|
op
|
|
|
|
|
write test_extracted_netlist.raw
|
|
|
|
|
set appendwrite
|
2022-02-18 15:11:44 +01:00
|
|
|
tran 100n 400u
|
|
|
|
|
* .FOUR 20k v(outm,outp)
|
|
|
|
|
* .probe i(*)
|
|
|
|
|
write test_extracted_netlist.raw
|
|
|
|
|
.endc
|
|
|
|
|
"}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {title.sym} 160 -30 0 0 {name=l2 author="tcleval(Stefan Schippers[
|
|
|
|
|
proc g \{n\} \{
|
|
|
|
|
return [from_eng [xschem getprop instance $n value]]
|
|
|
|
|
\}
|
|
|
|
|
proc rpar \{n1 n2\} \{
|
|
|
|
|
return [expr \{ [g $n1] * [g $n2] / ([g $n1] + [g $n2]) \}]
|
|
|
|
|
\}
|
|
|
|
|
])"
|
|
|
|
|
}
|
|
|
|
|
C {lab_wire.sym} 620 -850 0 0 {name=l1 lab=MINUS}
|
|
|
|
|
C {lab_pin.sym} 620 -810 0 0 {name=p3 lab=VSS}
|
|
|
|
|
C {lab_pin.sym} 1060 -850 0 1 {name=p4 lab=OUT}
|
|
|
|
|
C {lab_pin.sym} 620 -790 0 0 {name=p5 lab=VPP}
|
|
|
|
|
C {lab_pin.sym} 620 -770 0 0 {name=p6 lab=VNN}
|
|
|
|
|
C {res.sym} 360 -800 0 0 {name=R1
|
|
|
|
|
value=10k
|
2022-02-18 15:11:44 +01:00
|
|
|
footprint=1206
|
|
|
|
|
device=resistor
|
|
|
|
|
m=1}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {res.sym} 360 -900 0 0 {name=R2
|
2022-02-18 15:11:44 +01:00
|
|
|
value=100k
|
|
|
|
|
footprint=1206
|
|
|
|
|
device=resistor
|
|
|
|
|
m=1}
|
|
|
|
|
C {vsource.sym} 290 -230 0 0 {name=VPP value="dc 50"}
|
|
|
|
|
C {vsource.sym} 290 -170 0 0 {name=VNN value="dc 50"}
|
|
|
|
|
C {lab_pin.sym} 530 -280 0 1 {name=p7 lab=VPP}
|
|
|
|
|
C {lab_pin.sym} 530 -120 0 1 {name=p8 lab=VNN}
|
|
|
|
|
C {lab_pin.sym} 530 -200 0 1 {name=p9 lab=VSS}
|
|
|
|
|
C {ammeter.sym} 430 -280 3 0 {name=vcurrvpp net_name=true current=0.54}
|
|
|
|
|
C {ammeter.sym} 430 -120 3 0 {name=vcurrvnn net_name=true current=-0.4526}
|
|
|
|
|
C {ammeter.sym} 430 -200 3 0 {name=vcurrvss net_name=true current=-0.08742}
|
|
|
|
|
C {ngspice_probe.sym} 370 -200 0 1 {name=p34}
|
|
|
|
|
C {ngspice_probe.sym} 290 -280 0 1 {name=p35}
|
|
|
|
|
C {ngspice_probe.sym} 290 -120 0 1 {name=p36}
|
|
|
|
|
C {ngspice_probe.sym} 530 -200 0 0 {name=p37}
|
2022-02-18 15:35:37 +01:00
|
|
|
C {spice_probe.sym} 520 -280 0 0 {name=p45 analysis=tran voltage=49.93}
|
|
|
|
|
C {spice_probe.sym} 520 -120 0 0 {name=p46 analysis=tran voltage=-49.93}
|
2022-02-18 15:11:44 +01:00
|
|
|
C {vsource.sym} 660 -160 0 0 {name=VVSS value=0}
|
|
|
|
|
C {lab_pin.sym} 660 -210 0 1 {name=p10 lab=VSS}
|
|
|
|
|
C {lab_pin.sym} 660 -130 0 1 {name=p11 lab=0}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {lab_pin.sym} 360 -680 0 1 {name=p12 lab=VSS}
|
2022-02-18 15:11:44 +01:00
|
|
|
C {vsource.sym} 30 -420 0 0 {name=VIN value="pwl
|
|
|
|
|
+ 0 0 100u 0
|
2023-06-01 11:36:47 +02:00
|
|
|
+ 110u 2 200u 2
|
2022-02-18 15:11:44 +01:00
|
|
|
+ 210u 0 300u 0
|
2023-06-01 11:36:47 +02:00
|
|
|
+ 310u -2"
|
2022-02-18 15:11:44 +01:00
|
|
|
}
|
|
|
|
|
C {lab_pin.sym} 30 -330 0 1 {name=p1 lab=VSS}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {spice_probe.sym} 970 -850 0 0 {name=p2 analysis=tran voltage=-0.1176}
|
|
|
|
|
C {spice_probe.sym} 380 -850 0 0 {name=p13 analysis=tran voltage=21.07}
|
2022-02-18 15:35:37 +01:00
|
|
|
C {spice_probe.sym} 120 -510 0 0 {name=p14 analysis=tran voltage=0.0000e+00}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {lab_wire.sym} 620 -830 0 0 {name=l3 lab=PLUS}
|
2022-02-18 15:11:44 +01:00
|
|
|
C {launcher.sym} 905 -535 0 0 {name=h5
|
|
|
|
|
descr="Select arrow and
|
|
|
|
|
Ctrl-Left-Click to load/unload waveforms"
|
|
|
|
|
tclcommand="
|
2023-06-01 11:36:47 +02:00
|
|
|
xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]]].raw tran
|
2022-02-18 15:11:44 +01:00
|
|
|
"
|
|
|
|
|
}
|
|
|
|
|
C {res.sym} 460 -640 0 1 {name=R4
|
|
|
|
|
value=100k
|
|
|
|
|
footprint=1206
|
|
|
|
|
device=resistor
|
|
|
|
|
m=1}
|
|
|
|
|
C {lab_pin.sym} 460 -690 0 0 {name=p18 lab=VPP}
|
|
|
|
|
C {res.sym} 480 -450 0 1 {name=R5
|
|
|
|
|
value=100k
|
|
|
|
|
footprint=1206
|
|
|
|
|
device=resistor
|
|
|
|
|
m=1}
|
|
|
|
|
C {lab_pin.sym} 480 -400 0 0 {name=p15 lab=VSS}
|
|
|
|
|
C {capa.sym} 370 -510 1 0 {name=C1 m=1 value="50u"}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {capa.sym} 360 -740 0 0 {name=C4 m=1 value="50u"}
|
2022-02-18 15:11:44 +01:00
|
|
|
C {lab_wire.sym} 210 -510 0 0 {name=l4 lab=IN}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {res.sym} 490 -910 0 1 {name=R13 m=1 value=100k}
|
|
|
|
|
C {lab_pin.sym} 490 -960 0 0 {name=p16 lab=VPP}
|
|
|
|
|
C {res.sym} 1030 -750 0 0 {name=RLOAD
|
2022-02-18 15:11:44 +01:00
|
|
|
value=4
|
|
|
|
|
footprint=1206
|
|
|
|
|
device=resistor
|
|
|
|
|
m=1}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {lab_pin.sym} 1030 -690 0 0 {name=p17 lab=VSS}
|
2022-02-18 15:35:37 +01:00
|
|
|
C {launcher.sym} 660 -350 0 0 {name=h1
|
|
|
|
|
descr=Backannotate
|
2022-09-21 18:38:53 +02:00
|
|
|
tclcommand="xschem annotate_op"}
|
2022-02-18 15:35:37 +01:00
|
|
|
C {spice_probe.sym} 550 -620 0 0 {name=p19 analysis=tran voltage=21.07}
|
2023-06-01 11:36:47 +02:00
|
|
|
C {lab_pin.sym} 360 -770 0 1 {name=p20 lab=C1}
|
|
|
|
|
C {mos_power_ampli_extracted.sym} 770 -810 0 0 {name=x1}
|