From 7ffe70cb25d69d0f8c06fc1488fa9838cfe2650d Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Mon, 18 Sep 2023 17:16:03 +0200 Subject: [PATCH] add other schematic manipulation script examples in developer_info.html --- doc/xschem_man/developer_info.html | 102 +++++++++++++++++++++++---- doc/xschem_man/developer_info_28.png | Bin 0 -> 1998 bytes doc/xschem_man/developer_info_29.png | Bin 0 -> 2012 bytes doc/xschem_man/developer_info_30.png | Bin 0 -> 2050 bytes doc/xschem_man/developer_info_31.png | Bin 0 -> 2844 bytes doc/xschem_man/developer_info_32.png | Bin 0 -> 6097 bytes doc/xschem_man/developer_info_33.png | Bin 0 -> 13401 bytes doc/xschem_man/developer_info_34.png | Bin 0 -> 12984 bytes src/scheduler.c | 21 +++--- 9 files changed, 101 insertions(+), 22 deletions(-) create mode 100644 doc/xschem_man/developer_info_28.png create mode 100644 doc/xschem_man/developer_info_29.png create mode 100644 doc/xschem_man/developer_info_30.png create mode 100644 doc/xschem_man/developer_info_31.png create mode 100644 doc/xschem_man/developer_info_32.png create mode 100644 doc/xschem_man/developer_info_33.png create mode 100644 doc/xschem_man/developer_info_34.png diff --git a/doc/xschem_man/developer_info.html b/doc/xschem_man/developer_info.html index 60dc7112..232a1d67 100644 --- a/doc/xschem_man/developer_info.html +++ b/doc/xschem_man/developer_info.html @@ -507,8 +507,6 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns" - - @@ -1271,9 +1269,10 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
  • wire [x1 y1 x2 y2] [pos] [prop] [sel]
  •     Place a new wire
        if no coordinates are given start a GUI wire placement 
    -
  • wire_cut
  • +   
  • wire_cut [x y]
  •     start a wire cut operation. Point the mouse in the middle of a wire and
    -   click left button. 
    + click left button. + if x and y are given cut wire at given point
  • xcb_info
  •     For debug 
  • zoom_box [x1 y1 x2 y2] [factor]
  • @@ -1314,6 +1313,10 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
     
     
     
    +
    +
    +
    +
     
     
     
    @@ -1897,7 +1900,7 @@ xschem unselect_all
     xschem setprop instance Vvdd spice_ignore true
          
          
    -
    + 
     
     
      
  • Delete a component together with its attached nets


  • @@ -1915,7 +1918,7 @@ xschem connected_nets xschem delete - +
  • Delete dangling nets and labels


  • @@ -1926,7 +1929,7 @@ xschem delete xschem select_dangling_nets - +
  • Change attributes of a group of components


  • @@ -1948,7 +1951,7 @@ foreach i [xschem selected_set] { xschem setprop instance $i L 3} xschem unselect_all - +
  • Copy a components with its wired terminals


  • @@ -1976,7 +1979,7 @@ xschem setprop instance [lindex [xschem selected_set] 1] lab VPP - +
  • Transform a component into a short


  • @@ -2001,7 +2004,7 @@ xschem setprop instance Vvdd spice_ignore short - +
  • Move a selected portion of the schematic


  • @@ -2016,7 +2019,7 @@ xschem setprop instance Vvdd spice_ignore short xschem move_objects 100 0 - +
  • Rotate a selected portion of the schematic


  • @@ -2031,7 +2034,7 @@ xschem move_objects 100 0 xschem rotate 1100 -800 - +
  • Flip a selected portion of the schematic


  • @@ -2042,7 +2045,7 @@ xschem rotate 1100 -800 xschem flip 1100 -800 - +
  • Rotate in place a selected portion of the schematic


  • @@ -2058,7 +2061,78 @@ xschem flip 1100 -800 xschem rotate_in_place - + + + +
  • Move a wired object


  • + + + + + + + + + + +
    +
    # After selecting some objects ...
    +     
    +
    # ... we select only the first segments attached to their pins ...
    +xschem connected_nets 2
    +     
    +
    # ... And then move the selection.
    +xschem move_objects 100 0
    +     
    + + +
  • Add and wire parallel devices


  • + + + + + + +
    +
    # Given this instance ...
    +     
    +
    # ... The following commands will copy-paste the object and move it 
    +# using the "connect by kissing" feature: when separating connected instances a wire is added.
    +xschem select instance Q1
    +xschem copy
    +xschem paste 0 0
    +xschem move_objects 120 0 kissing
    +xschem unselect_all
    +     
    + + +
  • Replace symbols


  • + + + + + + +
    +
    # In the following schematic we want to replace the nfet3/pfet3 with nfet and pfet
    +# that have the bull connection pin.
    +     
    +
    +xschem search regex 1 model {fet_01v8} ;# select all instances that match "fet_01v8" model name
    +set f {}
    +foreach i [xschem selected_set] {
    +  # Replace fet3 with fet in symbol reference
    +  set newname [regsub {fet3} [xschem getprop instance $i cell::name] {fet}]
    +  xschem replace_symbol $i $newname $f
    +  # remove body attribute since it is now assigned to the bulk pin
    +  xschem setprop instance $i body fast
    +  set f fast ;# the f parameter is for optimzing (avoid pushing undo at each iteration)
    +}
    +xschem unselect_all
    +xschem redraw
    +     
    + + diff --git a/doc/xschem_man/developer_info_28.png b/doc/xschem_man/developer_info_28.png new file mode 100644 index 0000000000000000000000000000000000000000..9a66e788ffc8270691554d270ca9b9c1c14050ff GIT binary patch literal 1998 zcmb7FeKga17$1>vQ^?EB)^CZfMBWZ@%WrpBX6F5+$!QjO*)l7}WJXypC*9l6jTEI$ ziD(hRRr7MntsU|frf77lYhYS2W{c->Lp7VL0=lgt~=leXL?+Jfj&y`wh zwO}yVN-wNOAPlAoz+fu&E0!q{YM5KT@=%LK`=DX4YDjx-kGj(6?2iw|C~;WF8x<85 zRaMnx%a*CBsi~{0FJHb~Q&Uq*OG{f@TSrG{_3G8Sy1IILdiwhM1_lO(hK5E)M#jd* zYuBzdF)@L|;Rpm`-MV!E03eY_Q&ZCo8#b7knVFlLZ``=i!otGR($dPx%ErdV*4EbE z-rm8%!O_vt$;rvt+1bU#W&8H+APAyRC^Q=F=H}+%;eo+mcI?=J#bR+doVT|(9*_6& z@$vWf4-5C>lkb93|Z^78ZZ z3kwTNOG~d^yH-|K#^G=(D=Vw2s%mO#YHMrj>+89uFfNzd+}tdwxn-?vohuzfpa;=n z=!`vy(J(?NG9@}OiA+mCI&87C-D6Ejrbg0skW)8f65^1w7^Jg9nBPQ4%=o=FM{G3Gr_Qty9}b?C|qRmyKBx|pl&&1!dd4+Xo9etkPrUjI%ueGdc2+ z#t9Jn0Xlt#^{ZrN!gV^n%N>XKqrWYWi=F*s{D%J`WCsLK>}}tDRq>x27d<{F`3U_v zM<~zT#Q1&c3mWBoo-KbCPACrsT9G-CQgqD>>jy#X`FTIXCnzjV_I!ryQYSxW*gLC6 zzHdADF#GY9*!es(5+1dzNmJje!qk+IzzJS?%IYBY!4h-`r zqI~q^<4WZ7(*#m8;v3tA2u5xTnTue=c0q%vJEDHx`<5Qh%qBTOqTSlg8!zS(S&dEw z_!OI)7vZi<;at$kt;g?=>P!4WW$W{ZX|e<2_PE-82a`u-qMx9JG}3cnRYUsN#51|Y z<#6CJB&Lf0#xpbO>m<{7iTuU;dx?Zy^W~6Un(XbHnKm1!o;F>le|Bizq>mYsG15{6 z&(D{aU4A*)*LJ%E?79#~oh}NZmP1EN!0hoSyrbIUsd*ozWJkJ1dBSL~ZQ1Zs`*dE+kz*%hwu?;f}5zUcgP zsNfaEwXwERmUFUilq0twF&n{Bh*-}PiCzj>cC6reg`maDY9tV=Q70$JycNua%pY&E zR!oOigQ3lt2}PiAtm%G&s9zi=lWm0oS2AZx(&$EoejWqwyS2t89=b z*!!-J%v$4r9U6-vrZytL+WpMO5@@{mP#{Zi=in%BAE4MDpElbWelauHp92MOoyj-T zU7A=?Hy|yF>_9`2>+q@c;h_$IDGfkB0)1IR#h`iK#LJ1hQ&ZJb($RrR1m9D$L{8xL zdon_V?12K(!ZTiz-?Q4`Q{3S(_JfC+@i}VYH*i34v4h;A3F`br;NPyjwsv+#}l^AF&t4*Q3&n Gl=Uw{tEzke literal 0 HcmV?d00001 diff --git a/doc/xschem_man/developer_info_29.png b/doc/xschem_man/developer_info_29.png new file mode 100644 index 0000000000000000000000000000000000000000..fb94f65efc30480f961de380bb977a83b96b1ee2 GIT binary patch literal 2012 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 literal 0 HcmV?d00001 diff --git a/doc/xschem_man/developer_info_31.png b/doc/xschem_man/developer_info_31.png new file mode 100644 index 0000000000000000000000000000000000000000..5b789c439b6a8145f6f88b4fc41dd67511fb8794 GIT binary patch literal 2844 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 LUXBg+C$s+tx1zP1 literal 0 HcmV?d00001 diff --git a/doc/xschem_man/developer_info_32.png b/doc/xschem_man/developer_info_32.png new file mode 100644 index 0000000000000000000000000000000000000000..5e7800a45e03ddf757d68b831a995dfa3558ad0e GIT binary patch literal 6097 zcmd5=XH-*Nx(O`s}#imCX|5ErHP`_1VN;P zA`lWldX=hl2_^IZfjN$|X71csv+ln;bAFt&_q)z|*IS?c?kDE9p$_vIo--g2h#97< zWds795C(y0Ag50Nl2=nH0lT;{kZuqkL61UoH=^wg~2@N)(1A$JeXLq~q@_|5LG=>J`C=3UI%n4ke za1IDPD5q6g#JY6Y44PEQlmhS1E3;&BPyg=aVy=)ZU*`k@nW3ChXh6^Y{`=E^)$m^- z`oG-3FKl|2FoAOZD~$cC5#$jl&DOB<%zlt!DSki=#9Dn@^9+=M^}8~Vm8idmSxw}} zc97J?i=6}V_d7hQ+td>eAYY%eu@a@6=qe*OEvVfjOx&s_M#imkiQO70yOT+#)>!-vXKO*)h^NeHSmBSzjy*CY=c)!{$IK1&K%*5`3iCZ{0m?Bb$~6aZCtVafSp{glxpPOct4)U9>Psw)Bn-P)p2`86E8#zqC9w z3YByefs+unQJz1vh+m-xn-R3-4_}0kpSo#lU0%uJyR5gd(RCC;N-Z)M7Yu!Cb~c(n zw_fKVCHVa#T^P2oBr%cg{>K}54A_)&$IIoGgoK{Mn@biFVf#q|IMlN*YT4b$-9I1b z>Mr*q8hyCcEfw9K>j+lnD!6=K&%&US64?TG?!#bUD;@_At28KSf7<5}ZeWnOM`q(h zYWgatNkc~`Wq?@cT;sE7gFx^Kylb7`$-3t0K7M*SQBd}9`O%T22&tv9v6XjcX$f4f zFwze3I$qwb>^`uzoNMJCxndISlemQtH+tGkqW;2@?wD#zh;#Dntgdm=UDJ$IkV})V z{e0@U#a6&iZ~rOA{Xr|f-0Pv5>zj7Ufz&%7=+I6ANy{bbPIQSHZ#+j2b`k1Uhn9rq9*C_}KPRT@JGl|B=d6$wUQWH{u1 ztzZa@$nTXM0>klp6^Ou``Mr`Ra4nameplEMBVEUvVOp6AawY9V)t@+tZ=wT9BV|rb zP9o)D$4ABmhQ7gyQc_YEF2J-V!;YzOadEo%Qxz2z1A~M7s(wYwSPTZUwY60*dH>!$ z-~Fwn#%>~!D5?{;6`)pGS!rNkfQwU7k(lRRh4Cb!NO(~I%B%A7zT5=Ryfa0ucN#-`@|a8l$3Z4u356z6v|q%q}b}OiE02=*nE$4wAf?D(5~~*Lb#w2*w>L z@m$sHOL(M|-?Al$&}vD}@K)O(h=w*CH=PpPI-sVdEs)AfEUMg^QOw=Y-OQ;q77`N* z8rqi+YZ49HdL>Aq9@VbZAB1eCLG1Oa+9up~i|&6Mck^EtZ8(@%I}8oGb}fPerj4Xz zhn{&H9ym|#6`{c@h&Bn67 zx0k%pA&VxY9zVMFf(X8?t%wy zrHrHy9Cc@m)lk*r?Cc(S<}5dDVNXIbCWhJ4ltZ+=qoWkJ^UXbEhSwdpojkTuPsa03 z1uYk&Q1trv<9Ve9pa@y9O;1k6bAf++>{bt6%#HF}o8%`(&iwc>-}RDrq}BTiml+zB zFHEZ(7sL9?kQjE!6G+}S1{uj&S(Cegs04gfMTNrUzdnkJpDHRaTwoDZ)v=iv$5Zx8 zeXmn&LMi*(%LmH6c3w%E+-wlOG-)K07D1 zLmFk@8=WB^ZWU;})CdbjA{W|UNHu4ye0jL1I*6uJD|s(G(s-4p<$kMT(YiH27}8qIA$dMq2ZxMh zcj5c@kJs3JulY~-4(Dm3FG@)P@-Ba#mRT;YtC~AuH;Y8z5A=eA4>)Z?>?nIWf{(U3 zWE=j(wzRZtZTVDVbv1`4v@FQSPa27YmEANnG&m>V$>0_2hCaoOUMo zD9zE?nKAUGt(Bmryb8UZBViriB9}73{$b?zOmm}5VX7}8Yu`;bSCX~=vkf=sD(kP& z<2oJ$s%Y5@J_@v7z@5sTTUC|$p=83``?pEvmZZDJwAS9Lj1P8a9|E z+-R%%k3j|;TH-Rzb;W0K;GMB-EvXzpP5>53lepU9_96!Peh657yEQQ@;b-P9B>DJkhb@}X&McM1S(XqfZJ2fNUQ zFzWs`%7Gyxb&YtW1Zc0BP1LWU?&EeRmv;|<@@6*RZ2z2c(+7=4*8=dOji7AIO{`uV z86W5SoW1<`BqJ$}k3K7br~Ko`k0m7~V^VZoiOhoP<1IdRblmK%^?(ZnuV3>kdrZHI z4;r;8e*gY`aWTKVLni?%`n8*x_Vz5ZO3;=g>$~FOdzs>$BJjMCR4`m?wwXmkZ7RIc zI4vzi;ZF&zkpuvr{Kq|Y;P9DbX$v2T)4VO;f{$qRyu8Yzw}N1fSEmb+#zsb+Um0l4 z#F*0(5^h^sW~QgtxQv$L@i%a=FLJ;@J91JKI8I<%*Y`!P3%S@SA%tut3^UD)j5hX{ zOA8IzfU3Vk0;-+^%fK#?>3((kUDjIB37#*`guT7Jb5bTi;?%bXjCmDZda}frL;-~W zVDj?tl$V#|jBH-|9626{2c7rV%fm(1xODUqoDGNx0NdHY zt17I4(-EiG*x8?C^QZ-^Q+KCiMPwTez1DT8G|*f{z_d5FvX8d*bZpN=p6{HNMV6Mep9fXTxS@WGFj2|d^@2Nw&dos0>)5@Yc z?d-R7kp%;Tu!rx(BzBbGr2QkV__oc>?BkHt@#?0kC^l?+dwY~%=pN96R`Cb~qHe2C zA8M2P=FOX&oU4!WP7kMFhWNbAR2F{uGBKU!I)0=t3FuK^;4!s%R5@(=_U+sA7cUxR zpWgy5G4as>xXEYF&d7@!44o+*C(o3JR1XXg-WhM~%_L%T6)JUoUCjZUdVjBQsMtcu z^;?C$EY4@KC%0-UG}y{&0=hfCIhSHXf80(?lFSa>U&@m8J=`OQ4ndxvNb^L=IgMj1 zye)Bb3Nf3`xt#GDGWPaftCJ&v&>gICz2AqN zoW`|Xpvyl`)J<_1pJ4>97!n3Q*8-xp#F$lVJsTkCiIk;iaVry(os@>dIg6?Nq0%s_ zbM3;343%6-C*2(XT!A*91DX#eTy5ZqP|(dE$~T^}@9;&~{&jwQYYS_3T7-=}#`Jzk zMD_P1$;D&t{JE1j&qDJY*kCZd=kSRRV9j$-h9m-)uduX}vn-t+412+N_D#mD>J+fp z502n_kYxp3A`@Pi>RD&aE_7hHAqd@k+0zR%q4v1F?=0f$=eU5WR0Pcdo0bT59&TUi z|6XTn3$s}-5#U&ruCeqwrY0tddV1PG12*#2DEXub=lkbU!QO9x3W_G|kwrw*vu|e0 zh?M&lZtc9rQyw|K7iz#Jz)y}m`*$>N%;w&CI+ppUazrM(DOAKCn5xk1c2~HJ0gRp-z7%7sN zK+KgFy87c0ubX!(8OyCSCQujgA?QKj$qsq>|j|F|$SbGdiHi>K4)$JzTK)Nv`2 zZzqMrdxU$&3ud0qr|Q@Bgpq?l8r}H9Sngz;DvMtH@ivQ3-SX#hci`;L!q;zg)%UIn z1d4SIM>dnWZ}ta4SxU&Lhe+gZI4hP#{SQ`d#m;@NXlr~>xkV%4mat?Q5~A6L%)U=akEZe421?Wkzcj*oOXrWRFX`} zxL-yzA+TPH9{dJ~3*4B|I4nag8lH>aZ5KW9C5^3X0X&N>qbw;1uUcA5P zt!*d34QEM0tEgKi%e;^(N$4{gt?aP0(!wV2KsHui%Imn*z%EL?u2ASpdEATzE6Q=p z3B><-j+hTCw|n9;`k+K6FZz2tIczN$f{d#>C;={&D=Rnjo7Dg}7 zV3Z}yf3>SW{UC!9o~CL#8D^uWcRH0O0t0Sezfdl&Kl{FLww04|l_`kRPZPC^jtHkL zXaLuAbBpFnv5NrL@HIxv_BypQ%yN7*{N3AxutQCm`n|$}u1su_WOFvd1JrlX)WZ-! z^;yB>?d5Jtf(a5SEBNwSrx2V8T$dHaoK#rC#!3!qU4|~a^Pj}Nkcu^=Kl^8(CaPx2 zo4PF`@=B+J{Z{7Y-aBKjg_l@E`Z#TTs_oIxVu2wMExU6xfE9HpII&PRXH6}w585&L zIN{NE=@Svnof3GjkJ_mh6P4mGSggl6K;)4}4LV zdzw8luF6FbuX+-C8a*-8>l5hNTcEqW2_ODw0~>la;RqK3ZK#LeKCgDq51#J?&a+77 z3tM7ZkuzMUe#|QKJw<7WDaU!9H;ik(uVHrcqCWa6Sc$ z!|RP7>UoV8VbOd4!V_i3$M9rMpa8oUS>pbQGyIQ}XjQ;rU=82CIRvqcGeG0Lz;#Zj zjxwiSv##|wG$32 zj@UUScODQZnM?`El%oCLobA8U_Rq}j|Jz^VzbMMs!C(BOilQ`6N9+0+HjTT z40=$weTcf?Li_*Zod02&HcTV=C8K)|2!ff;C@T3}#1 W%f-;t>3JFufneH(S|!(QAO8i14^R&P literal 0 HcmV?d00001 diff --git a/doc/xschem_man/developer_info_33.png b/doc/xschem_man/developer_info_33.png new file mode 100644 index 0000000000000000000000000000000000000000..28f43de2b5f51d13d25310b86f692a62e5246d50 GIT binary patch literal 13401 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 bVlCm25?;d~~~@0ek#$_ltxfV8VG{1V<3Td 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 2) { int i; for(i = 2; i < argc; i++) { - if(!strcmp(argv[i], "kissing")) kissing = 1; - if(!strcmp(argv[i], "stretch")) stretch = 1; + if(!strcmp(argv[i], "kissing")) {kissing = 1; nparam++;} + if(!strcmp(argv[i], "stretch")) {stretch = 1; nparam++;} } } - if(kissing | stretch) argc = 2; if(stretch) select_attached_nets(); if(kissing) tclsetintvar("connect_by_kissing", 2); - if(argc > 3) { + if(argc > 3 + nparam) { move_objects(START,0,0,0); move_objects( END,0,atof(argv[2]), atof(argv[3])); } @@ -3067,7 +3067,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg else if(!strcmp(argv[1], "replace_symbol")) { int inst, fast = 0; - if(argc == 5) { + if(argc > 4) { argc = 4; if(!strcmp(argv[4], "fast")) { fast = 1; @@ -4389,12 +4389,17 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg } else xctx->ui_state |= MENUSTARTWIRE; } - /* wire_cut + /* wire_cut [x y] * start a wire cut operation. Point the mouse in the middle of a wire and - * click left button. */ + * click left button. + * if x and y are given cut wire at given point */ else if(!strcmp(argv[1], "wire_cut")) { - xctx->ui_state |= MENUSTARTWIRECUT; + if(argc > 3) { + break_wires_at_point(atof(argv[2]), atof(argv[3])); + } else { + xctx->ui_state |= MENUSTARTWIRECUT; + } Tcl_ResetResult(interp); }