doc update
This commit is contained in:
parent
99a3e70e94
commit
896bb4e317
|
|
@ -464,7 +464,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
</pre>
|
</pre>
|
||||||
<img src="developer_info_06.png"><br>
|
<img src="developer_info_06.png"><br>
|
||||||
<br>
|
<br>
|
||||||
<h1>XSCHEM COMMANDS REFERENCE DOCUMENTATION</h1><br>
|
<h1>XSCHEM <a id="cmdref">COMMAND REFERENCE</a> DOCUMENTATION</h1><br>
|
||||||
<p>
|
<p>
|
||||||
The following are xschem specific tcl commands.
|
The following are xschem specific tcl commands.
|
||||||
All commands are prefixed by the <kbd>xschem</kbd> keyword.
|
All commands are prefixed by the <kbd>xschem</kbd> keyword.
|
||||||
|
|
@ -476,164 +476,162 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
<br>
|
<br>
|
||||||
<ul> <!-- Following list items generated in xschem src dir with:
|
<ul> <!-- Following list items generated in xschem src dir with:
|
||||||
./extract_scheduler_cmd_help.awk scheduler.c > ~/xxx
|
./extract_scheduler_cmd_help.awk scheduler.c > ~/xxx
|
||||||
Include ~/xxx here.
|
Include ~/xxx here between <ul> and </ul>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<li><kbd> abort_operation</kbd></li><pre>
|
<li><kbd> abort_operation</kbd></li><pre>
|
||||||
Resets UI state, unselect all and abort any pending operation </pre>
|
Resets UI state, unselect all and abort any pending operation </pre>
|
||||||
|
|
||||||
<li><kbd> add_symbol_pin</kbd></li><pre>
|
<li><kbd> add_symbol_pin</kbd></li><pre>
|
||||||
Start a GUI placement of a symbol pin </pre>
|
Start a GUI placement of a symbol pin </pre>
|
||||||
|
|
||||||
<li><kbd> add_graph</kbd></li><pre>
|
<li><kbd> add_graph</kbd></li><pre>
|
||||||
Start a GUI placement of a graph object </pre>
|
Start a GUI placement of a graph object </pre>
|
||||||
|
|
||||||
<li><kbd> add_png</kbd></li><pre>
|
<li><kbd> add_png</kbd></li><pre>
|
||||||
Ask user to choose a png file and start a GUI placement of the image </pre>
|
Ask user to choose a png file and start a GUI placement of the image </pre>
|
||||||
|
|
||||||
<li><kbd> align</kbd></li><pre>
|
<li><kbd> align</kbd></li><pre>
|
||||||
Align currently selected objects to current snap setting </pre>
|
Align currently selected objects to current snap setting </pre>
|
||||||
|
|
||||||
<li><kbd> annotate_op [raw_file]</kbd></li><pre>
|
<li><kbd> annotate_op [raw_file]</kbd></li><pre>
|
||||||
Annotate operating point data into current schematic.
|
Annotate operating point data into current schematic.
|
||||||
use <schematic name>.raw or use supplied argument as raw file to open
|
use <schematic name>.raw or use supplied argument as raw file to open
|
||||||
look for operating point data and annotate voltages/currents into schematic </pre>
|
look for operating point data and annotate voltages/currents into schematic </pre>
|
||||||
|
|
||||||
<li><kbd> arc</kbd></li><pre>
|
<li><kbd> arc</kbd></li><pre>
|
||||||
Start a GUI placement of an arc.
|
Start a GUI placement of an arc.
|
||||||
User should click 3 unaligned points to define the arc </pre>
|
User should click 3 unaligned points to define the arc </pre>
|
||||||
|
|
||||||
<li><kbd> attach_labels</kbd></li><pre>
|
<li><kbd> attach_labels</kbd></li><pre>
|
||||||
Attach net labels to selected component(s) instance(s) </pre>
|
Attach net labels to selected component(s) instance(s) </pre>
|
||||||
|
|
||||||
<li><kbd> bbox begin|end</kbd></li><pre>
|
<li><kbd> bbox begin|end</kbd></li><pre>
|
||||||
Start/end bounding box calculation: parameter is either 'begin' or 'end' </pre>
|
Start/end bounding box calculation: parameter is either 'begin' or 'end' </pre>
|
||||||
|
|
||||||
<li><kbd> break_wires</kbd></li><pre>
|
<li><kbd> break_wires</kbd></li><pre>
|
||||||
Break wires at selected instance pins </pre>
|
Break wires at selected instance pins </pre>
|
||||||
|
|
||||||
<li><kbd> build_colors</kbd></li><pre>
|
<li><kbd> build_colors</kbd></li><pre>
|
||||||
Rebuild color palette using values of tcl vars dim_value and dim_bg </pre>
|
Rebuild color palette using values of tcl vars dim_value and dim_bg </pre>
|
||||||
|
|
||||||
<li><kbd> callback winpath event mx my key button aux state</kbd></li><pre>
|
<li><kbd> callback winpath event mx my key button aux state</kbd></li><pre>
|
||||||
Invoke the callback event dispatcher with a software event </pre>
|
Invoke the callback event dispatcher with a software event </pre>
|
||||||
|
|
||||||
<li><kbd> case_insensitive 1|0</kbd></li><pre>
|
<li><kbd> case_insensitive 1|0</kbd></li><pre>
|
||||||
Set case insensitive symbol lookup. Use only on case insensitive filesystems </pre>
|
Set case insensitive symbol lookup. Use only on case insensitive filesystems </pre>
|
||||||
|
|
||||||
<li><kbd> check_symbols</kbd></li><pre>
|
<li><kbd> check_symbols</kbd></li><pre>
|
||||||
List all used symbols in current schematic and warn if some symbol is newer </pre>
|
List all used symbols in current schematic and warn if some symbol is newer </pre>
|
||||||
|
|
||||||
<li><kbd> check_unique_names [1|0]</kbd></li><pre>
|
<li><kbd> check_unique_names [1|0]</kbd></li><pre>
|
||||||
Check if all instances have a unique refdes (name attribute in xschem),
|
Check if all instances have a unique refdes (name attribute in xschem),
|
||||||
highlight such instances. If second parameter is '1' rename duplicates </pre>
|
highlight such instances. If second parameter is '1' rename duplicates </pre>
|
||||||
|
|
||||||
<li><kbd> circle</kbd></li><pre>
|
<li><kbd> circle</kbd></li><pre>
|
||||||
Start a GUI placement of a circle.
|
Start a GUI placement of a circle.
|
||||||
User should click 3 unaligned points to define the circle </pre>
|
User should click 3 unaligned points to define the circle </pre>
|
||||||
|
|
||||||
<li><kbd> clear [force] [symbol|schematic]</kbd></li><pre>
|
<li><kbd> clear [force] [symbol|schematic]</kbd></li><pre>
|
||||||
Clear current schematic window. Resets hierarchy level. Remove symbols
|
Clear current schematic window. Resets hierarchy level. Remove symbols
|
||||||
the 'force' parameter will not ask to save existing modified schematic.
|
the 'force' parameter will not ask to save existing modified schematic.
|
||||||
the 'schematic' or 'symbol' parameter specifies to default to a schematic
|
the 'schematic' or 'symbol' parameter specifies to default to a schematic
|
||||||
or symbol window (default: schematic) </pre>
|
or symbol window (default: schematic) </pre>
|
||||||
|
|
||||||
<li><kbd> clear_drawing</kbd></li><pre>
|
<li><kbd> clear_drawing</kbd></li><pre>
|
||||||
Clears drawing but does not purge symbols </pre>
|
Clears drawing but does not purge symbols </pre>
|
||||||
|
|
||||||
<li><kbd> color_dim value</kbd></li><pre>
|
<li><kbd> color_dim value</kbd></li><pre>
|
||||||
Dim colors or brite colors depending on value parameter: -5 <= value <= 5 </pre>
|
Dim colors or brite colors depending on value parameter: -5 <= value <= 5 </pre>
|
||||||
|
|
||||||
<li><kbd> compare_schematics [sch_file]</kbd></li><pre>
|
<li><kbd> compare_schematics [sch_file]</kbd></li><pre>
|
||||||
Compare currently loaded schematic with another 'sch_file' schematic.
|
Compare currently loaded schematic with another 'sch_file' schematic.
|
||||||
if no file is given prompt user to choose one </pre>
|
if no file is given prompt user to choose one </pre>
|
||||||
|
|
||||||
<li><kbd> connected_nets [1|0]</kbd></li><pre>
|
<li><kbd> connected_nets [1|0]</kbd></li><pre>
|
||||||
Selected nets connected to currently selected net or net label/pin.
|
Selected nets connected to currently selected net or net label/pin.
|
||||||
if '1' argument is given, stop at wire junctions </pre>
|
if '1' argument is given, stop at wire junctions </pre>
|
||||||
|
|
||||||
<li><kbd> copy</kbd></li><pre>
|
<li><kbd> copy</kbd></li><pre>
|
||||||
Copy selection to clipboard </pre>
|
Copy selection to clipboard </pre>
|
||||||
|
|
||||||
<li><kbd> copy_objects</kbd></li><pre>
|
<li><kbd> copy_objects</kbd></li><pre>
|
||||||
Start a GUI copy operation </pre>
|
Start a GUI copy operation </pre>
|
||||||
|
|
||||||
<li><kbd> count_items string separator quoting_chars</kbd></li><pre>
|
<li><kbd> count_items string separator quoting_chars</kbd></li><pre>
|
||||||
Debug command </pre>
|
Debug command </pre>
|
||||||
|
|
||||||
<li><kbd> Create_plot_cmd</kbd></li><pre>
|
<li><kbd> Create_plot_cmd</kbd></li><pre>
|
||||||
Create an xplot file in netlist/simulation directory with the list of highlighted nodes
|
Create an xplot file in netlist/simulation directory with the list of highlighted nodes
|
||||||
in a format the selected waveform viewer understands (bespice, gaw, ngspice) </pre>
|
in a format the selected waveform viewer understands (bespice, gaw, ngspice) </pre>
|
||||||
|
|
||||||
<li><kbd> cut</kbd></li><pre>
|
<li><kbd> cut</kbd></li><pre>
|
||||||
Cut selection to clipboard </pre>
|
Cut selection to clipboard </pre>
|
||||||
|
|
||||||
<li><kbd> debug n</kbd></li><pre>
|
<li><kbd> debug n</kbd></li><pre>
|
||||||
Set xschem in debug mode.'n' is the debug level (0=no debug). Higher levels yield more debug info.</pre>
|
Set xschem in debug mode.'n' is the debug level (0=no debug). Higher levels yield more debug info.</pre>
|
||||||
|
|
||||||
<li><kbd> delete</kbd></li><pre>
|
<li><kbd> delete</kbd></li><pre>
|
||||||
Delete selection </pre>
|
Delete selection </pre>
|
||||||
|
|
||||||
<li><kbd> delete_files</kbd></li><pre>
|
<li><kbd> delete_files</kbd></li><pre>
|
||||||
Bring up a file selector the user can use to delete files </pre>
|
Bring up a file selector the user can use to delete files </pre>
|
||||||
|
|
||||||
<li><kbd> descend [n]</kbd></li><pre>
|
<li><kbd> descend [n]</kbd></li><pre>
|
||||||
Descend into selected component instance. Optional number 'n' specifies the
|
Descend into selected component instance. Optional number 'n' specifies the
|
||||||
instance number to descend into for vector instances (default: 0). </pre>
|
instance number to descend into for vector instances (default: 0). </pre>
|
||||||
|
|
||||||
<li><kbd> descend_symbol</kbd></li><pre>
|
<li><kbd> descend_symbol</kbd></li><pre>
|
||||||
Descend into the symbol view of selected component instance </pre>
|
Descend into the symbol view of selected component instance </pre>
|
||||||
|
|
||||||
<li><kbd> display_hilights</kbd></li><pre>
|
<li><kbd> display_hilights</kbd></li><pre>
|
||||||
Print a list of highlighted objects (nets, net labels/pins, instances) </pre>
|
Print a list of highlighted objects (nets, net labels/pins, instances) </pre>
|
||||||
|
|
||||||
<li><kbd> draw_graph [n] [flags]</kbd></li><pre>
|
<li><kbd> draw_graph [n] [flags]</kbd></li><pre>
|
||||||
Redraw graph rectangle number 'n'. If the optional 'flags' integer is given it will be used as the
|
Redraw graph rectangle number 'n'. If the optional 'flags' integer is given it will be used as the
|
||||||
flags bitmask to use while drawing (can be used to restrict what to redraw) </pre>
|
flags bitmask to use while drawing (can be used to restrict what to redraw) </pre>
|
||||||
|
|
||||||
<li><kbd> edit_file</kbd></li><pre>
|
<li><kbd> edit_file</kbd></li><pre>
|
||||||
Edit xschem file of current schematic if nothing is selected.
|
Edit xschem file of current schematic if nothing is selected.
|
||||||
Edit .sym file if a component is selected. </pre>
|
Edit .sym file if a component is selected. </pre>
|
||||||
|
|
||||||
<li><kbd> edit_prop</kbd></li><pre>
|
<li><kbd> edit_prop</kbd></li><pre>
|
||||||
Edit global schematic/symbol attributes or attributes of currently selected instances </pre>
|
Edit global schematic/symbol attributes or attributes of currently selected instances </pre>
|
||||||
|
|
||||||
<li><kbd> edit_prop</kbd></li><pre>
|
<li><kbd> edit_prop</kbd></li><pre>
|
||||||
Edit global schematic/symbol attributes or attributes of currently selected instances
|
Edit global schematic/symbol attributes or attributes of currently selected instances
|
||||||
using a text editor (defined in tcl 'editor' variable) </pre>
|
using a text editor (defined in tcl 'editor' variable) </pre>
|
||||||
|
|
||||||
<li><kbd> embed_rawfile raw_file</kbd></li><pre>
|
<li><kbd> embed_rawfile raw_file</kbd></li><pre>
|
||||||
Embed base 64 encoded 'raw_file' into currently selected element as a 'spice_data'
|
Embed base 64 encoded 'raw_file' into currently selected element as a 'spice_data'
|
||||||
attribute. </pre>
|
attribute. </pre>
|
||||||
|
|
||||||
<li><kbd> enable_layers</kbd></li><pre>
|
<li><kbd> enable_layers</kbd></li><pre>
|
||||||
Enable/disable layers depending on tcl array variable enable_layer() </pre>
|
Enable/disable layers depending on tcl array variable enable_layer() </pre>
|
||||||
|
|
||||||
<li><kbd> exit</kbd></li><pre>
|
<li><kbd> exit</kbd></li><pre>
|
||||||
Exit the program, ask for confirm if current file modified. </pre>
|
Exit the program, ask for confirm if current file modified. </pre>
|
||||||
|
|
||||||
<li><kbd> expandlabel lab</kbd></li><pre>
|
<li><kbd> expandlabel lab</kbd></li><pre>
|
||||||
Expand vectored labels/instance names:
|
Expand vectored labels/instance names:
|
||||||
xschem expandlabel {2*A[3:0]} --> A[3],A[2],A[1],A[0],A[3],A[2],A[1],A[0] 8
|
xschem expandlabel {2*A[3:0]} --> A[3],A[2],A[1],A[0],A[3],A[2],A[1],A[0] 8
|
||||||
last field is the number of bits
|
last field is the number of bits
|
||||||
since [ and ] are TCL special characters argument must be quoted with { and } </pre>
|
since [ and ] are TCL special characters argument must be quoted with { and } </pre>
|
||||||
|
|
||||||
<li><kbd> find_nth string sep n</kbd></li><pre>
|
<li><kbd> find_nth string sep n</kbd></li><pre>
|
||||||
Find n-th field string separated by characters in sep. 1st field is in position 1
|
Find n-th field string separated by characters in sep. 1st field is in position 1
|
||||||
xschem find_nth {aaa,bbb,ccc,ddd} {,} 2 --> bbb </pre>
|
xschem find_nth {aaa,bbb,ccc,ddd} {,} 2 --> bbb </pre>
|
||||||
|
|
||||||
<li><kbd> flip</kbd></li><pre>
|
<li><kbd> flip</kbd></li><pre>
|
||||||
Flip selection horizontally </pre>
|
Flip selection horizontally </pre>
|
||||||
|
|
||||||
<li><kbd> flip_in_place</kbd></li><pre>
|
<li><kbd> flip_in_place</kbd></li><pre>
|
||||||
Flip selection horizontally, each object around its center </pre>
|
Flip selection horizontally, each object around its center </pre>
|
||||||
|
|
||||||
<li><kbd> fullscreen</kbd></li><pre>
|
<li><kbd> fullscreen</kbd></li><pre>
|
||||||
Toggle fullscreen modes: fullscreen with menu & status, fullscreen, normal </pre>
|
Toggle fullscreen modes: fullscreen with menu & status, fullscreen, normal </pre>
|
||||||
|
|
||||||
<li><kbd> get var</kbd></li><pre>
|
<li><kbd> get var</kbd></li><pre>
|
||||||
Get C variable/constant 'var' </pre>
|
Get C variable/constant 'var' </pre>
|
||||||
|
<ul>
|
||||||
|
<li><kbd> backlayer </kbd> number of background layer </li>
|
||||||
|
<li><kbd> bbox_hilighted </kbd> bounding box of highlinhted objects </li>
|
||||||
|
<li><kbd> bbox_selected </kbd> bounding box of selected objects </li>
|
||||||
|
<li><kbd> cadlayers </kbd> number of layers </li>
|
||||||
|
<li><kbd> case_insensitive </kbd> case_insensitive symbol matching </li>
|
||||||
|
<li><kbd> color_ps </kbd> color postscript flag </li>
|
||||||
|
<li><kbd> current_dirname </kbd> directory name of current design </li>
|
||||||
|
<li><kbd> current_name </kbd> name of current design (no library path) </li>
|
||||||
|
<li><kbd> current_win_path </kbd> path of current tab/window (.drw, .x1.drw, ...) </li>
|
||||||
|
<li><kbd> currsch </kbd> hierarchy level of current schematic (start at 0) </li>
|
||||||
|
<li><kbd> debug_var </kbd> debug level (0 = no debug, 1, 2, 3,...) </li>
|
||||||
|
<li><kbd> draw_window </kbd> direct draw into window </li>
|
||||||
|
<li><kbd> format </kbd> alternate format attribute to use in netlist (or NULL) </li>
|
||||||
|
<li><kbd> graph_lastsel </kbd> number of last graph that was clicked </li>
|
||||||
|
<li><kbd> gridlayer </kbd> layer number for grid </li>
|
||||||
|
<li><kbd> help </kbd> command help </li>
|
||||||
|
<li><kbd> header_text </kbd> header metadata (license info etc) present in schematic </li>
|
||||||
|
<li><kbd> instances </kbd> number of instances in schematic </li>
|
||||||
|
<li><kbd> lastsel </kbd> number of selected objects </li>
|
||||||
|
<li><kbd> line_width </kbd> get line width </li>
|
||||||
|
<li><kbd> netlist_name </kbd> netlist name if set. If 'fallback' given get default name </li>
|
||||||
|
<li><kbd> netlist_type </kbd> get current netlist type (spice/vhdl/verilog/tedax) </li>
|
||||||
|
<li><kbd> no_draw </kbd> disable drawing </li>
|
||||||
|
<li><kbd> ntabs </kbd> get number of additional tabs (0 = only one tab) </li>
|
||||||
|
<li><kbd> pinlayer </kbd> layer number for pins </li>
|
||||||
|
<li><kbd> rectcolor </kbd> current layer number </li>
|
||||||
|
<li><kbd> sellayer </kbd> layer number for selection </li>
|
||||||
|
<li><kbd> semaphore </kbd> used for debug </li>
|
||||||
|
<li><kbd> schname </kbd> get full path of current sch. if 'n' given get sch of level 'n' </li>
|
||||||
|
<li><kbd> sch_path </kbd> get hierarchy path. if 'n' given get hierpath of level 'n' </li>
|
||||||
|
<li><kbd> sch_to_compare </kbd> if set return schematic current design is compared with </li>
|
||||||
|
<li><kbd> temp_dir </kbd> get windows temporary dir </li>
|
||||||
|
<li><kbd> text_svg </kbd> return 1 if using <text> elements in svg export </li>
|
||||||
|
<li><kbd> textlayer </kbd> layer number for texts </li>
|
||||||
|
<li><kbd> top_path </kbd> get top hier path of current window (always "") for tabbed if </li>
|
||||||
|
<li><kbd> topwindow </kbd> same as top_path but main window returned as "." </li>
|
||||||
|
<li><kbd> version </kbd> return xschem version </li>
|
||||||
|
<li><kbd> wirelayer </kbd> layer used for wires </li>
|
||||||
|
<li><kbd> xorigin </kbd> x coordinate of origin </li>
|
||||||
|
<li><kbd> yorigin </kbd> y coordinate of origin </li>
|
||||||
|
<li><kbd> zoom </kbd> zoom level </li>
|
||||||
|
</ul>
|
||||||
<li><kbd> getprop instance inst </kbd></li><pre>
|
<li><kbd> getprop instance inst </kbd></li><pre>
|
||||||
Get the full attribute string of 'inst'
|
Get the full attribute string of 'inst'
|
||||||
|
|
||||||
|
|
@ -669,92 +667,70 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
|
|
||||||
('inst' can be an instance name or instance number)
|
('inst' can be an instance name or instance number)
|
||||||
('pin' can be a pin name or pin number)</pre>
|
('pin' can be a pin name or pin number)</pre>
|
||||||
|
|
||||||
<li><kbd> get_tok str tok [with_quotes]</kbd></li><pre>
|
<li><kbd> get_tok str tok [with_quotes]</kbd></li><pre>
|
||||||
get value of token 'tok' in string 'str'
|
get value of token 'tok' in string 'str'
|
||||||
'with_quotes' (default:0) is an integer passed to get_tok_value() </pre>
|
'with_quotes' (default:0) is an integer passed to get_tok_value() </pre>
|
||||||
|
|
||||||
<li><kbd> get_tok_size</kbd></li><pre>
|
<li><kbd> get_tok_size</kbd></li><pre>
|
||||||
Get length of last looked up attribute name (not its value)
|
Get length of last looked up attribute name (not its value)
|
||||||
if returned value is 0 it means that last searched attribute did not exist </pre>
|
if returned value is 0 it means that last searched attribute did not exist </pre>
|
||||||
|
|
||||||
<li><kbd> globals</kbd></li><pre>
|
<li><kbd> globals</kbd></li><pre>
|
||||||
Return various global variables used in the program </pre>
|
Return various global variables used in the program </pre>
|
||||||
|
|
||||||
<li><kbd> go_back</kbd></li><pre>
|
<li><kbd> go_back</kbd></li><pre>
|
||||||
Go up one level (pop) in hierarchy </pre>
|
Go up one level (pop) in hierarchy </pre>
|
||||||
|
|
||||||
<li><kbd> hash_file file [skip_path_lines]</kbd></li><pre>
|
<li><kbd> hash_file file [skip_path_lines]</kbd></li><pre>
|
||||||
Do a simple hash of 'file'
|
Do a simple hash of 'file'
|
||||||
'skip_path_lines' is an integer (default: 0) passed to hash_file() </pre>
|
'skip_path_lines' is an integer (default: 0) passed to hash_file() </pre>
|
||||||
|
|
||||||
<li><kbd> hash_string str</kbd></li><pre>
|
<li><kbd> hash_string str</kbd></li><pre>
|
||||||
Do a simple hashing of string 'str' </pre>
|
Do a simple hashing of string 'str' </pre>
|
||||||
|
|
||||||
<li><kbd> help</kbd></li><pre>
|
<li><kbd> help</kbd></li><pre>
|
||||||
Print command help </pre>
|
Print command help </pre>
|
||||||
|
|
||||||
<li><kbd> hier_psprint [file]</kbd></li><pre>
|
<li><kbd> hier_psprint [file]</kbd></li><pre>
|
||||||
Hierarchical postscript / pdf print
|
Hierarchical postscript / pdf print
|
||||||
if 'file' is not given show a fileselector dialog box </pre>
|
if 'file' is not given show a fileselector dialog box </pre>
|
||||||
|
|
||||||
<li><kbd> hilight [drill]</kbd></li><pre>
|
<li><kbd> hilight [drill]</kbd></li><pre>
|
||||||
Highlight selected element/pins/labels/nets
|
Highlight selected element/pins/labels/nets
|
||||||
if 'drill' is given propagate net highlights through conducting elements
|
if 'drill' is given propagate net highlights through conducting elements
|
||||||
(elements that have the 'propag' attribute on pins ) </pre>
|
(elements that have the 'propag' attribute on pins ) </pre>
|
||||||
|
|
||||||
<li><kbd> hilight_instname inst</kbd></li><pre>
|
<li><kbd> hilight_instname inst</kbd></li><pre>
|
||||||
Highlight instance 'inst'
|
Highlight instance 'inst'
|
||||||
'inst' can be an instance name or number </pre>
|
'inst' can be an instance name or number </pre>
|
||||||
|
|
||||||
<li><kbd> hilight_netname net</kbd></li><pre>
|
<li><kbd> hilight_netname net</kbd></li><pre>
|
||||||
Highlight net name 'net' </pre>
|
Highlight net name 'net' </pre>
|
||||||
|
|
||||||
<li><kbd> instance sym_name x y rot flip [prop] [first_call]</kbd></li><pre>
|
<li><kbd> instance sym_name x y rot flip [prop] [first_call]</kbd></li><pre>
|
||||||
Place a new instance of symbol 'sym_name' at position x,y,
|
Place a new instance of symbol 'sym_name' at position x,y,
|
||||||
rotation and flip set to 'rot', 'flip'
|
rotation and flip set to 'rot', 'flip'
|
||||||
if 'prop' is given it is the new instance attribute string (default: symbol template string)
|
if 'prop' is given it is the new instance attribute string (default: symbol template string)
|
||||||
if 'first_call' is given it must be 1 on first call and zero on following calls
|
if 'first_call' is given it must be 1 on first call and zero on following calls
|
||||||
It is used only for efficiency reasons if placing multiple instances </pre>
|
It is used only for efficiency reasons if placing multiple instances </pre>
|
||||||
|
|
||||||
<li><kbd> instance_bbox inst</kbd></li><pre>
|
<li><kbd> instance_bbox inst</kbd></li><pre>
|
||||||
return instance and symbol bounding boxes
|
return instance and symbol bounding boxes
|
||||||
'inst' can be an instance name or number </pre>
|
'inst' can be an instance name or number </pre>
|
||||||
|
|
||||||
<li><kbd> instance_net inst pin</kbd></li><pre>
|
<li><kbd> instance_net inst pin</kbd></li><pre>
|
||||||
Return the name of the net attached to pin 'pin' of instance 'inst'
|
Return the name of the net attached to pin 'pin' of instance 'inst'
|
||||||
Example: xschem instance_net x3 MINUS --> REF </pre>
|
Example: xschem instance_net x3 MINUS --> REF </pre>
|
||||||
|
|
||||||
<li><kbd> instance_nodemap inst</kbd></li><pre>
|
<li><kbd> instance_nodemap inst</kbd></li><pre>
|
||||||
Return the instance name followed by a list of 'pin net' associations
|
Return the instance name followed by a list of 'pin net' associations
|
||||||
example: xschem instance_nodemap x3
|
example: xschem instance_nodemap x3
|
||||||
--> x3 PLUS LED OUT LEVEL MINUS REF
|
--> x3 PLUS LED OUT LEVEL MINUS REF
|
||||||
instance x3 pin PLUS is attached to net LED, pin OUT to net LEVEL and so on... </pre>
|
instance x3 pin PLUS is attached to net LED, pin OUT to net LEVEL and so on... </pre>
|
||||||
|
|
||||||
<li><kbd> instance_pin_coord inst attr value</kbd></li><pre>
|
<li><kbd> instance_pin_coord inst attr value</kbd></li><pre>
|
||||||
Return the name and coordinates of pin with attribute 'attr' set to 'value' of instance 'inst'
|
Return the name and coordinates of pin with attribute 'attr' set to 'value' of instance 'inst'
|
||||||
'inst can be an instance name or a number
|
'inst can be an instance name or a number
|
||||||
Example: xschem instance_pin_coord x3 name MINUS --> {MINUS} 600 -840 </pre>
|
Example: xschem instance_pin_coord x3 name MINUS --> {MINUS} 600 -840 </pre>
|
||||||
|
|
||||||
<li><kbd> instance_pins inst</kbd></li><pre>
|
<li><kbd> instance_pins inst</kbd></li><pre>
|
||||||
Return list of pins of instance 'inst'
|
Return list of pins of instance 'inst'
|
||||||
'inst can be an instance name or a number </pre>
|
'inst can be an instance name or a number </pre>
|
||||||
|
|
||||||
<li><kbd> instance_pos inst</kbd></li><pre>
|
<li><kbd> instance_pos inst</kbd></li><pre>
|
||||||
Get number (position) of instance name 'inst' </pre>
|
Get number (position) of instance name 'inst' </pre>
|
||||||
|
|
||||||
<li><kbd> instances_to_net net</kbd></li><pre>
|
<li><kbd> instances_to_net net</kbd></li><pre>
|
||||||
Return list of instances names and pins attached to net 'net'
|
Return list of instances names and pins attached to net 'net'
|
||||||
Example: xschem instances_to_net PANEL
|
Example: xschem instances_to_net PANEL
|
||||||
--> { {Vsw} {plus} {580} {-560} } { {p2} {p} {660} {-440} } { {Vpanel1} {minus} {600} {-440} } </pre>
|
--> { {Vsw} {plus} {580} {-560} } { {p2} {p} {660} {-440} } { {Vpanel1} {minus} {600} {-440} } </pre>
|
||||||
|
|
||||||
<li><kbd> line x1 y1 x2 y2 [pos]</kbd></li><pre>
|
<li><kbd> line x1 y1 x2 y2 [pos]</kbd></li><pre>
|
||||||
Place a line on current layer (rectcolor)
|
Place a line on current layer (rectcolor)
|
||||||
if integer number 'pos' is given place lien at indicated position in the line array. </pre>
|
if integer number 'pos' is given place lien at indicated position in the line array. </pre>
|
||||||
|
|
||||||
<li><kbd> line_width n</kbd></li><pre>
|
<li><kbd> line_width n</kbd></li><pre>
|
||||||
set line width to floating point number 'n' </pre>
|
set line width to floating point number 'n' </pre>
|
||||||
|
|
||||||
<li><kbd> list_hierarchy</kbd></li><pre>
|
<li><kbd> list_hierarchy</kbd></li><pre>
|
||||||
List all schematics at or below current hierarchy with modification times.
|
List all schematics at or below current hierarchy with modification times.
|
||||||
Example: xschem list_hiearchy
|
Example: xschem list_hiearchy
|
||||||
|
|
@ -763,31 +739,25 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
20230211_010031 {/home/schippes/xschem-repo/trunk/xschem_library/ngspice/pv_ngspice.sch}
|
20230211_010031 {/home/schippes/xschem-repo/trunk/xschem_library/ngspice/pv_ngspice.sch}
|
||||||
20221011_175308 {/home/schippes/xschem-repo/trunk/xschem_library/ngspice/diode_ngspice.sch}
|
20221011_175308 {/home/schippes/xschem-repo/trunk/xschem_library/ngspice/diode_ngspice.sch}
|
||||||
20221014_091945 {/home/schippes/xschem-repo/trunk/xschem_library/ngspice/comp_ngspice.sch}</pre>
|
20221014_091945 {/home/schippes/xschem-repo/trunk/xschem_library/ngspice/comp_ngspice.sch}</pre>
|
||||||
|
|
||||||
<li><kbd> list_hilights [sep]</kbd></li><pre>
|
<li><kbd> list_hilights [sep]</kbd></li><pre>
|
||||||
Sorted list of highlight nets, separated by character 'sep' (default: space) </pre>
|
Sorted list of highlight nets, separated by character 'sep' (default: space) </pre>
|
||||||
|
|
||||||
<li><kbd> list_tokens str with_quotes</kbd></li><pre>
|
<li><kbd> list_tokens str with_quotes</kbd></li><pre>
|
||||||
List tokens in string 'str'
|
List tokens in string 'str'
|
||||||
with_quotes:
|
with_quotes:
|
||||||
0: eat non escaped quotes (")
|
0: eat non escaped quotes (")
|
||||||
1: return unescaped quotes as part of the token value if they are present
|
1: return unescaped quotes as part of the token value if they are present
|
||||||
2: eat backslashes </pre>
|
2: eat backslashes </pre>
|
||||||
|
|
||||||
<li><kbd> load f [symbol|force|noundoreset|nofullzoom]</kbd></li><pre>
|
<li><kbd> load f [symbol|force|noundoreset|nofullzoom]</kbd></li><pre>
|
||||||
Load a new file 'f'.
|
Load a new file 'f'.
|
||||||
'force': do not ask to save modified file or warn if opening an already open file
|
'force': do not ask to save modified file or warn if opening an already open file
|
||||||
'noundoreset': do not reset the undo history
|
'noundoreset': do not reset the undo history
|
||||||
'symbol': do not load symbols (used if loading a symbol instead of a schematic)
|
'symbol': do not load symbols (used if loading a symbol instead of a schematic)
|
||||||
'nofullzoom': do not do a fll zoom on new schematic.</pre>
|
'nofullzoom': do not do a fll zoom on new schematic.</pre>
|
||||||
|
|
||||||
<li><kbd> load_new_window [f]</kbd></li><pre>
|
<li><kbd> load_new_window [f]</kbd></li><pre>
|
||||||
Load schematic in a new tab/window. If 'f' not given prompt user </pre>
|
Load schematic in a new tab/window. If 'f' not given prompt user </pre>
|
||||||
|
|
||||||
<li><kbd> log f</kbd></li><pre>
|
<li><kbd> log f</kbd></li><pre>
|
||||||
if 'f' is given output stderr messages to file 'f'
|
if 'f' is given output stderr messages to file 'f'
|
||||||
if 'f' is not given and a file log is open, close log file and resume logging to stderr </pre>
|
if 'f' is not given and a file log is open, close log file and resume logging to stderr </pre>
|
||||||
|
|
||||||
<li><kbd> logic_set n num</kbd></li><pre>
|
<li><kbd> logic_set n num</kbd></li><pre>
|
||||||
Set selected nets, net labels or pins to logic level 'n' 'num' times.
|
Set selected nets, net labels or pins to logic level 'n' 'num' times.
|
||||||
'n':
|
'n':
|
||||||
|
|
@ -797,7 +767,6 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
3 set to logic value Z
|
3 set to logic value Z
|
||||||
-1 toggle logic valie (1->0, 0->1)
|
-1 toggle logic valie (1->0, 0->1)
|
||||||
the 'num' parameter is essentially useful only with 'toggle' (-1) value</pre>
|
the 'num' parameter is essentially useful only with 'toggle' (-1) value</pre>
|
||||||
|
|
||||||
<li><kbd> logic_set n num</kbd></li><pre>
|
<li><kbd> logic_set n num</kbd></li><pre>
|
||||||
Set selected nets, net labels or pins to logic level 'n' 'num' times.
|
Set selected nets, net labels or pins to logic level 'n' 'num' times.
|
||||||
'n':
|
'n':
|
||||||
|
|
@ -807,35 +776,27 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
3 set to logic value Z
|
3 set to logic value Z
|
||||||
-1 toggle logic valie (1->0, 0->1)
|
-1 toggle logic valie (1->0, 0->1)
|
||||||
the 'num' parameter is essentially useful only with 'toggle' (-1) value</pre>
|
the 'num' parameter is essentially useful only with 'toggle' (-1) value</pre>
|
||||||
|
|
||||||
<li><kbd> make_sch_from_sel </kbd></li><pre>
|
<li><kbd> make_sch_from_sel </kbd></li><pre>
|
||||||
create an LCC instance from selection and place it instead of selection
|
create an LCC instance from selection and place it instead of selection
|
||||||
also ask if a symbol (.sym) file needs to be created </pre>
|
also ask if a symbol (.sym) file needs to be created </pre>
|
||||||
|
|
||||||
<li><kbd> make_symbol</kbd></li><pre>
|
<li><kbd> make_symbol</kbd></li><pre>
|
||||||
From current schematic (circuit.sch) create a symbol (circuit.sym)
|
From current schematic (circuit.sch) create a symbol (circuit.sym)
|
||||||
using ipin.sym, opin.sym, iopin.sym in schematic
|
using ipin.sym, opin.sym, iopin.sym in schematic
|
||||||
to deduce symbol interface pins. </pre>
|
to deduce symbol interface pins. </pre>
|
||||||
|
|
||||||
<li><kbd> merge [f]</kbd></li><pre>
|
<li><kbd> merge [f]</kbd></li><pre>
|
||||||
Merge another file. if 'f' not given prompt user. </pre>
|
Merge another file. if 'f' not given prompt user. </pre>
|
||||||
|
|
||||||
<li><kbd> move_objects [dx dy]</kbd></li><pre>
|
<li><kbd> move_objects [dx dy]</kbd></li><pre>
|
||||||
Start a move operation on selection and let user terminate the operation in the GUI
|
Start a move operation on selection and let user terminate the operation in the GUI
|
||||||
if dx and dy are given move by that amount. </pre>
|
if dx and dy are given move by that amount. </pre>
|
||||||
|
|
||||||
<li><kbd> net_label [type]</kbd></li><pre>
|
<li><kbd> net_label [type]</kbd></li><pre>
|
||||||
Place a new net label
|
Place a new net label
|
||||||
'type': 1: place a 'lab_pin.sym' label
|
'type': 1: place a 'lab_pin.sym' label
|
||||||
0: place a 'lab_wire.sym' label
|
0: place a 'lab_wire.sym' label
|
||||||
User should complete the placement in the GUI. </pre>
|
User should complete the placement in the GUI. </pre>
|
||||||
|
|
||||||
<li><kbd> net_pin_mismatch</kbd></li><pre>
|
<li><kbd> net_pin_mismatch</kbd></li><pre>
|
||||||
Highlight nets attached to selected symbols with a different name than symbol pin </pre>
|
Highlight nets attached to selected symbols with a different name than symbol pin </pre>
|
||||||
|
|
||||||
<li><kbd> netlist</kbd></li><pre>
|
<li><kbd> netlist</kbd></li><pre>
|
||||||
do a netlist of current schematic in currently defined netlist format </pre>
|
do a netlist of current schematic in currently defined netlist format </pre>
|
||||||
|
|
||||||
<li><kbd> new_schematic create|destroy|destroy_all|switch_win winpath file</kbd></li><pre>
|
<li><kbd> new_schematic create|destroy|destroy_all|switch_win winpath file</kbd></li><pre>
|
||||||
Open/destroy a new tab or window
|
Open/destroy a new tab or window
|
||||||
create: create new empty window or with 'file' loaded if 'file' given.
|
create: create new empty window or with 'file' loaded if 'file' given.
|
||||||
|
|
@ -847,53 +808,40 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
switch_tab: switch context to specified 'winpath' tab
|
switch_tab: switch context to specified 'winpath' tab
|
||||||
Main window/tab has winpath set to .drw,
|
Main window/tab has winpath set to .drw,
|
||||||
Additional windows/tabs have winpath set to .x1.drw, .x2.drw and so on...</pre>
|
Additional windows/tabs have winpath set to .x1.drw, .x2.drw and so on...</pre>
|
||||||
|
|
||||||
<li><kbd> new_symbol_window [f]</kbd></li><pre>
|
<li><kbd> new_symbol_window [f]</kbd></li><pre>
|
||||||
Start a new xschem process for a symbol.
|
Start a new xschem process for a symbol.
|
||||||
If 'f' is given load specified symbol. </pre>
|
If 'f' is given load specified symbol. </pre>
|
||||||
|
|
||||||
<li><kbd> new_window [f]</kbd></li><pre>
|
<li><kbd> new_window [f]</kbd></li><pre>
|
||||||
Start a new xschem process for a schematic.
|
Start a new xschem process for a schematic.
|
||||||
If 'f' is given load specified schematic. </pre>
|
If 'f' is given load specified schematic. </pre>
|
||||||
|
|
||||||
<li><kbd> only_probes</kbd></li><pre>
|
<li><kbd> only_probes</kbd></li><pre>
|
||||||
dim schematic to better show highlights </pre>
|
dim schematic to better show highlights </pre>
|
||||||
|
|
||||||
<li><kbd> origin x y [zoom]</kbd></li><pre>
|
<li><kbd> origin x y [zoom]</kbd></li><pre>
|
||||||
Move origin to 'x, y', optionally changing zoom level to 'zoom' </pre>
|
Move origin to 'x, y', optionally changing zoom level to 'zoom' </pre>
|
||||||
|
|
||||||
<li><kbd> parse_cmd</kbd></li><pre>
|
<li><kbd> parse_cmd</kbd></li><pre>
|
||||||
debug command to test parse_cmd_string()
|
debug command to test parse_cmd_string()
|
||||||
splits a command string into argv-like arguments
|
splits a command string into argv-like arguments
|
||||||
return # of args in *argc
|
return # of args in *argc
|
||||||
argv[*argc] is always set to NULL </pre>
|
argv[*argc] is always set to NULL </pre>
|
||||||
|
|
||||||
<li><kbd> parselabel str</kbd></li><pre>
|
<li><kbd> parselabel str</kbd></li><pre>
|
||||||
Debug command to test vector net syntax parser </pre>
|
Debug command to test vector net syntax parser </pre>
|
||||||
|
|
||||||
<li><kbd> paste [x y]</kbd></li><pre>
|
<li><kbd> paste [x y]</kbd></li><pre>
|
||||||
Paste clipboard. If 'x y' not given user should complete placement in the GUI </pre>
|
Paste clipboard. If 'x y' not given user should complete placement in the GUI </pre>
|
||||||
|
|
||||||
<li><kbd> pinlist inst</kbd></li><pre>
|
<li><kbd> pinlist inst</kbd></li><pre>
|
||||||
List all pins of instance 'inst'
|
List all pins of instance 'inst'
|
||||||
Example: xschem pinlist x3
|
Example: xschem pinlist x3
|
||||||
-->
|
-->
|
||||||
{ {0} {name=PLUS dir=in } } { {1} {name=OUT dir=out } } { {2} {name=MINUS dir=in } }</pre>
|
{ {0} {name=PLUS dir=in } } { {1} {name=OUT dir=out } } { {2} {name=MINUS dir=in } }</pre>
|
||||||
|
|
||||||
<li><kbd> place_symbol [sym_name] [prop]</kbd></li><pre>
|
<li><kbd> place_symbol [sym_name] [prop]</kbd></li><pre>
|
||||||
Start a GUI placement operation of specified 'sym_name' symbol.
|
Start a GUI placement operation of specified 'sym_name' symbol.
|
||||||
If 'sym_name' not given prompt user
|
If 'sym_name' not given prompt user
|
||||||
'prop' is the attribute string of the symbol. If not given take from symbol template attribute.</pre>
|
'prop' is the attribute string of the symbol. If not given take from symbol template attribute.</pre>
|
||||||
|
|
||||||
<li><kbd> place_text </kbd></li><pre>
|
<li><kbd> place_text </kbd></li><pre>
|
||||||
Start a GUI placement of a text object </pre>
|
Start a GUI placement of a text object </pre>
|
||||||
|
|
||||||
<li><kbd> polygon</kbd></li><pre>
|
<li><kbd> polygon</kbd></li><pre>
|
||||||
Start a GUI placement of a polygon </pre>
|
Start a GUI placement of a polygon </pre>
|
||||||
|
|
||||||
<li><kbd> preview_window create|draw|destroy [winpath] [file]</kbd></li><pre>
|
<li><kbd> preview_window create|draw|destroy [winpath] [file]</kbd></li><pre>
|
||||||
used in fileselector to show a schematic preview.</pre>
|
used in fileselector to show a schematic preview.</pre>
|
||||||
|
|
||||||
<li><kbd> print png|svg|ps|pdf img_file img_x img_y [x1 y1 x2 y2]</kbd></li><pre>
|
<li><kbd> print png|svg|ps|pdf img_file img_x img_y [x1 y1 x2 y2]</kbd></li><pre>
|
||||||
Export current schematic to image.
|
Export current schematic to image.
|
||||||
img x y size xschem area to export
|
img x y size xschem area to export
|
||||||
|
|
@ -902,7 +850,6 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
xschem print svg file.svg 400 300 [ -300 -200 300 200 ]
|
xschem print svg file.svg 400 300 [ -300 -200 300 200 ]
|
||||||
xschem print ps file.ps
|
xschem print ps file.ps
|
||||||
xschem print pdf file.pdf</pre>
|
xschem print pdf file.pdf</pre>
|
||||||
|
|
||||||
<li><kbd> print_hilight_net show</kbd></li><pre>
|
<li><kbd> print_hilight_net show</kbd></li><pre>
|
||||||
from highlighted nets/pins/labels:
|
from highlighted nets/pins/labels:
|
||||||
show == 0 ==> create pins from highlight nets
|
show == 0 ==> create pins from highlight nets
|
||||||
|
|
@ -911,19 +858,14 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
show == 3 ==> show list of highlight net with path and label expansion in a dialog box
|
show == 3 ==> show list of highlight net with path and label expansion in a dialog box
|
||||||
show == 4 ==> create labels without i prefix from hilight nets
|
show == 4 ==> create labels without i prefix from hilight nets
|
||||||
for show = 0, 2, 4 user should complete GUI placement of created objects </pre>
|
for show = 0, 2, 4 user should complete GUI placement of created objects </pre>
|
||||||
|
|
||||||
<li><kbd> print_spice_element inst</kbd></li><pre>
|
<li><kbd> print_spice_element inst</kbd></li><pre>
|
||||||
print spice raw netlist line for instance (number or name) 'inst' </pre>
|
print spice raw netlist line for instance (number or name) 'inst' </pre>
|
||||||
|
|
||||||
<li><kbd> propagate_hilights [set clear] </kbd></li><pre>
|
<li><kbd> propagate_hilights [set clear] </kbd></li><pre>
|
||||||
Debug: wrapper to propagate_hilights() function </pre>
|
Debug: wrapper to propagate_hilights() function </pre>
|
||||||
|
|
||||||
<li><kbd> push_undo</kbd></li><pre>
|
<li><kbd> push_undo</kbd></li><pre>
|
||||||
Push current state on undo stack </pre>
|
Push current state on undo stack </pre>
|
||||||
|
|
||||||
<li><kbd> raw_clear </kbd></li><pre>
|
<li><kbd> raw_clear </kbd></li><pre>
|
||||||
Delete loaded simulation raw file </pre>
|
Delete loaded simulation raw file </pre>
|
||||||
|
|
||||||
<li><kbd> raw_query loaded|value|index|values|datasets|vars|list </kbd></li><pre>
|
<li><kbd> raw_query loaded|value|index|values|datasets|vars|list </kbd></li><pre>
|
||||||
xschem raw_query list: get list of saved simulation variables
|
xschem raw_query list: get list of saved simulation variables
|
||||||
xschem raw_query vars: get number of simulation variables
|
xschem raw_query vars: get number of simulation variables
|
||||||
|
|
@ -935,56 +877,42 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
xschem raw_query values node [dset] : print all simulation values of 'node' for dataset 'dset'
|
xschem raw_query values node [dset] : print all simulation values of 'node' for dataset 'dset'
|
||||||
(default dset=0)
|
(default dset=0)
|
||||||
xschem raw_query points [dset] : print simulation points for dataset 'dset' (default dset=0)</pre>
|
xschem raw_query points [dset] : print simulation points for dataset 'dset' (default dset=0)</pre>
|
||||||
|
|
||||||
<li><kbd> raw_read [file] [sim]</kbd></li><pre>
|
<li><kbd> raw_read [file] [sim]</kbd></li><pre>
|
||||||
If a raw file is already loaded delete from memory
|
If a raw file is already loaded delete from memory
|
||||||
else load specified file and analysis 'sim' (dc, ac, tran, op, ...)
|
else load specified file and analysis 'sim' (dc, ac, tran, op, ...)
|
||||||
If 'sim' not specified load first section found in raw file. </pre>
|
If 'sim' not specified load first section found in raw file. </pre>
|
||||||
|
|
||||||
<li><kbd> raw_read_from_attr [sim]</kbd></li><pre>
|
<li><kbd> raw_read_from_attr [sim]</kbd></li><pre>
|
||||||
If a simulation raw file is already loaded delete from memory
|
If a simulation raw file is already loaded delete from memory
|
||||||
else read section 'sim' (tran, dc, ac, op, ...) of base64 encoded data from a 'spice_data'
|
else read section 'sim' (tran, dc, ac, op, ...) of base64 encoded data from a 'spice_data'
|
||||||
attribute of selected instance
|
attribute of selected instance
|
||||||
If sim not given read first section found </pre>
|
If sim not given read first section found </pre>
|
||||||
|
|
||||||
<li><kbd> rebuild_connectivity </kbd></li><pre>
|
<li><kbd> rebuild_connectivity </kbd></li><pre>
|
||||||
Rebuild logical connectivity abstraction of schematic </pre>
|
Rebuild logical connectivity abstraction of schematic </pre>
|
||||||
|
|
||||||
<li><kbd> rebuild_selection </kbd></li><pre>
|
<li><kbd> rebuild_selection </kbd></li><pre>
|
||||||
Rebuild selection list</pre>
|
Rebuild selection list</pre>
|
||||||
|
|
||||||
<li><kbd> rect [x1 y1 x2 y2] [pos]</kbd></li><pre>
|
<li><kbd> rect [x1 y1 x2 y2] [pos]</kbd></li><pre>
|
||||||
if 'x1 y1 x2 y2'is given place recangle on current layer (rectcolor) at indicated coordinates.
|
if 'x1 y1 x2 y2'is given place recangle on current layer (rectcolor) at indicated coordinates.
|
||||||
if 'pos' is given insert at given position in rectangle array.
|
if 'pos' is given insert at given position in rectangle array.
|
||||||
If no coordinates are given start a GUI operation of rectangle placement </pre>
|
If no coordinates are given start a GUI operation of rectangle placement </pre>
|
||||||
|
|
||||||
<li><kbd> redo</kbd></li><pre>
|
<li><kbd> redo</kbd></li><pre>
|
||||||
Redo last undone action </pre>
|
Redo last undone action </pre>
|
||||||
|
|
||||||
<li><kbd> redraw</kbd></li><pre>
|
<li><kbd> redraw</kbd></li><pre>
|
||||||
redraw window </pre>
|
redraw window </pre>
|
||||||
|
|
||||||
<li><kbd> reload</kbd></li><pre>
|
<li><kbd> reload</kbd></li><pre>
|
||||||
Forced (be careful!) Reload current schematic from disk </pre>
|
Forced (be careful!) Reload current schematic from disk </pre>
|
||||||
|
|
||||||
<li><kbd> reload_symbols</kbd></li><pre>
|
<li><kbd> reload_symbols</kbd></li><pre>
|
||||||
Reload all used symbols from disk </pre>
|
Reload all used symbols from disk </pre>
|
||||||
|
|
||||||
<li><kbd> remove_symbols</kbd></li><pre>
|
<li><kbd> remove_symbols</kbd></li><pre>
|
||||||
Internal command: remove all symbol definitions </pre>
|
Internal command: remove all symbol definitions </pre>
|
||||||
|
|
||||||
<li><kbd> replace_symbol inst new_symbol [fast]</kbd></li><pre>
|
<li><kbd> replace_symbol inst new_symbol [fast]</kbd></li><pre>
|
||||||
Replace 'inst' symbol with 'new_symbol'
|
Replace 'inst' symbol with 'new_symbol'
|
||||||
If doing multiple substitutions set 'fast' to 0 on first call and non zero on next calls
|
If doing multiple substitutions set 'fast' to 0 on first call and non zero on next calls
|
||||||
for faster operation
|
for faster operation
|
||||||
Example: xschem replace_symbol R3 capa.sym </pre>
|
Example: xschem replace_symbol R3 capa.sym </pre>
|
||||||
|
|
||||||
<li><kbd> rotate</kbd></li><pre>
|
<li><kbd> rotate</kbd></li><pre>
|
||||||
Rotate selected objects around their centers </pre>
|
Rotate selected objects around their centers </pre>
|
||||||
|
|
||||||
<li><kbd> save</kbd></li><pre>
|
<li><kbd> save</kbd></li><pre>
|
||||||
Save schematic if modified. Does not ask confirmation! </pre>
|
Save schematic if modified. Does not ask confirmation! </pre>
|
||||||
|
|
||||||
<li><kbd> saveas [file] [type]</kbd></li><pre>
|
<li><kbd> saveas [file] [type]</kbd></li><pre>
|
||||||
save current schematic as 'file'
|
save current schematic as 'file'
|
||||||
if file is empty ({}) use current schematic name
|
if file is empty ({}) use current schematic name
|
||||||
|
|
@ -994,12 +922,10 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
symbol: save as symbol (*.sym)
|
symbol: save as symbol (*.sym)
|
||||||
If not specified default to schematic (*.sch)
|
If not specified default to schematic (*.sch)
|
||||||
Does not ask confirmation if file name given</pre>
|
Does not ask confirmation if file name given</pre>
|
||||||
|
|
||||||
<li><kbd> schematic_in_new_window [new_process]</kbd></li><pre>
|
<li><kbd> schematic_in_new_window [new_process]</kbd></li><pre>
|
||||||
When a symbol is selected edit corresponding schematic in a new tab/window if not already open.
|
When a symbol is selected edit corresponding schematic in a new tab/window if not already open.
|
||||||
If nothing selected open another window of the second schematic (issues a warning).
|
If nothing selected open another window of the second schematic (issues a warning).
|
||||||
if 'new_process' is given start a new xschem process </pre>
|
if 'new_process' is given start a new xschem process </pre>
|
||||||
|
|
||||||
<li><kbd> search regex|exact select tok val</kbd></li><pre>
|
<li><kbd> search regex|exact select tok val</kbd></li><pre>
|
||||||
Search instances with attribute string containing 'tok' attribute and value 'val'
|
Search instances with attribute string containing 'tok' attribute and value 'val'
|
||||||
search can be exact ('exact') or as a regular expression ('regex')
|
search can be exact ('exact') or as a regular expression ('regex')
|
||||||
|
|
@ -1013,38 +939,48 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
cell::name : will search for 'val' in the symbol name
|
cell::name : will search for 'val' in the symbol name
|
||||||
cell::<attr> will search for 'val' in symbol attribute 'attr'
|
cell::<attr> will search for 'val' in symbol attribute 'attr'
|
||||||
example: xschem search regex 0 cell::template GAIN=100</pre>
|
example: xschem search regex 0 cell::template GAIN=100</pre>
|
||||||
|
|
||||||
<li><kbd> select instance|wire|text id [clear]</kbd></li><pre>
|
<li><kbd> select instance|wire|text id [clear]</kbd></li><pre>
|
||||||
Select indicated instance or wire or text.
|
Select indicated instance or wire or text.
|
||||||
For 'instance' 'id' can be the instance name or number
|
For 'instance' 'id' can be the instance name or number
|
||||||
for 'wire' or 'text' 'id' is the position in the respective arrays
|
for 'wire' or 'text' 'id' is the position in the respective arrays
|
||||||
if 'clear' is specified does an unselect operation </pre>
|
if 'clear' is specified does an unselect operation </pre>
|
||||||
|
|
||||||
<li><kbd> select_all</kbd></li><pre>
|
<li><kbd> select_all</kbd></li><pre>
|
||||||
Selects all objects in schematic </pre>
|
Selects all objects in schematic </pre>
|
||||||
|
|
||||||
<li><kbd> select_hilight_net</kbd></li><pre>
|
<li><kbd> select_hilight_net</kbd></li><pre>
|
||||||
Select all highlight objects (wires, labels, pins, instances) </pre>
|
Select all highlight objects (wires, labels, pins, instances) </pre>
|
||||||
|
|
||||||
<li><kbd> selected_set</kbd></li><pre>
|
<li><kbd> selected_set</kbd></li><pre>
|
||||||
Return a list of selected instance names </pre>
|
Return a list of selected instance names </pre>
|
||||||
|
|
||||||
<li><kbd> selected_wire</kbd></li><pre>
|
<li><kbd> selected_wire</kbd></li><pre>
|
||||||
Return list of selected nets </pre>
|
Return list of selected nets </pre>
|
||||||
|
|
||||||
<li><kbd> send_to_viewer</kbd></li><pre>
|
<li><kbd> send_to_viewer</kbd></li><pre>
|
||||||
Send selected wires/net labels/pins/voltage source or ammeter currents to current
|
Send selected wires/net labels/pins/voltage source or ammeter currents to current
|
||||||
open viewer (gaw or bespice) </pre>
|
open viewer (gaw or bespice) </pre>
|
||||||
|
|
||||||
<li><kbd> set var value</kbd></li><pre>
|
<li><kbd> set var value</kbd></li><pre>
|
||||||
Set C variable 'var' to 'value' </pre>
|
Set C variable 'var' to 'value' </pre>
|
||||||
|
<ul>
|
||||||
|
<li><kbd> cadgrid </kbd> set cad grid (default: 20) </li>
|
||||||
|
<li><kbd> cadsnap </kbd> set mouse snap (default: 10) </li>
|
||||||
|
<li><kbd> color_ps </kbd> set color psoscript (1 or 0) </li>
|
||||||
|
<li><kbd> constrained_move </kbd> set constrained move (1=horiz, 2=vert, 0=none) </li>
|
||||||
|
<li><kbd> draw_window </kbd> set drawing to window (1 or 0) </li>
|
||||||
|
<li><kbd> format </kbd> set name of custom format attribute used for netlisting </li>
|
||||||
|
<li><kbd> header_text </kbd> set header metadata (used for license info) </li>
|
||||||
|
<li><kbd> hide_symbols </kbd> set to 0,1,2 for various hiding level of symbols </li>
|
||||||
|
<li><kbd> netlist_name </kbd> set custom netlist name </li>
|
||||||
|
<li><kbd> netlist_type </kbd> set netlisting mode (spice, verilog, vhdl, tedax, symbol) </li>
|
||||||
|
<li><kbd> no_draw </kbd> set no drawing flag (0 or 1) </li>
|
||||||
|
<li><kbd> no_undo </kbd> set to 1 to disable undo </li>
|
||||||
|
<li><kbd> rectcolor </kbd> set current layer (0, 1, .... , cadlayers-1) </li>
|
||||||
|
<li><kbd> sch_to_compare </kbd> st name of schematic to compare current window with </li>
|
||||||
|
<li><kbd> text_svg </kbd> set to 1 to use svg <text> elements </li>
|
||||||
|
<li><kbd> semaphore </kbd> debug </li>
|
||||||
|
<li><kbd> show_hidden_texts </kbd> set to 1 to enable showing texts with attr hide=true </li>
|
||||||
|
<li><kbd> sym_txt </kbd> set to 0 to hide symbol texts </li>
|
||||||
|
</ul>
|
||||||
<li><kbd> set_different_tok str new_str old_str</kbd></li><pre>
|
<li><kbd> set_different_tok str new_str old_str</kbd></li><pre>
|
||||||
Return string 'str' replacing/adding/removing tokens that are different between 'new_str' and 'old_str' </pre>
|
Return string 'str' replacing/adding/removing tokens that are different between 'new_str' and 'old_str' </pre>
|
||||||
|
|
||||||
<li><kbd> set_modify</kbd></li><pre>
|
<li><kbd> set_modify</kbd></li><pre>
|
||||||
Force modify status on current schematic </pre>
|
Force modify status on current schematic </pre>
|
||||||
|
|
||||||
<li><kbd> setprop instance inst tok [val] [fast]</kbd></li><pre>
|
<li><kbd> setprop instance inst tok [val] [fast]</kbd></li><pre>
|
||||||
set attribute 'tok' of instance (name or number) 'inst' to value 'val'
|
set attribute 'tok' of instance (name or number) 'inst' to value 'val'
|
||||||
If 'val' not given (no attribute value) delete attribute from instance
|
If 'val' not given (no attribute value) delete attribute from instance
|
||||||
|
|
@ -1062,25 +998,18 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
If 'val' not given (no attribute value) delete attribute from text
|
If 'val' not given (no attribute value) delete attribute from text
|
||||||
If 'fast' argument is given does not redraw and is not undoable
|
If 'fast' argument is given does not redraw and is not undoable
|
||||||
If 'fastundo' s given same as above but action is undoable.</pre>
|
If 'fastundo' s given same as above but action is undoable.</pre>
|
||||||
|
|
||||||
<li><kbd> simulate</kbd></li><pre>
|
<li><kbd> simulate</kbd></li><pre>
|
||||||
Run a simulation (start simulator configured as default in Tools -> Configure simulators and tools </pre>
|
Run a simulation (start simulator configured as default in Tools -> Configure simulators and tools </pre>
|
||||||
|
|
||||||
<li><kbd> snap_wire </kbd></li><pre>
|
<li><kbd> snap_wire </kbd></li><pre>
|
||||||
Start a GUI start snapped wire placement (click to start a wire to closest pin/net endpoint </pre>
|
Start a GUI start snapped wire placement (click to start a wire to closest pin/net endpoint) </pre>
|
||||||
|
<li><kbd> subst_tok str tok newval</kbd></li><pre>
|
||||||
<li><kbd> </kbd></li><pre>
|
|
||||||
subst_tok str tok newval
|
|
||||||
Return string 'str' with 'tok' attribute value replaced with 'newval' </pre>
|
Return string 'str' with 'tok' attribute value replaced with 'newval' </pre>
|
||||||
|
|
||||||
<li><kbd> symbol_in_new_window [new_process]</kbd></li><pre>
|
<li><kbd> symbol_in_new_window [new_process]</kbd></li><pre>
|
||||||
When a symbol is selected edit it in a new tab/window if not already open.
|
When a symbol is selected edit it in a new tab/window if not already open.
|
||||||
If nothing selected open another window of the second schematic (issues a warning).
|
If nothing selected open another window of the second schematic (issues a warning).
|
||||||
if 'new_process' is given start a new xschem process </pre>
|
if 'new_process' is given start a new xschem process </pre>
|
||||||
|
|
||||||
<li><kbd> symbols</kbd></li><pre>
|
<li><kbd> symbols</kbd></li><pre>
|
||||||
List all used symbols </pre>
|
List all used symbols </pre>
|
||||||
|
|
||||||
<li><kbd> table_read [table_file]</kbd></li><pre>
|
<li><kbd> table_read [table_file]</kbd></li><pre>
|
||||||
If a simulation raw file is lodaded unload from memory.
|
If a simulation raw file is lodaded unload from memory.
|
||||||
else read a tabular file 'table_file'
|
else read a tabular file 'table_file'
|
||||||
|
|
@ -1104,75 +1033,54 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
|
||||||
0.0 0.0 1.8 0.3
|
0.0 0.0 1.8 0.3
|
||||||
0.1 0.0 1.5 0.6
|
0.1 0.0 1.5 0.6
|
||||||
... ... ... ...</pre>
|
... ... ... ...</pre>
|
||||||
|
|
||||||
<li><kbd> test </kbd></li><pre>
|
<li><kbd> test </kbd></li><pre>
|
||||||
testmode </pre>
|
testmode </pre>
|
||||||
|
|
||||||
<li><kbd> toggle_colorscheme</kbd></li><pre>
|
<li><kbd> toggle_colorscheme</kbd></li><pre>
|
||||||
Toggle dark/light colorscheme </pre>
|
Toggle dark/light colorscheme </pre>
|
||||||
|
|
||||||
<li><kbd> translate n str</kbd></li><pre>
|
<li><kbd> translate n str</kbd></li><pre>
|
||||||
Translate string 'str' replacing @xxx tokens with values in instance 'n' attributes </pre>
|
Translate string 'str' replacing @xxx tokens with values in instance 'n' attributes </pre>
|
||||||
|
|
||||||
<li><kbd> trim_wires</kbd></li><pre>
|
<li><kbd> trim_wires</kbd></li><pre>
|
||||||
Remove operlapping wires, join lines, trim wires at intersections </pre>
|
Remove operlapping wires, join lines, trim wires at intersections </pre>
|
||||||
|
|
||||||
<li><kbd> undo</kbd></li><pre>
|
<li><kbd> undo</kbd></li><pre>
|
||||||
Undo last action </pre>
|
Undo last action </pre>
|
||||||
|
|
||||||
<li><kbd> undo_type disk|memory</kbd></li><pre>
|
<li><kbd> undo_type disk|memory</kbd></li><pre>
|
||||||
Use disk file ('disk') or RAM ('memory') for undo bufer</pre>
|
Use disk file ('disk') or RAM ('memory') for undo bufer</pre>
|
||||||
|
|
||||||
<li><kbd> unhilight_all</kbd></li><pre>
|
<li><kbd> unhilight_all</kbd></li><pre>
|
||||||
Clear all highlights </pre>
|
Clear all highlights </pre>
|
||||||
|
|
||||||
<li><kbd> unhilight</kbd></li><pre>
|
<li><kbd> unhilight</kbd></li><pre>
|
||||||
Unhighlight selected nets/pins </pre>
|
Unhighlight selected nets/pins </pre>
|
||||||
|
|
||||||
<li><kbd> unselect_all</kbd></li><pre>
|
<li><kbd> unselect_all</kbd></li><pre>
|
||||||
Unselect everything </pre>
|
Unselect everything </pre>
|
||||||
|
|
||||||
<li><kbd> update_all_sym_bboxes</kbd></li><pre>
|
<li><kbd> update_all_sym_bboxes</kbd></li><pre>
|
||||||
Update all symbol bounding boxes (useful if show_pin_net_names is set) </pre>
|
Update all symbol bounding boxes (useful if show_pin_net_names is set) </pre>
|
||||||
|
|
||||||
<li><kbd> view_prop</kbd></li><pre>
|
<li><kbd> view_prop</kbd></li><pre>
|
||||||
View attributes of selected element (read only)
|
View attributes of selected element (read only)
|
||||||
if multiple selection show the first element (in xschem array order) </pre>
|
if multiple selection show the first element (in xschem array order) </pre>
|
||||||
|
|
||||||
<li><kbd> warning_overlapped_symbols [sel]</kbd></li><pre>
|
<li><kbd> warning_overlapped_symbols [sel]</kbd></li><pre>
|
||||||
Highlight or select (if 'sel' set to 1) perfectly overlapped instances
|
Highlight or select (if 'sel' set to 1) perfectly overlapped instances
|
||||||
this is usually an error and difficult to grasp visually </pre>
|
this is usually an error and difficult to grasp visually </pre>
|
||||||
|
|
||||||
<li><kbd> windowid</kbd></li><pre>
|
<li><kbd> windowid</kbd></li><pre>
|
||||||
Used by xschem.tcl for configure events </pre>
|
Used by xschem.tcl for configure events </pre>
|
||||||
|
|
||||||
<li><kbd> wire [x1 y1 x2 y2] [pos] [prop] [sel]</kbd></li><pre>
|
<li><kbd> wire [x1 y1 x2 y2] [pos] [prop] [sel]</kbd></li><pre>
|
||||||
Place a new wire
|
Place a new wire
|
||||||
if no coordinates are given start a GUI wire placement </pre>
|
if no coordinates are given start a GUI wire placement </pre>
|
||||||
|
|
||||||
<li><kbd> xcb_info</kbd></li><pre>
|
<li><kbd> xcb_info</kbd></li><pre>
|
||||||
For debug </pre>
|
For debug </pre>
|
||||||
|
|
||||||
<li><kbd> zoom_box [x1 y1 x2 y2] [factor]</kbd></li><pre>
|
<li><kbd> zoom_box [x1 y1 x2 y2] [factor]</kbd></li><pre>
|
||||||
Zoom to specified coordinates, if 'factor' is given reduce view (factor < 1.0)
|
Zoom to specified coordinates, if 'factor' is given reduce view (factor < 1.0)
|
||||||
or add border (factor > 1.0)
|
or add border (factor > 1.0)
|
||||||
If no coordinates are given start GUI zoom box operation </pre>
|
If no coordinates are given start GUI zoom box operation </pre>
|
||||||
|
|
||||||
<li><kbd> zoom_full [center|nodraw|nolinewidth]</kbd></li><pre>
|
<li><kbd> zoom_full [center|nodraw|nolinewidth]</kbd></li><pre>
|
||||||
Set full view.
|
Set full view.
|
||||||
If 'center' is given center vire instead of lower-left align
|
If 'center' is given center vire instead of lower-left align
|
||||||
If 'nodraw' is given don't redraw
|
If 'nodraw' is given don't redraw
|
||||||
If 'nolinewidth]' is given don't reset line widths. </pre>
|
If 'nolinewidth]' is given don't reset line widths. </pre>
|
||||||
|
|
||||||
<li><kbd> zoom_hilighted </kbd></li><pre>
|
<li><kbd> zoom_hilighted </kbd></li><pre>
|
||||||
Zoom to highlighted objects </pre>
|
Zoom to highlighted objects </pre>
|
||||||
|
|
||||||
<li><kbd> zoom_in</kbd></li><pre>
|
<li><kbd> zoom_in</kbd></li><pre>
|
||||||
Zoom in drawing </pre>
|
Zoom in drawing </pre>
|
||||||
|
|
||||||
<li><kbd> zoom_out</kbd></li><pre>
|
<li><kbd> zoom_out</kbd></li><pre>
|
||||||
Zoom out drawing </pre>
|
Zoom out drawing </pre>
|
||||||
|
|
||||||
<li><kbd> zoom_selected</kbd></li><pre>
|
<li><kbd> zoom_selected</kbd></li><pre>
|
||||||
Zoom to selection </pre>
|
Zoom to selection </pre>
|
||||||
|
|
||||||
|
|
|
||||||
349
src/scheduler.c
349
src/scheduler.c
|
|
@ -58,218 +58,18 @@ static int get_instance(const char *s)
|
||||||
|
|
||||||
static void xschem_cmd_help(int argc, const char **argv)
|
static void xschem_cmd_help(int argc, const char **argv)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
char prog[PATH_MAX];
|
||||||
|
if( get_file_path("x-www-browser")[0] == '/' ) goto done;
|
||||||
|
if( get_file_path("firefox")[0] == '/' ) goto done;
|
||||||
|
if( get_file_path("chromium")[0] == '/' ) goto done;
|
||||||
|
if( get_file_path("chrome")[0] == '/' ) goto done;
|
||||||
|
if( get_file_path("xdg-open")[0] == '/' ) goto done;
|
||||||
|
done:
|
||||||
|
my_strncpy(prog, tclresult(), S(prog));
|
||||||
|
tclvareval("launcher {", "file://", XSCHEM_SHAREDIR,
|
||||||
|
"/../doc/xschem/xschem_man/developer_info.html#cmdref", "} ", prog, NULL);
|
||||||
Tcl_ResetResult(interp);
|
Tcl_ResetResult(interp);
|
||||||
Tcl_AppendResult(interp,
|
|
||||||
"Xschem command language:\n",
|
|
||||||
" xschem subcommand [args]\n",
|
|
||||||
"\"xschem\" subcommands available:\n",
|
|
||||||
"align\n",
|
|
||||||
" Align selected part of schematic to current gid snap setting\n",
|
|
||||||
"annotate_op [filename]\n",
|
|
||||||
" Annotate schematic with operating point data. If filename not given get rootname from schemaic name\n",
|
|
||||||
"attach_labels\n",
|
|
||||||
" Attach labels to selected instance pins\n",
|
|
||||||
"bbox [begin | end]\n",
|
|
||||||
" bbox begin: start a bounding box drawing area setting\n",
|
|
||||||
" bbox end: end a bounding box drawing area setting, draw stuff and reset bbox\n",
|
|
||||||
"break_wires\n",
|
|
||||||
"build_colors\n",
|
|
||||||
"callback\n",
|
|
||||||
"case_insensitive\n",
|
|
||||||
"check_symbols\n",
|
|
||||||
"check_unique_names\n",
|
|
||||||
"circle\n",
|
|
||||||
"clear\n",
|
|
||||||
"clear_drawing\n",
|
|
||||||
"color_dim\n",
|
|
||||||
"compare_schematics\n",
|
|
||||||
"connected_nets\n",
|
|
||||||
"copy\n",
|
|
||||||
"copy_objects\n",
|
|
||||||
"count_items\n",
|
|
||||||
"create_plot_cmd\n",
|
|
||||||
"cut\n",
|
|
||||||
"debug\n",
|
|
||||||
"delete\n",
|
|
||||||
"delete_files\n",
|
|
||||||
"descend\n",
|
|
||||||
"descend_symbol\n",
|
|
||||||
"display_hilights\n",
|
|
||||||
"draw_graph\n",
|
|
||||||
"edit_file\n",
|
|
||||||
"edit_prop\n",
|
|
||||||
"edit_vi_prop\n",
|
|
||||||
"embed_rawfile\n",
|
|
||||||
"enable_layers\n",
|
|
||||||
"exit\n",
|
|
||||||
"expandlabel\n",
|
|
||||||
"find_nth\n",
|
|
||||||
"flip\n",
|
|
||||||
"fullscreen\n",
|
|
||||||
"get var\n",
|
|
||||||
" where \"var\" is one of:\n",
|
|
||||||
" schname [n]\n",
|
|
||||||
" get name of schematic, optionally of upper levels if(negative) n is provided\n",
|
|
||||||
" sch_path [n]\n",
|
|
||||||
" get pathname of schematic, optionally of upper levels if(negative) n is provided\n",
|
|
||||||
" backlayer\n",
|
|
||||||
" bbox_hilighted\n",
|
|
||||||
" bbox_selected\n",
|
|
||||||
" cadlayers\n",
|
|
||||||
" case_insensitive\n",
|
|
||||||
" color_ps\n",
|
|
||||||
" current_dirname\n",
|
|
||||||
" current_name\n",
|
|
||||||
" current_win_path\n",
|
|
||||||
" currsch\n",
|
|
||||||
" debug_var\n",
|
|
||||||
" draw_window\n",
|
|
||||||
" format\n",
|
|
||||||
" graph_lastsel\n",
|
|
||||||
" gridlayer\n",
|
|
||||||
" help\n",
|
|
||||||
" instances\n",
|
|
||||||
" lastsel\n",
|
|
||||||
" line_width\n",
|
|
||||||
" netlist_name\n",
|
|
||||||
" netlist_type\n",
|
|
||||||
" no_draw\n",
|
|
||||||
" ntabs\n",
|
|
||||||
" pinlayer\n",
|
|
||||||
" rectcolor\n",
|
|
||||||
" sellayer\n",
|
|
||||||
" semaphore\n",
|
|
||||||
" temp_dir\n",
|
|
||||||
" text_svg\n",
|
|
||||||
" textlayer\n",
|
|
||||||
" top_path\n",
|
|
||||||
" topwindow\n",
|
|
||||||
" version\n",
|
|
||||||
" wirelayer\n",
|
|
||||||
" xorigin\n",
|
|
||||||
" yorigin\n",
|
|
||||||
" zoom\n",
|
|
||||||
"getprop\n",
|
|
||||||
"get_tok\n",
|
|
||||||
"get_tok_size\n",
|
|
||||||
"globals\n",
|
|
||||||
"go_back\n",
|
|
||||||
"hash_file\n",
|
|
||||||
"help\n",
|
|
||||||
"hier_psprint\n",
|
|
||||||
"hilight\n",
|
|
||||||
"hilight_netname\n",
|
|
||||||
"instance\n",
|
|
||||||
"instance_bbox\n",
|
|
||||||
"instance_net\n",
|
|
||||||
"instance_nodemap\n",
|
|
||||||
"instance_pin_coord\n",
|
|
||||||
"instance_pins\n",
|
|
||||||
"instance_pos\n",
|
|
||||||
"instances_to_net\n",
|
|
||||||
"line\n",
|
|
||||||
"line_width\n",
|
|
||||||
"list_tokens\n",
|
|
||||||
"load\n",
|
|
||||||
"load_new_window\n",
|
|
||||||
"log\n",
|
|
||||||
"logic_set\n",
|
|
||||||
"make_sch\n",
|
|
||||||
"make_sch_from_sel\n",
|
|
||||||
"make_symbol\n",
|
|
||||||
"merge\n",
|
|
||||||
"move_objects\n",
|
|
||||||
"net_label\n",
|
|
||||||
"net_pin_mismatch\n",
|
|
||||||
"netlist\n",
|
|
||||||
"new_schematic\n",
|
|
||||||
"new_symbol_window\n",
|
|
||||||
"new_window\n",
|
|
||||||
"only_probes\n",
|
|
||||||
"origin\n",
|
|
||||||
"parselabel\n",
|
|
||||||
"paste\n",
|
|
||||||
"pinlist\n",
|
|
||||||
"place_symbol\n",
|
|
||||||
"place_text\n",
|
|
||||||
"polygon\n",
|
|
||||||
"preview_window\n",
|
|
||||||
"print\n",
|
|
||||||
"print_hilight_net\n",
|
|
||||||
"print_spice_element\n",
|
|
||||||
"propagate_hilights\n",
|
|
||||||
"push_undo\n",
|
|
||||||
"raw_clear\n",
|
|
||||||
"raw_query\n",
|
|
||||||
"raw_read\n",
|
|
||||||
"raw_read_from_attr\n",
|
|
||||||
"rebuild_connectivity\n",
|
|
||||||
"rect\n",
|
|
||||||
"redo\n",
|
|
||||||
"redraw\n",
|
|
||||||
"reload\n",
|
|
||||||
"reload_symbols\n",
|
|
||||||
"remove_symbols\n",
|
|
||||||
"replace_symbol\n",
|
|
||||||
"rotate\n",
|
|
||||||
"save\n",
|
|
||||||
"saveas\n",
|
|
||||||
"schematic_in_new_window\n",
|
|
||||||
"search\n",
|
|
||||||
"searchmenu\n",
|
|
||||||
"select\n",
|
|
||||||
"select_all\n",
|
|
||||||
"select_hilight_net\n",
|
|
||||||
"selected_set\n",
|
|
||||||
"selected_wire\n",
|
|
||||||
"send_to_viewer\n",
|
|
||||||
"set var value\n",
|
|
||||||
" where \"var\" is one of:\n",
|
|
||||||
" cadsnap\n",
|
|
||||||
" color_ps\n",
|
|
||||||
" constrained_move\n",
|
|
||||||
" draw_window\n",
|
|
||||||
" format\n",
|
|
||||||
" hide_symbols\n",
|
|
||||||
" netlist_name\n",
|
|
||||||
" netlist_type\n",
|
|
||||||
" no_draw\n",
|
|
||||||
" no_undo\n",
|
|
||||||
" rectcolor\n",
|
|
||||||
" text_svg\n",
|
|
||||||
" semaphore\n",
|
|
||||||
" show_hidden_texts\n",
|
|
||||||
" sym_txt\n",
|
|
||||||
"set_different_tok\n",
|
|
||||||
"set_modify\n",
|
|
||||||
"setprop\n",
|
|
||||||
"show_pin_net_names\n",
|
|
||||||
"simulate\n",
|
|
||||||
"snap_wire\n",
|
|
||||||
"subst_tok\n",
|
|
||||||
"symbol_in_new_window\n",
|
|
||||||
"symbols\n",
|
|
||||||
"test\n",
|
|
||||||
"toggle_colorscheme\n",
|
|
||||||
"translate\n",
|
|
||||||
"trim_wires\n",
|
|
||||||
"undo\n",
|
|
||||||
"undo_type\n",
|
|
||||||
"unhilight_all\n",
|
|
||||||
"unhilight\n",
|
|
||||||
"unselect_all\n",
|
|
||||||
"view_prop\n",
|
|
||||||
"warning_overlapped_symbols\n",
|
|
||||||
"windowid\n",
|
|
||||||
"windows\n",
|
|
||||||
"wire\n",
|
|
||||||
"zoom_box\n",
|
|
||||||
"zoom_full\n",
|
|
||||||
"zoom_hilighted\n",
|
|
||||||
"zoom_in\n",
|
|
||||||
"zoom_out\n",
|
|
||||||
"zoom_selected\n",
|
|
||||||
NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* can be used to reach C functions from the Tk shell. */
|
/* can be used to reach C functions from the Tk shell. */
|
||||||
|
|
@ -941,17 +741,17 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
if(argc > 2) {
|
if(argc > 2) {
|
||||||
switch(argv[2][0]) {
|
switch(argv[2][0]) {
|
||||||
case 'b':
|
case 'b':
|
||||||
if(!strcmp(argv[2], "backlayer")) {
|
if(!strcmp(argv[2], "backlayer")) { /* number of background layer */
|
||||||
Tcl_SetResult(interp, my_itoa(BACKLAYER), TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(BACKLAYER), TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "bbox_hilighted")) {
|
else if(!strcmp(argv[2], "bbox_hilighted")) { /* bounding box of highlinhted objects */
|
||||||
xRect boundbox;
|
xRect boundbox;
|
||||||
char res[2048];
|
char res[2048];
|
||||||
calc_drawing_bbox(&boundbox, 2);
|
calc_drawing_bbox(&boundbox, 2);
|
||||||
my_snprintf(res, S(res), "%g %g %g %g", boundbox.x1, boundbox.y1, boundbox.x2, boundbox.y2);
|
my_snprintf(res, S(res), "%g %g %g %g", boundbox.x1, boundbox.y1, boundbox.x2, boundbox.y2);
|
||||||
Tcl_SetResult(interp, res, TCL_VOLATILE);
|
Tcl_SetResult(interp, res, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "bbox_selected")) {
|
else if(!strcmp(argv[2], "bbox_selected")) { /* bounding box of selected objects */
|
||||||
xRect boundbox;
|
xRect boundbox;
|
||||||
char res[2048];
|
char res[2048];
|
||||||
calc_drawing_bbox(&boundbox, 1);
|
calc_drawing_bbox(&boundbox, 1);
|
||||||
|
|
@ -960,57 +760,57 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
if(!strcmp(argv[2], "cadlayers")) {
|
if(!strcmp(argv[2], "cadlayers")) { /* number of layers */
|
||||||
Tcl_SetResult(interp, my_itoa(cadlayers), TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(cadlayers), TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "case_insensitive")) {
|
else if(!strcmp(argv[2], "case_insensitive")) { /* case_insensitive symbol matching */
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->case_insensitive), TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->case_insensitive), TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "color_ps")) {
|
else if(!strcmp(argv[2], "color_ps")) { /* color postscript flag */
|
||||||
if(color_ps != 0 ) Tcl_SetResult(interp, "1",TCL_STATIC);
|
if(color_ps != 0 ) Tcl_SetResult(interp, "1",TCL_STATIC);
|
||||||
else Tcl_SetResult(interp, "0",TCL_STATIC);
|
else Tcl_SetResult(interp, "0",TCL_STATIC);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "current_dirname")) {
|
else if(!strcmp(argv[2], "current_dirname")) { /* directory name of current design */
|
||||||
Tcl_SetResult(interp, xctx->current_dirname, TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->current_dirname, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "current_name")) {
|
else if(!strcmp(argv[2], "current_name")) { /* name of current design (no library path) */
|
||||||
Tcl_SetResult(interp, xctx->current_name, TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->current_name, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "current_win_path")) {
|
else if(!strcmp(argv[2], "current_win_path")) { /* path of current tab/window (.drw, .x1.drw, ...) */
|
||||||
Tcl_SetResult(interp, xctx->current_win_path, TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->current_win_path, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "currsch")) {
|
else if(!strcmp(argv[2], "currsch")) { /* hierarchy level of current schematic (start at 0) */
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->currsch),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->currsch),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
if(!strcmp(argv[2], "debug_var")) {
|
if(!strcmp(argv[2], "debug_var")) { /* debug level (0 = no debug, 1, 2, 3,...) */
|
||||||
Tcl_SetResult(interp, my_itoa(debug_var),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(debug_var),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "draw_window")) {
|
else if(!strcmp(argv[2], "draw_window")) { /* direct draw into window */
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->draw_window),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->draw_window),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
if(!strcmp(argv[2], "format")) {
|
if(!strcmp(argv[2], "format")) { /* alternate format attribute to use in netlist (or NULL) */
|
||||||
if(!xctx->format ) Tcl_SetResult(interp, "<NULL>",TCL_STATIC);
|
if(!xctx->format ) Tcl_SetResult(interp, "<NULL>",TCL_STATIC);
|
||||||
else Tcl_SetResult(interp, xctx->format,TCL_VOLATILE);
|
else Tcl_SetResult(interp, xctx->format,TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'g':
|
case 'g':
|
||||||
if(!strcmp(argv[2], "graph_lastsel")) {
|
if(!strcmp(argv[2], "graph_lastsel")) { /* number of last graph that was clicked */
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->graph_lastsel),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->graph_lastsel),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "gridlayer")) {
|
else if(!strcmp(argv[2], "gridlayer")) { /* layer number for grid */
|
||||||
Tcl_SetResult(interp, my_itoa(GRIDLAYER),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(GRIDLAYER),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
if(!strcmp(argv[2], "help")) {
|
if(!strcmp(argv[2], "help")) { /* command help */
|
||||||
if(help != 0 ) Tcl_SetResult(interp, "1",TCL_STATIC);
|
if(help != 0 ) Tcl_SetResult(interp, "1",TCL_STATIC);
|
||||||
else Tcl_SetResult(interp, "0",TCL_STATIC);
|
else Tcl_SetResult(interp, "0",TCL_STATIC);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "header_text")) {
|
else if(!strcmp(argv[2], "header_text")) { /* header metadata (license info etc) present in schematic */
|
||||||
if(xctx && xctx->header_text) {
|
if(xctx && xctx->header_text) {
|
||||||
Tcl_SetResult(interp, xctx->header_text, TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->header_text, TCL_VOLATILE);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1019,21 +819,21 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
if(!strcmp(argv[2], "instances")) {
|
if(!strcmp(argv[2], "instances")) { /* number of instances in schematic */
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->instances), TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->instances), TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
if(!strcmp(argv[2], "lastsel")) {
|
if(!strcmp(argv[2], "lastsel")) { /* number of selected objects */
|
||||||
rebuild_selected_array();
|
rebuild_selected_array();
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->lastsel),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->lastsel),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "line_width")) {
|
else if(!strcmp(argv[2], "line_width")) { /* get line width */
|
||||||
Tcl_SetResult(interp, dtoa(xctx->lw), TCL_VOLATILE);
|
Tcl_SetResult(interp, dtoa(xctx->lw), TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
if(!strcmp(argv[2], "netlist_name")) {
|
if(!strcmp(argv[2], "netlist_name")) { /* netlist name if set. If 'fallback' given get default name */
|
||||||
if(argc > 3 && !strcmp(argv[3], "fallback")) {
|
if(argc > 3 && !strcmp(argv[3], "fallback")) {
|
||||||
char f[PATH_MAX];
|
char f[PATH_MAX];
|
||||||
if(xctx->netlist_type == CAD_SPICE_NETLIST) {
|
if(xctx->netlist_type == CAD_SPICE_NETLIST) {
|
||||||
|
|
@ -1060,7 +860,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
Tcl_SetResult(interp, xctx->netlist_name, TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->netlist_name, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "netlist_type")) {
|
else if(!strcmp(argv[2], "netlist_type")) { /* get current netlist type (spice/vhdl/verilog/tedax) */
|
||||||
if(xctx->netlist_type == CAD_SPICE_NETLIST) {
|
if(xctx->netlist_type == CAD_SPICE_NETLIST) {
|
||||||
Tcl_SetResult(interp, "spice", TCL_STATIC);
|
Tcl_SetResult(interp, "spice", TCL_STATIC);
|
||||||
}
|
}
|
||||||
|
|
@ -1080,34 +880,34 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
Tcl_SetResult(interp, "unknown", TCL_STATIC);
|
Tcl_SetResult(interp, "unknown", TCL_STATIC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "no_draw")) {
|
else if(!strcmp(argv[2], "no_draw")) { /* disable drawing */
|
||||||
if(xctx->no_draw != 0 )
|
if(xctx->no_draw != 0 )
|
||||||
Tcl_SetResult(interp, "1",TCL_STATIC);
|
Tcl_SetResult(interp, "1",TCL_STATIC);
|
||||||
else
|
else
|
||||||
Tcl_SetResult(interp, "0",TCL_STATIC);
|
Tcl_SetResult(interp, "0",TCL_STATIC);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "ntabs")) {
|
else if(!strcmp(argv[2], "ntabs")) { /* get number of additional tabs (0 = only one tab) */
|
||||||
Tcl_SetResult(interp, my_itoa(new_schematic("ntabs", NULL, NULL)),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(new_schematic("ntabs", NULL, NULL)),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
if(!strcmp(argv[2], "pinlayer")) {
|
if(!strcmp(argv[2], "pinlayer")) { /* layer number for pins */
|
||||||
Tcl_SetResult(interp, my_itoa(PINLAYER),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(PINLAYER),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
if(!strcmp(argv[2], "rectcolor")) {
|
if(!strcmp(argv[2], "rectcolor")) { /* current layer number */
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->rectcolor),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->rectcolor),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
if(!strcmp(argv[2], "sellayer")) {
|
if(!strcmp(argv[2], "sellayer")) { /* layer number for selection */
|
||||||
Tcl_SetResult(interp, my_itoa(SELLAYER),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(SELLAYER),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "semaphore")) {
|
else if(!strcmp(argv[2], "semaphore")) { /* used for debug */
|
||||||
Tcl_SetResult(interp, my_itoa(xctx->semaphore),TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(xctx->semaphore),TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "schname"))
|
else if(!strcmp(argv[2], "schname")) /* get full path of current sch. if 'n' given get sch of level 'n' */
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
/* allows to retrieve name of n-th parent schematic */
|
/* allows to retrieve name of n-th parent schematic */
|
||||||
|
|
@ -1119,7 +919,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
Tcl_SetResult(interp, xctx->sch[x], TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->sch[x], TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "sch_path"))
|
else if(!strcmp(argv[2], "sch_path")) /* get hierarchy path. if 'n' given get hierpath of level 'n' */
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
if(argc > 3) x = atoi(argv[3]);
|
if(argc > 3) x = atoi(argv[3]);
|
||||||
|
|
@ -1130,14 +930,14 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
Tcl_SetResult(interp, xctx->sch_path[x], TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->sch_path[x], TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "sch_to_compare"))
|
else if(!strcmp(argv[2], "sch_to_compare")) /* if set return schematic current design is compared with */
|
||||||
{
|
{
|
||||||
Tcl_SetResult(interp, xctx->sch_to_compare, TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->sch_to_compare, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
#ifndef __unix__
|
#ifndef __unix__
|
||||||
if(!strcmp(argv[2], "temp_dir")) {
|
if(!strcmp(argv[2], "temp_dir")) { /* get windows temporary dir */
|
||||||
if(win_temp_dir[0] != '\0') Tcl_SetResult(interp, win_temp_dir, TCL_VOLATILE);
|
if(win_temp_dir[0] != '\0') Tcl_SetResult(interp, win_temp_dir, TCL_VOLATILE);
|
||||||
else {
|
else {
|
||||||
TCHAR tmp_buffer_path[MAX_PATH];
|
TCHAR tmp_buffer_path[MAX_PATH];
|
||||||
|
|
@ -1169,53 +969,53 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if(!strcmp(argv[2], "text_svg")) {
|
if(!strcmp(argv[2], "text_svg")) { /* return 1 if using <text> elements in svg export */
|
||||||
if(text_svg != 0 )
|
if(text_svg != 0 )
|
||||||
Tcl_SetResult(interp, "1",TCL_STATIC);
|
Tcl_SetResult(interp, "1",TCL_STATIC);
|
||||||
else
|
else
|
||||||
Tcl_SetResult(interp, "0",TCL_STATIC);
|
Tcl_SetResult(interp, "0",TCL_STATIC);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "textlayer")) {
|
else if(!strcmp(argv[2], "textlayer")) { /* layer number for texts */
|
||||||
Tcl_SetResult(interp, my_itoa(TEXTLAYER), TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(TEXTLAYER), TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
/* top_path="" for main window, ".x1", ".x2", ... for additional windows.
|
/* top_path="" for main window, ".x1", ".x2", ... for additional windows.
|
||||||
* always "" in tabbed interface */
|
* always "" in tabbed interface */
|
||||||
else if(!strcmp(argv[2], "top_path")) {
|
else if(!strcmp(argv[2], "top_path")) { /* get top hier path of current window (always "") for tabbed if */
|
||||||
Tcl_SetResult(interp, xctx->top_path, TCL_VOLATILE);
|
Tcl_SetResult(interp, xctx->top_path, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
/* same as above but main window returned as "." */
|
/* same as above but main window returned as "." */
|
||||||
else if(!strcmp(argv[2], "topwindow")) {
|
else if(!strcmp(argv[2], "topwindow")) { /* same as top_path but main window returned as "." */
|
||||||
char *top_path;
|
char *top_path;
|
||||||
top_path = xctx->top_path[0] ? xctx->top_path : ".";
|
top_path = xctx->top_path[0] ? xctx->top_path : ".";
|
||||||
Tcl_SetResult(interp, top_path,TCL_VOLATILE);
|
Tcl_SetResult(interp, top_path,TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
if(!strcmp(argv[2], "version")) {
|
if(!strcmp(argv[2], "version")) { /* return xschem version */
|
||||||
Tcl_SetResult(interp, XSCHEM_VERSION, TCL_VOLATILE);
|
Tcl_SetResult(interp, XSCHEM_VERSION, TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'w':
|
case 'w':
|
||||||
if(!strcmp(argv[2], "wirelayer")) {
|
if(!strcmp(argv[2], "wirelayer")) { /* layer used for wires */
|
||||||
Tcl_SetResult(interp, my_itoa(WIRELAYER), TCL_VOLATILE);
|
Tcl_SetResult(interp, my_itoa(WIRELAYER), TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
if(!strcmp(argv[2], "xorigin")) {
|
if(!strcmp(argv[2], "xorigin")) { /* x coordinate of origin */
|
||||||
char s[128];
|
char s[128];
|
||||||
my_snprintf(s, S(s), "%.16g", xctx->xorigin);
|
my_snprintf(s, S(s), "%.16g", xctx->xorigin);
|
||||||
Tcl_SetResult(interp, s,TCL_VOLATILE);
|
Tcl_SetResult(interp, s,TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'y':
|
case 'y':
|
||||||
if(!strcmp(argv[2], "yorigin")) {
|
if(!strcmp(argv[2], "yorigin")) { /* y coordinate of origin */
|
||||||
char s[128];
|
char s[128];
|
||||||
my_snprintf(s, S(s), "%.16g", xctx->yorigin);
|
my_snprintf(s, S(s), "%.16g", xctx->yorigin);
|
||||||
Tcl_SetResult(interp, s,TCL_VOLATILE);
|
Tcl_SetResult(interp, s,TCL_VOLATILE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'z':
|
case 'z':
|
||||||
if(!strcmp(argv[2], "zoom")) {
|
if(!strcmp(argv[2], "zoom")) { /* zoom level */
|
||||||
char s[128];
|
char s[128];
|
||||||
my_snprintf(s, S(s), "%.16g", xctx->zoom);
|
my_snprintf(s, S(s), "%.16g", xctx->zoom);
|
||||||
Tcl_SetResult(interp, s,TCL_VOLATILE);
|
Tcl_SetResult(interp, s,TCL_VOLATILE);
|
||||||
|
|
@ -3050,38 +2850,38 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
{
|
{
|
||||||
if(argc > 3) {
|
if(argc > 3) {
|
||||||
if(argv[2][0] < 'n') {
|
if(argv[2][0] < 'n') {
|
||||||
if(!strcmp(argv[2], "cadgrid")) {
|
if(!strcmp(argv[2], "cadgrid")) { /* set cad grid (default: 20) */
|
||||||
set_grid( atof(argv[3]) );
|
set_grid( atof(argv[3]) );
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "cadsnap")) {
|
else if(!strcmp(argv[2], "cadsnap")) { /* set mouse snap (default: 10) */
|
||||||
set_snap( atof(argv[3]) );
|
set_snap( atof(argv[3]) );
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "color_ps")) {
|
else if(!strcmp(argv[2], "color_ps")) { /* set color psoscript (1 or 0) */
|
||||||
color_ps=atoi(argv[3]);
|
color_ps=atoi(argv[3]);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "constrained_move")) {
|
else if(!strcmp(argv[2], "constrained_move")) { /* set constrained move (1=horiz, 2=vert, 0=none) */
|
||||||
constrained_move = atoi(argv[3]);
|
constrained_move = atoi(argv[3]);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "draw_window")) {
|
else if(!strcmp(argv[2], "draw_window")) { /* set drawing to window (1 or 0) */
|
||||||
xctx->draw_window=atoi(argv[3]);
|
xctx->draw_window=atoi(argv[3]);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "format")) {
|
else if(!strcmp(argv[2], "format")) { /* set name of custom format attribute used for netlisting */
|
||||||
my_strdup(_ALLOC_ID_, &xctx->format, argv[3]);
|
my_strdup(_ALLOC_ID_, &xctx->format, argv[3]);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "header_text")) {
|
else if(!strcmp(argv[2], "header_text")) { /* set header metadata (used for license info) */
|
||||||
if(!xctx->header_text || strcmp(xctx->header_text, argv[3])) {
|
if(!xctx->header_text || strcmp(xctx->header_text, argv[3])) {
|
||||||
set_modify(1); xctx->push_undo();
|
set_modify(1); xctx->push_undo();
|
||||||
my_strdup2(_ALLOC_ID_, &xctx->header_text, argv[3]);
|
my_strdup2(_ALLOC_ID_, &xctx->header_text, argv[3]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "hide_symbols")) {
|
else if(!strcmp(argv[2], "hide_symbols")) { /* set to 0,1,2 for various hiding level of symbols */
|
||||||
xctx->hide_symbols=atoi(argv[3]);
|
xctx->hide_symbols=atoi(argv[3]);
|
||||||
}
|
}
|
||||||
} else { /* argv[2][0] >= 'n' */
|
} else { /* argv[2][0] >= 'n' */
|
||||||
if(!strcmp(argv[2], "netlist_name")) {
|
if(!strcmp(argv[2], "netlist_name")) { /* set custom netlist name */
|
||||||
my_strncpy(xctx->netlist_name, argv[3], S(xctx->netlist_name));
|
my_strncpy(xctx->netlist_name, argv[3], S(xctx->netlist_name));
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "netlist_type"))
|
else if(!strcmp(argv[2], "netlist_type")) /* set netlisting mode (spice, verilog, vhdl, tedax, symbol) */
|
||||||
{
|
{
|
||||||
if(!strcmp(argv[3], "spice")){
|
if(!strcmp(argv[3], "spice")){
|
||||||
xctx->netlist_type=CAD_SPICE_NETLIST;
|
xctx->netlist_type=CAD_SPICE_NETLIST;
|
||||||
|
|
@ -3103,15 +2903,15 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
}
|
}
|
||||||
set_tcl_netlist_type();
|
set_tcl_netlist_type();
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "no_draw")) {
|
else if(!strcmp(argv[2], "no_draw")) { /* set no drawing flag (0 or 1) */
|
||||||
int s = atoi(argv[3]);
|
int s = atoi(argv[3]);
|
||||||
xctx->no_draw=s;
|
xctx->no_draw=s;
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "no_undo")) {
|
else if(!strcmp(argv[2], "no_undo")) { /* set to 1 to disable undo */
|
||||||
int s = atoi(argv[3]);
|
int s = atoi(argv[3]);
|
||||||
xctx->no_undo=s;
|
xctx->no_undo=s;
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "rectcolor")) {
|
else if(!strcmp(argv[2], "rectcolor")) { /* set current layer (0, 1, .... , cadlayers-1) */
|
||||||
xctx->rectcolor=atoi(argv[3]);
|
xctx->rectcolor=atoi(argv[3]);
|
||||||
if(xctx->rectcolor < 0 ) xctx->rectcolor = 0;
|
if(xctx->rectcolor < 0 ) xctx->rectcolor = 0;
|
||||||
if(xctx->rectcolor >= cadlayers ) xctx->rectcolor = cadlayers - 1;
|
if(xctx->rectcolor >= cadlayers ) xctx->rectcolor = cadlayers - 1;
|
||||||
|
|
@ -3120,21 +2920,21 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
change_layer();
|
change_layer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "sch_to_compare")) {
|
else if(!strcmp(argv[2], "sch_to_compare")) { /* st name of schematic to compare current window with */
|
||||||
my_strncpy(xctx->sch_to_compare, abs_sym_path(argv[3], ""), S(xctx->sch_to_compare));
|
my_strncpy(xctx->sch_to_compare, abs_sym_path(argv[3], ""), S(xctx->sch_to_compare));
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "text_svg")) {
|
else if(!strcmp(argv[2], "text_svg")) { /* set to 1 to use svg <text> elements */
|
||||||
text_svg=atoi(argv[3]);
|
text_svg=atoi(argv[3]);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "semaphore")) {
|
else if(!strcmp(argv[2], "semaphore")) { /* debug */
|
||||||
dbg(1, "scheduler(): set semaphore to %s\n", argv[3]);
|
dbg(1, "scheduler(): set semaphore to %s\n", argv[3]);
|
||||||
xctx->semaphore=atoi(argv[3]);
|
xctx->semaphore=atoi(argv[3]);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "show_hidden_texts")) {
|
else if(!strcmp(argv[2], "show_hidden_texts")) { /* set to 1 to enable showing texts with attr hide=true */
|
||||||
dbg(1, "scheduler(): set show_hidden_texts to %s\n", argv[3]);
|
dbg(1, "scheduler(): set show_hidden_texts to %s\n", argv[3]);
|
||||||
xctx->show_hidden_texts=atoi(argv[3]);
|
xctx->show_hidden_texts=atoi(argv[3]);
|
||||||
}
|
}
|
||||||
else if(!strcmp(argv[2], "sym_txt")) {
|
else if(!strcmp(argv[2], "sym_txt")) { /* set to 0 to hide symbol texts */
|
||||||
xctx->sym_txt=atoi(argv[3]);
|
xctx->sym_txt=atoi(argv[3]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -3397,7 +3197,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* simulate
|
/* simulate
|
||||||
* Run a simulation (start simulator configured as default in Tools -> Configure simulators and tools */
|
* Run a simulation (start simulator configured as default in Tools -> Configure simulators and tools) */
|
||||||
else if(!strcmp(argv[1], "simulate") )
|
else if(!strcmp(argv[1], "simulate") )
|
||||||
{
|
{
|
||||||
if(set_netlist_dir(0, NULL) ) {
|
if(set_netlist_dir(0, NULL) ) {
|
||||||
|
|
@ -3406,16 +3206,15 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
||||||
}
|
}
|
||||||
|
|
||||||
/* snap_wire
|
/* snap_wire
|
||||||
* Start a GUI start snapped wire placement (click to start a wire to closest pin/net endpoint */
|
* Start a GUI start snapped wire placement (click to start a wire to closest pin/net endpoint) */
|
||||||
else if(!strcmp(argv[1], "snap_wire"))
|
else if(!strcmp(argv[1], "snap_wire"))
|
||||||
{
|
{
|
||||||
xctx->ui_state |= MENUSTARTSNAPWIRE;
|
xctx->ui_state |= MENUSTARTSNAPWIRE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* subst_tok str tok newval
|
||||||
* subst_tok str tok newval
|
|
||||||
* Return string 'str' with 'tok' attribute value replaced with 'newval' */
|
* Return string 'str' with 'tok' attribute value replaced with 'newval' */
|
||||||
else if(!strcmp(argv[1], "subst_tok") )
|
else if(!strcmp(argv[1], "subst_tok"))
|
||||||
{
|
{
|
||||||
char *s=NULL;
|
char *s=NULL;
|
||||||
if(argc < 5) {Tcl_SetResult(interp, "Missing arguments", TCL_STATIC);return TCL_ERROR;}
|
if(argc < 5) {Tcl_SetResult(interp, "Missing arguments", TCL_STATIC);return TCL_ERROR;}
|
||||||
|
|
|
||||||
|
|
@ -986,7 +986,7 @@ typedef struct {
|
||||||
char *format; /* "format", "verilog_format", "vhdl_format" or "tedax_format" */
|
char *format; /* "format", "verilog_format", "vhdl_format" or "tedax_format" */
|
||||||
char *top_path;
|
char *top_path;
|
||||||
/* top_path is the path prefix of drawing canvas (current_win_path):
|
/* top_path is the path prefix of drawing canvas (current_win_path):
|
||||||
*
|
* top_path is always "" in tabbed interface
|
||||||
* current_win_path
|
* current_win_path
|
||||||
* canvas top_path
|
* canvas top_path
|
||||||
* ----------------------------
|
* ----------------------------
|
||||||
|
|
|
||||||
|
|
@ -5314,7 +5314,7 @@ set tctx::global_list {
|
||||||
graph_selected graph_sort graph_unlocked hide_empty_graphs hide_symbols hsize
|
graph_selected graph_sort graph_unlocked hide_empty_graphs hide_symbols hsize
|
||||||
incr_hilight infowindow_text input_line_cmd input_line_data launcher_default_program
|
incr_hilight infowindow_text input_line_cmd input_line_data launcher_default_program
|
||||||
light_colors line_width live_cursor2_backannotate local_netlist_dir
|
light_colors line_width live_cursor2_backannotate local_netlist_dir
|
||||||
lvs_netlist measure_text netlist_show
|
lvs_netlist measure_text netlist_dir netlist_show
|
||||||
netlist_type no_change_attrs nolist_libs noprint_libs old_selected_tok only_probes path pathlist
|
netlist_type no_change_attrs nolist_libs noprint_libs old_selected_tok only_probes path pathlist
|
||||||
persistent_command preserve_unchanged_attrs prev_symbol ps_colors rainbow_colors
|
persistent_command preserve_unchanged_attrs prev_symbol ps_colors rainbow_colors
|
||||||
rawfile_loaded rcode recentfile
|
rawfile_loaded rcode recentfile
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue