From 6a75c8a6dd322ce7f307fb3fd8a2c5c1d98d66ca Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Sun, 23 Feb 2025 13:50:39 +0100 Subject: [PATCH] initial commit to add scope.sym symbol --- src/xschem.h | 2 +- xschem_library/devices/scope.sym | 33 ++++++++++ xschem_library/ngspice/solar_panel.sch | 87 ++++++++++++++++++++------ 3 files changed, 101 insertions(+), 21 deletions(-) create mode 100644 xschem_library/devices/scope.sym diff --git a/src/xschem.h b/src/xschem.h index 1384874c..b3a94527 100644 --- a/src/xschem.h +++ b/src/xschem.h @@ -375,7 +375,7 @@ extern char win_temp_dir[PATH_MAX]; * show_label also used on metal option type symbols (pass-through symbols) * to optionally short two nets (using *_ignore=[true|false] attribute) */ #define IS_LABEL_SH_OR_PIN(type) (!(strcmp(type,"label") && strcmp(type,"ipin") && strcmp(type,"opin") && \ - strcmp(type,"show_label") && strcmp(type,"iopin") && strcmp(type,"bus_tap"))) + strcmp(type,"scope") && strcmp(type,"show_label") && strcmp(type,"iopin") && strcmp(type,"bus_tap"))) #define IS_LABEL_OR_PIN(type) (!(strcmp(type,"label") && strcmp(type,"ipin") && \ strcmp(type,"opin") && strcmp(type,"iopin"))) #define IS_PIN(type) (!(strcmp(type,"ipin") && strcmp(type,"opin") && strcmp(type,"iopin"))) diff --git a/xschem_library/devices/scope.sym b/xschem_library/devices/scope.sym new file mode 100644 index 00000000..780f73ba --- /dev/null +++ b/xschem_library/devices/scope.sym @@ -0,0 +1,33 @@ +v {xschem version=3.4.6 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-2024 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 +} +G {} +K {type=scope +template="name=l1" +highlight=true} +V {} +S {} +E {} +L 4 -10 -20 0 0 {} +B 5 -1.25 -1.25 1.25 1.25 {name=p dir=in} +P 4 5 -140 -20 -140 -140 -10 -140 -10 -20 -140 -20 {} +T {@#0:net_name} -12.5 -35.625 0 1 0.2 0.2 {layer=4} +T {@spice_get_voltage} -137.5 -137.5 0 0 0.2 0.2 {layer=15} diff --git a/xschem_library/ngspice/solar_panel.sch b/xschem_library/ngspice/solar_panel.sch index f03b1f28..051ac194 100644 --- a/xschem_library/ngspice/solar_panel.sch +++ b/xschem_library/ngspice/solar_panel.sch @@ -88,8 +88,8 @@ y1 = -0.00068 y2 = 22 divy = 6 subdivy=1 -x1=0.00043584075 -x2=0.00062432018 +x1=0.00044137417 +x2=0.0006298536 divx=8 node="PANEL LED" unitx=m @@ -109,8 +109,8 @@ y1 = -0.0012 y2 = 6.8 divy = 4 subdivy=1 -x1=0.00043584075 -x2=0.00062432018 +x1=0.00044137417 +x2=0.0006298536 divx=8 unitx=m color="7 4 6" @@ -128,8 +128,8 @@ y1 = -2.7e-05 y2 = 100 divy = 5 subdivy=1 -x1=0.00043584075 -x2=0.00062432018 +x1=0.00044137417 +x2=0.0006298536 divx=9 unitx=m subdivx=4 @@ -151,8 +151,8 @@ y1 = 0 y2 = 1 divy = 5 subdivy=1 -x1=0.00043584075 -x2=0.00062432018 +x1=0.00044137417 +x2=0.0006298536 divx=9 unitx=u subdivx=4 @@ -174,8 +174,8 @@ y1 = 0 y2 = 1 divy = 5 subdivy=1 -x1=0.00043584075 -x2=0.00062432018 +x1=0.00044137417 +x2=0.0006298536 divx=9 unitx=u subdivx=4 @@ -194,18 +194,15 @@ autoload=0 sim_type=tran xrawfile=$netlist_dir/solar_panel.raw} B 2 360 -730 470 -650 {name=l21 -flags=graph,unlocked,private_cursor -y1 = 19 +flags=graph,unlocked +y1 = 0.00033 y2 = 21 divy = 5 subdivy=1 -x1=0.00045143494 -x2=0.00063991437 +x1=5e-10 +x2=0.001 divx=9 - - unitx=u subdivx=4 - - +unitx=u subdivx=4 hilight_wave=-1 digital=0 ypos1=0.00261891 @@ -214,11 +211,56 @@ color=8 node="tcleval([xschem translate l21 @#0:net_name])" jpeg_quality=30 autoload=0 - sim_type=tran xrawfile=$netlist_dir/solar_panel.raw linewidth_mult=0.4 -lock=0 +lock=1 +cursor2_x=0.00052215} +B 2 1210 -560 1320 -480 {name=l22 +flags=graph,unlocked +y1 = -0.59 +y2 = 7.3 +divy = 5 +subdivy=1 +x1=5e-10 +x2=0.001 +divx=9 +unitx=u subdivx=4 +hilight_wave=-1 +digital=0 +ypos1=0.00261891 +ypos2=0.51596 +color=8 +node="tcleval([xschem translate l22 @#0:net_name])" +jpeg_quality=30 +autoload=0 +sim_type=tran +xrawfile=$netlist_dir/solar_panel.raw +linewidth_mult=0.4 +lock=1 +cursor2_x=0.00052215} +B 2 760 -1200 870 -1120 {name=l23 +flags=graph,unlocked +y1 = 4.9e-10 +y2 = 1 +divy = 5 +subdivy=1 +x1=0.00051506091 +x2=0.00053874392 +divx=9 +unitx=u subdivx=4 +hilight_wave=-1 +digital=0 +ypos1=0.00261891 +ypos2=0.51596 +color=8 +node="tcleval([xschem translate l23 @#0:net_name])" +jpeg_quality=30 +autoload=0 +sim_type=tran +xrawfile=$netlist_dir/solar_panel.raw +linewidth_mult=0.4 +lock=1 cursor2_x=0.00052215} B 18 55 -1060 310 -875 {} A 5 310 -1060 5.590169943749475 243.434948822922 360 {fill=true} @@ -434,3 +476,8 @@ C {spice_probe.sym} 760 -670 0 0 {name=p6 analysis=tran} C {spice_probe.sym} 160 -450 0 0 {name=p7 analysis=tran} C {scope.sym} 490 -610 0 0 {name=l21 attach=l21} +C {scope.sym} 1190 -440 0 1 {name=l22 +attach=l22} +C {scope.sym} 740 -1080 0 1 {name=l23 +attach=l23} +C {lab_show.sym} 440 -610 2 0 {name=l24}