From b9971f8b5bc9b8f60207f7cc922e98b4b7ae8be8 Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Thu, 12 Mar 2026 11:38:49 +0100 Subject: [PATCH] add gain parameter to single2[cd]m.sym, removed schematic view for these, changed port order --- xschem_library/devices/single2cm.sch | 39 ---------------------------- xschem_library/devices/single2cm.sym | 33 ++++++++++++++++------- xschem_library/devices/single2dm.sch | 39 ---------------------------- xschem_library/devices/single2dm.sym | 33 ++++++++++++++++------- 4 files changed, 48 insertions(+), 96 deletions(-) delete mode 100644 xschem_library/devices/single2cm.sch delete mode 100644 xschem_library/devices/single2dm.sch diff --git a/xschem_library/devices/single2cm.sch b/xschem_library/devices/single2cm.sch deleted file mode 100644 index 8325e3a4..00000000 --- a/xschem_library/devices/single2cm.sch +++ /dev/null @@ -1,39 +0,0 @@ -v {xschem version=3.4.8RC file_version=1.3} -G {} -K {} -V {} -S {} -F {} -E {} -N 160 -200 160 -130 {lab=VSS} -N 200 -190 200 -130 { -lab=VSS} -N 400 -260 400 -220 {lab=Vcm} -N 400 -360 400 -320 {lab=vp} -N 200 -310 200 -250 {lab=#net1} -N 320 -270 360 -270 {lab=VSS} -N 260 -130 360 -130 {lab=VSS} -N 260 -310 360 -310 {lab=#net1} -N 400 -220 400 -180 {lab=Vcm} -N 400 -120 400 -80 {lab=vn} -N 200 -130 200 -80 {lab=VSS} -N 80 -240 160 -240 {lab=vin} -N 400 -220 480 -220 {lab=Vcm} -N 400 -360 480 -360 {lab=vp} -N 400 -80 480 -80 {lab=vn} -N 160 -130 200 -130 {lab=VSS} -N 320 -170 360 -170 {lab=#net1} -N 260 -310 260 -300 {lab=#net1} -N 260 -140 260 -130 {lab=VSS} -N 260 -140 320 -270 {lab=VSS} -N 260 -300 320 -170 {lab=#net1} -N 200 -310 260 -310 {lab=#net1} -N 200 -130 260 -130 {lab=VSS} -C {vcvs.sym} 400 -150 0 0 {name=E3 value=-0.5} -C {vcvs.sym} 400 -290 0 0 {name=E2 value=0.5} -C {vcvs.sym} 200 -220 0 0 {name=E1 value=1} -C {ipin.sym} 80 -240 0 0 {name=p8 lab=vin} -C {opin.sym} 480 -80 0 0 {name=p7 lab=vn} -C {iopin.sym} 480 -220 0 0 {name=p2 lab=vcm} -C {opin.sym} 480 -360 0 0 {name=p1 lab=vp} -C {iopin.sym} 200 -80 1 0 {name=p3 lab=VSS} diff --git a/xschem_library/devices/single2cm.sym b/xschem_library/devices/single2cm.sym index f0500df2..ad7d84fb 100644 --- a/xschem_library/devices/single2cm.sym +++ b/xschem_library/devices/single2cm.sym @@ -1,9 +1,21 @@ v {xschem version=3.4.8RC file_version=1.3} G {} -K {type=subcircuit -format="@name @pinlist @symname" -template="name=x1" -} +K {type=primitive +format="@name @pinlist @symname gain=@gain" +template="name=x1 gain=1" +device_model=" +* from device_model attribute +.subckt single2cm vin VSS vp vcm vn gain = 1 +*.ipin vin +*.opin vn +*.iopin vcm +*.opin vp +*.iopin VSS +E3 vcm vn net1 VSS '-gain / 2' +E2 vp vcm net1 VSS 'gain / 2' +E1 net1 VSS vin VSS 'gain' +.ends +"} V {} S {} F {} @@ -73,10 +85,10 @@ L 4 -10 25 10 -10 {} L 7 60 0 80 0 {} L 7 -30 50 -30 70 {} B 4 -60 -50 60 50 {fill = false} -B 5 77.5 -42.5 82.5 -37.5 {name=vp dir=out} B 5 -82.5 -12.5 -77.5 -7.5 {name=vin dir=in} -B 5 77.5 -2.5 82.5 2.5 {name=vcm dir=inout} B 5 -32.5 67.5 -27.5 72.5 {name=VSS dir=inout} +B 5 77.5 -42.5 82.5 -37.5 {name=vp dir=out} +B 5 77.5 -2.5 82.5 2.5 {name=vcm dir=inout} B 5 77.5 37.5 82.5 42.5 {name=vn dir=out} A 4 -30 30 1.767766952966369 225 360 {fill=true} A 4 30 0 1.767766952966369 225 360 {fill=true} @@ -91,6 +103,9 @@ T {vin} -90 -29 0 0 0.2 0.2 {} T {vcm} 90 -19 0 1 0.2 0.2 {} T {VSS} -20 74 2 1 0.2 0.2 {} T {vn} 85 21 0 1 0.2 0.2 {} -T {1} -22.5 5 0 0 0.15 0.15 {} -T {0.5} 37.5 -15 0 0 0.15 0.15 {} -T {-0.5} 37.5 25 0 0 0.15 0.15 {} +T {E1} -42.5 -5 0 1 0.15 0.15 {layer=4} +T {E2} 17.5 -25 0 1 0.15 0.15 {layer=4} +T {E3} 17.5 15 0 1 0.15 0.15 {layer=4} +T {@gain} -22.5 5 0 0 0.15 0.15 {} +T {expr( @gain / 2 )} 37.5 -15 0 0 0.15 0.15 {} +T {expr( -@gain / 2 )} 37.5 25 0 0 0.15 0.15 {} diff --git a/xschem_library/devices/single2dm.sch b/xschem_library/devices/single2dm.sch deleted file mode 100644 index ff7be3d7..00000000 --- a/xschem_library/devices/single2dm.sch +++ /dev/null @@ -1,39 +0,0 @@ -v {xschem version=3.4.8RC file_version=1.3} -G {} -K {} -V {} -S {} -F {} -E {} -N 160 -200 160 -130 {lab=#net1} -N 200 -190 200 -130 { -lab=#net1} -N 400 -260 400 -220 {lab=#net2} -N 400 -360 400 -320 {lab=#net3} -N 200 -310 200 -250 {lab=#net4} -N 320 -270 360 -270 {lab=#net1} -N 260 -130 360 -130 {lab=#net1} -N 260 -310 360 -310 {lab=#net4} -N 400 -220 400 -180 {lab=#net2} -N 400 -120 400 -80 {lab=#net5} -N 200 -130 200 -80 {lab=#net1} -N 80 -240 160 -240 {lab=#net6} -N 400 -220 480 -220 {lab=#net2} -N 400 -360 480 -360 {lab=#net3} -N 400 -80 480 -80 {lab=#net5} -N 160 -130 200 -130 {lab=#net1} -N 320 -170 360 -170 {lab=#net4} -N 260 -310 260 -300 {lab=#net4} -N 260 -140 260 -130 {lab=#net1} -N 260 -140 320 -270 {lab=#net1} -N 260 -300 320 -170 {lab=#net4} -N 200 -310 260 -310 {lab=#net4} -N 200 -130 260 -130 {lab=#net1} -C {vcvs.sym} 400 -150 0 0 {name=E3 value=0.5} -C {vcvs.sym} 400 -290 0 0 {name=E2 value=0.5} -C {vcvs.sym} 200 -220 0 0 {name=E1 value=1} -C {ipin.sym} 80 -240 0 0 {name=p8 lab=vin} -C {opin.sym} 480 -80 0 0 {name=p7 lab=vn} -C {iopin.sym} 480 -220 0 0 {name=p2 lab=vcm} -C {opin.sym} 480 -360 0 0 {name=p1 lab=vp} -C {iopin.sym} 200 -80 1 0 {name=p3 lab=VSS} diff --git a/xschem_library/devices/single2dm.sym b/xschem_library/devices/single2dm.sym index d5e12a37..20c50eb4 100644 --- a/xschem_library/devices/single2dm.sym +++ b/xschem_library/devices/single2dm.sym @@ -1,9 +1,21 @@ v {xschem version=3.4.8RC file_version=1.3} G {} -K {type=subcircuit -format="@name @pinlist @symname" -template="name=x1" -} +K {type=primitive +format="@name @pinlist @symname gain=@gain" +template="name=x1 gain=1" +device_model=" +* from device_model attribute +.subckt single2dm vin VSS vp vcm vn gain=1 +*.ipin vin +*.opin vn +*.iopin vcm +*.opin vp +*.iopin VSS +E3 vcm vn net1 VSS 'gain / 2' +E2 vp vcm net1 VSS 'gain / 2' +E1 net1 VSS vin VSS 'gain' +.ends +"} V {} S {} F {} @@ -73,10 +85,10 @@ L 4 -10 25 10 -10 {} L 7 60 0 80 0 {} L 7 -30 50 -30 70 {} B 4 -60 -50 60 50 {fill = false} -B 5 77.5 -42.5 82.5 -37.5 {name=vp dir=out} B 5 -82.5 -12.5 -77.5 -7.5 {name=vin dir=in} -B 5 77.5 -2.5 82.5 2.5 {name=vcm dir=inout} B 5 -32.5 67.5 -27.5 72.5 {name=VSS dir=inout} +B 5 77.5 -42.5 82.5 -37.5 {name=vp dir=out} +B 5 77.5 -2.5 82.5 2.5 {name=vcm dir=inout} B 5 77.5 37.5 82.5 42.5 {name=vn dir=out} A 4 -30 30 1.767766952966369 225 360 {fill=true} A 4 30 0 1.767766952966369 225 360 {fill=true} @@ -91,6 +103,9 @@ T {vin} -90 -29 0 0 0.2 0.2 {} T {vcm} 90 -19 0 1 0.2 0.2 {} T {VSS} -20 74 2 1 0.2 0.2 {} T {vn} 85 21 0 1 0.2 0.2 {} -T {1} -22.5 5 0 0 0.15 0.15 {} -T {0.5} 37.5 -15 0 0 0.15 0.15 {} -T {0.5} 37.5 25 0 0 0.15 0.15 {} +T {@gain} -22.5 5 0 0 0.15 0.15 {} +T {expr( @gain / 2 )} 37.5 -15 0 0 0.15 0.15 {} +T {E1} -42.5 -5 0 1 0.15 0.15 {layer=4} +T {E2} 17.5 -25 0 1 0.15 0.15 {layer=4} +T {E3} 17.5 15 0 1 0.15 0.15 {layer=4} +T {expr( @gain / 2 )} 37.5 25 0 0 0.15 0.15 {}