better digital graph label positioning (margin to y axis)

This commit is contained in:
Stefan Frederik 2022-02-15 18:57:40 +01:00
parent fa4aeb607c
commit 1ba83016c6
2 changed files with 48 additions and 32 deletions

View File

@ -2138,7 +2138,7 @@ static void draw_graph_variables(int wcnt, int wave_color, int n_nodes, int swee
my_free(1189, &ntok_ptr);
}
if(gr->digital) {
double xt = gr->x1 - 10 * gr->txtsizelab;
double xt = gr->x1 - 15 * gr->txtsizelab;
double s1 = DIG_NWAVES; /* 1/DIG_NWAVES waveforms fit in graph if unscaled vertically */
double s2 = DIG_SPACE; /* (DIG_NWAVES - DIG_SPACE) spacing between traces */
double yt;

View File

@ -4,8 +4,8 @@ K {}
V {}
S {}
E {}
L 3 290 -1250 630 -1250 {}
L 3 1160 -1250 1600 -1250 {}
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 {}
@ -55,7 +55,7 @@ L 7 60 -840 70 -835 {}
L 7 70 -835 90 -775 {}
L 7 100 -770 140 -770 {}
L 7 90 -775 100 -770 {}
B 2 1100 -690 2050 -340 {flags=graph
B 2 1060 -660 2040 -350 {flags=graph
y1=-41
y2=41
ypos1=2.19058
@ -63,8 +63,8 @@ ypos2=36.4765
divy=5
subdivy=1
unity=1
x1=0.00125174
x2=0.00189302
x1=0.00050943
x2=0.00178945
divx=5
subdivx=1
node="out
@ -74,16 +74,16 @@ color="7 8 6"
dataset=0
unitx=u
digital=0}
B 2 1100 -330 2050 -90 {flags=graph
B 2 1060 -340 2040 -150 {flags=graph
y1=0
y2=12
ypos1=0.0476856
ypos2=6.80536
ypos1=-1.9553
ypos2=8.02886
divy=5
subdivy=1
unity=1
x1=0.00125174
x2=0.00189302
x1=0.00050943
x2=0.00178945
divx=5
subdivx=1
@ -91,21 +91,22 @@ subdivx=1
dataset=0
unitx=u
digital=1
color="7 4 4 4"
color="7 4 4 4 6"
node="\\"out;out 8 / 5 +\\"
\\"Gate Up;gu out -\\"
\\"Gate Down;gd vnn -\\"
drive"}
B 2 1100 -1040 2050 -710 {flags=graph
y1=0.00051
drive
ref"}
B 2 1060 -990 2040 -680 {flags=graph
y1=0.0016
y2=10
ypos1=-3.90706
ypos2=14.7089
divy=5
subdivy=1
unity=1
x1=0.00125174
x2=0.00189302
x1=0.00050943
x2=0.00178945
divx=5
subdivx=1
@ -120,6 +121,27 @@ in"}
B 2 610 -650 1006 -505 {flags=image,unscaled
alpha=0.6
image_data=iVBORw0KGgoAAAANSUhEUgAAAYwAAACRCAYAAADQBo+7AAAABmJLR0QA/wD/AP+gvaeTAAAKEElEQVR4nO3d25ajKBgGUDOr3/+Vay66ssqmPCCC8JO9b3omB0NQ+AA1tSwAAAAA8KhX7wIA9Xx9fX1tPf56vQ7b+t779pxtD4DBbXX8OWFwJTCuhgvz+K93AQCIQWAAkEVgAJBFYAA09vWtdznuEhgADa2DInpoCAyAxl7fepfjLoEBQBaBAdBI9CWolMAAaChdioocIgIDgCwCA+Ah0U98CwwAsggMALIIDIAGIp/c3iMwABqJfs4iJTAAyCIwAB4WdblKYACQRWAAPCjyeQ2BAUCWP70LwPiirrfOJvLIlDkIDLLorPoS2rHMur8EBkBlsw6wnMMAGMjIsxOBAUCWJoExckICUGbYGYbQARhL05Peaaf/er1ee4+9TxKtn18/DjCTrf5t9IFy8xnG69vZY+nz638hitEbPNwx7JIUwKxyBswj6nIfxtYobO+xkSsPojDzISQHbjz2Wb5WdWUfzCd34DwSS1IAZHk8MCwxAcRkhvHt61vvckSl7mB+fnww0ftE+1bHm1OeKx12q+/3LsNss8jex8QIDAj+NfPxcNSOBcbK+ybCXh3EXqOsXZ5W3693/dGWffpXzfDcu2m5l3d59soiMBLpznu6kWx9Xu6BlFvWlgem0IA8e7980as8OW1WYOzQ8ZXrHbotjDD6g1Zy+7nHAiNi5zFjx/ekmUI3evlhz5X2+chVUqOt010Vuey9vX83zFVosK1n27g6mGseGOsCRR6l6fjuEbrw27pPfLp/LJn5O4dx0UzLLE+bdYnPsXBuPVA4u7Cj5PnIRroi80zTGcbRZaItP7c1o+V7Zqy/mb5LbekAYV1X6xl7yfNcd2fA1nyGkRbq6BrfSGYdLT9lxpmaY+G3dP9udfp7z28tZc943Dzp7jFqSeomB3C5SCPGCGUczVGdvdvNXps5el6bK1NjQNMsMFo3sJEOFrONeyLMOo/2aVr2kY7N3vbq4e7+jnDMjKRW39R0hnHWyEoKn65vnn3Ok4x8yo0cujqm63LrbK+tvN9/1pa0tXM121SzwDgq3N3RwXrbo3XQrULjUzqtyKH7iaPes2Wno/ee1Vfu87X6khnVHoANdw6j9AuO1FBLR8tH67n1Sjd+I4kYGlHKWdvdVYLc17doGyP1GS20mK0PFxjLUvYF71ZKi4MnYsc3ipGXqFIjly0C7aO+Vu0m3B9QWnfCUTqTGlPnT5UGB/Gl7XXk9htRy36x6wyjdGQR8QAz2yg3wmxDYPWjveRr3Ua6BcbWCa3ZG+UIHV9kPUM39/NmP4Zree/LsyugnizTyK7URcu2Mdw5jCidaI2rQ8w2rhO68zjad/brmLqfw4g2isg5F5HzGmvz96g/eF7XwFiPIiI0/LSMr8TV7Tkhfo/QgGd1X5Jan8sYeRq67pRyrgm/uuZoiarME0tU9gn81X1Jall+Rtq9y5Ejt5xXv4/Zxj1mG9DeEIExuic7IR1fOaELbXVfkorkqVnQOjSizLxGYomPZckbdOW8xjH0Q2AMLMr5nREJXez3+gTG4IyW7xG6tPCpS54CIwDr8vf0CN2SfXVWNvuf3gRGAL1HyDqq62a7vNcx8K+n98Uo9S8wLnh6Wah3UMxCPUIdAiPDeh38KTq5+9ThZ6vVZh0/PwTGRbmzjNLZiE6uDvVIzjkhx8c1AiPTepax1xndHdHo5O5Th9COwLggXZqqNeXVydWhHqEtgXFRzk93XOmwdHL35fww5N3t2z8gMIrd7UAERR3qEZ7jxwc70MnVoR7ht5ZXdJphPEgHV0ePehzlxik+09Vl7lbLqFMERoTGLCzqUI9wrOVP4YQPjNHDQgdXR+96zP3c0Y9HPkOr0AgfGG+1TkLX1LuTm4V6hOtahMY0gTESHVwd6hHuqR0arpKqTCdXx8j1aNmJSHLuHctlhlHJyB1cJOlBPVK9CgqiqjXTMMOoYKROLbL0ju23nmV62wsyiKLGTMMM44bWP0nxKdaBu3cwj9hB75XJscCo7s40BEYhs4o60nrcC42e9fxuXAYIzOBOaAiMAsLivrM6HHFGcTQDIp5Pbr+loSEwLhAUdZzVo/qF9kpCw0nvTMLivvXBGbUeo5Ybtlw9ES4wTszQyY1gpsCd4TvA25XQEBgHZurkehG4ML7c0HAOY4OgqGOmerx6snuG78xnWZ/T2HuNwEjM1Mn1MmMd5n6Xu3fSQk9nVwIKjBWN/R73KUB8R6EhMFZ0cnWoxzm5B+Vz7LVhgfFNJ3fPzPU383fLpQ5YFldJAZBJYACQRWAAkEVgAJBFYABT2rsJzdVe5QQGUGz0zrfGX5njh8CAilx+Oqat/SJErnMfBlDN3l9LTP8Mb9qBp+/bmhls/dXDvV8XeD+e8/zWnc3+wuI2MwygqvSXidcdb/rfaae8976SMmxtc+v53G0hMIBOcn7yPn1N+vranfnZ5306S1LALelMYGvZaL3EtNcJ51zRdPb/JWXfmtUIim1DVcrTJ6EcFHn8im9/s++D2b/fLIabYTx10Kz/EtwTnwcQnXMYQHcGbjEMN8M4kzMrsA5Zn2vWgVAzDJ1WH4IXWJaAM4xlcYKsB/UNhJphLMt5x2UWAtBGmMC4EgTvm2+EB0A9YQJjWbZ/CwaAZ4QKjLcrd4oSW8R9uvXDdzCDEIFxdTlq/d8a7XO+EjmvL/2ckvcB94QIjGXxe/ZRvFZyXrss1/djjyu2HGsQ9LLaZfk9e9Cgx7D1dw+2Hlu/9v3f6T7det3WdtPn0se2ynf0+r1jae9zjz4v/cytz3DJMlEMP8MoXY4q3Qblti5KOAv193vSpcSj/0/fnz53NsPJ2f76sa0ypo+XdvrCgkiGD4xlOW5UZ2GgQT7rTucZScl33AqquqWCtsIuSS3Lz9TeDGIMe0sv66Wlo1lgugRV2qGeHQ/p9nOPn73yX3n/+nOBG9KGlxMGpa8RNHOzf6G+4ZekaozGjOjG1aJTFxTQxtBLUjkd/dlVK3weAwRoY/gZRo7cYHmiLDynZKBw9XwD8GPoGQbx3LnPYWsb6/dsnaQ+uyfj6D1Hn5m+ruR7GaQwmylmGIxhLwhq3Cux9fz639L35LzuyveCmQ03w7AUENvVS1VHcTbzufK9hAizGiowNLT4ap0j2Fsi2nrsqDM/e0/tba8fdzwDDKjXjMb9HnwS5zCgkKCADjQ8gPH9cw5jq+Ner8Nurf0C8MGeHvGbYfylHoCRnV4ltXczUumNTOmVJ0dXqxx91nr76Xa3yn32HdaPH333Wo/tXcZ5diPaXlkBWss+6Z3TGZfcoLV2NsLeK0P6vpoj9dzyX/mee4Gw/vdom8IC6CHrPoyjTqv2Mkru6P/KdtLZyN5rS7Z/9XVpILzLWPtzAWorvnHvzg1aR+/NvZP2ytJWbhm3OuO7N2dd3fbZzWIAU4t+c1P08gPU0PzGvegdbfTyAwDAo/4HLBNKOj5NZq4AAAAASUVORK5CYII=}
B 2 1060 -1310 2040 -1000 {flags=graph
y1=-21.5085
y2=139.735
ypos1=2.19058
ypos2=36.4765
divy=5
subdivy=1
unity=1
x1=0.00050943
x2=0.00178945
divx=5
subdivx=1
dataset=0
unitx=u
digital=0
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 {Driver} 230 -930 0 0 0.6 0.6 {}
T {LP
@ -131,7 +153,7 @@ T {VREF} 65 -1085 0 0 0.2 0.2 {layer=4}
T {10} 5 -1165 0 0 0.2 0.2 {}
T {DRIVE} 125 -765 0 0 0.2 0.2 {}
T {DRIVE} 125 -1085 0 0 0.2 0.2 {}
T {Class D amplifier } 670 -1280 0 0 1 1 {}
T {Class D amplifier } 430 -1380 0 0 1 1 {}
N 460 -1020 460 -1000 {lab=#net1}
N 460 -920 460 -900 {lab=OUT}
N 460 -840 460 -800 {lab=#net2}
@ -167,10 +189,6 @@ N 320 -510 320 -490 {
lab=0}
N 320 -590 320 -570 {
lab=VSS}
N 570 -920 570 -870 {
lab=OUT}
N 570 -810 570 -790 {
lab=VSS}
N 220 -1090 280 -1090 {
lab=GU}
N 220 -770 280 -770 {
@ -304,10 +322,10 @@ 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="'10/2*(1+tanh(V(REF,DRIVE)*20))'"
C {bsource.sym} 220 -730 0 1 {name=B1 VAR=V FUNC="'6/2*(1+tanh(V(REF,DRIVE)*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="'10/2*(1+tanh(V(DRIVE,REF)*20))'"
C {bsource.sym} 220 -1050 0 1 {name=B2 VAR=V FUNC="'6/2*(1+tanh(V(DRIVE,REF)*20))'"
}
C {code_shown.sym} 20 -420 0 0 {name=CONTROL value="
.param VCC=10
@ -319,20 +337,18 @@ write classD_amp.raw
" net_name=true}
C {title.sym} 160 -40 0 0 {name=l1 author="Stefan Schippers" net_name=true}
C {vsource.sym} 70 -540 0 0 {name=V3 value=40}
C {vsource.sym} 70 -540 0 0 {name=VVPP value=40}
C {lab_pin.sym} 70 -490 0 0 {name=p9 lab=VSS}
C {lab_pin.sym} 70 -590 0 0 {name=p10 lab=VPP}
C {vsource.sym} 190 -540 0 0 {name=V4 value=-40}
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=V5 value=0}
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 {lab_pin.sym} 220 -1090 0 0 {name=p15 lab=GU}
C {lab_pin.sym} 220 -770 0 0 {name=p16 lab=GD}
C {res.sym} 570 -840 0 1 {name=R1 m=1 value=8}
C {lab_pin.sym} 570 -790 0 0 {name=p17 lab=VSS}
C {launcher.sym} 1160 -1080 0 0 {name=h5
C {launcher.sym} 1290 -50 0 0 {name=h5
descr="Select arrow and
Ctrl-Left-Click to load/unload waveforms"
tclcommand="
@ -343,7 +359,7 @@ C {res.sym} 310 -1090 1 1 {name=R2 m=1 value=2}
C {res.sym} 310 -770 1 1 {name=R3 m=1 value=2}
C {parax_cap.sym} 370 -1080 0 0 {name=C3 gnd=0 value=20f m=1}
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=1u 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"}
@ -368,7 +384,7 @@ C {lab_pin.sym} 940 -920 0 1 {name=p4 lab=OUT_LPF}
C {lab_pin.sym} 780 -810 0 0 {name=p7 lab=VSS}
C {res.sym} 900 -860 0 1 {name=R4 m=1 value=8}
C {lab_pin.sym} 900 -810 0 0 {name=p8 lab=VSS}
C {launcher.sym} 1160 -1140 0 0 {name=h1
C {launcher.sym} 1290 -110 0 0 {name=h1
descr="Netlist + Simulate
Ctrl-Left-Click"
tclcommand="xschem netlist; xschem simulate"