diff --git a/.gitignore b/.gitignore index 9d85221b..01c9e727 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,9 @@ src/eval_expr.c src/parselabel.c src/parselabel.h +# Config file for C/C++ code formatter (clang-format) +.clang-format + # Executables *.exe src/rawtovcd diff --git a/doc/xschem_man/commands.html b/doc/xschem_man/commands.html index 0a4f589e..02f5777a 100644 --- a/doc/xschem_man/commands.html +++ b/doc/xschem_man/commands.html @@ -229,6 +229,7 @@ ctrl+alt 's' Save-as symbol - 't' Place text shift 'T' Toggle *_ignore flag on selected instances alt 'u' Align to current grid selected objects +ctrl 'u' Unselect attached floater objects shift 'U' Redo - 'u' Undo - 'v' Constrained vertical move/copy of objects diff --git a/doc/xschem_man/component_property_syntax.html b/doc/xschem_man/component_property_syntax.html index bf4148f1..75acf5a2 100644 --- a/doc/xschem_man/component_property_syntax.html +++ b/doc/xschem_man/component_property_syntax.html @@ -138,6 +138,11 @@ name="mchanged_name" model=\"nmos\" w="20u" l="3u" m="10"
  • text_layer_<n>
  • This attribute sets the layer of symbol text item number n. This allows instance based symbol text color customization.

    +
  • attach
  • +

    An attribute attach="x1 g3 p4" will "attach" specified objects that have a matching name=... + attribute. These objects can be any xschem objects, like other elements, wires, rectangles, polygons, texts etc.
    + Attached objects will be selected when selecting the component with this attribute set. + This allows to create "object groups"

  • highlight
  • If set to true the symbol will be highlighted when one of the nets attached to its pins are highlighted.

  • net_name
  • diff --git a/doc/xschem_man/developer_info.html b/doc/xschem_man/developer_info.html index 0cc1b8b6..e5676ad7 100644 --- a/doc/xschem_man/developer_info.html +++ b/doc/xschem_man/developer_info.html @@ -551,7 +551,6 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns" -
  • abort_operation
  • @@ -814,6 +813,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
          
  • textlayer layer number for texts
  • top_path get top hier path of current window (always "" for tabbed if)
  • topwindow same as top_path but main window returned as "."
  • +
  • ui_state return UI state
  • version return xschem version
  • wirelayer layer used for wires
  • wires number of wires
  • @@ -828,6 +828,15 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns" return result of get_cell function
  • get_cell_w_ext cell n_dirs
  •     return result of get_cell_w_ext function 
    +
  • get_fqdevice instname param modelparam
  • +   get the full pathname of "instname" device
    +   modelparam: 
    +     0: current, 1: modelparam, 2: modelvoltage
    +   param: device parameter, like ib, gm, vth
    +   set param to {} (empty str) for just branch current of 2 terminal device
    +   for parameters like "vth" modelparam must be 2
    +   for parameters like "ib" modelparam must be 0
    +   for parameters like "gm" modelparam must be 1
  • getprop instance|instance_pin|symbol|text ref
  •        
            getprop instance inst
    @@ -981,13 +990,17 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
        
  • is_generator symbol
  •     tell if 'symbol' is a generator (symbol(param1,param2,...) 
  • line [x1 y1 x2 y2] [pos] [propstring] [draw]
  • +       line
    +       line gui
        if 'x1 y1 x2 y2'is given place line 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 line array.
        if 'pos' set to -1 append to last element in line array.
        'propstring' is the attribute string. Set to empty if not given.
        if 'draw' is set to 1 (default) draw the new object, else don't
    -   If no coordinates are given start a GUI operation of line placement 
    + If no coordinates are given start a GUI operation of line placement + if `gui` argument is given start a line GUI placement with 1st point + set to current mouse coordinates
  • line_width n
  •     set line width to floating point number 'n' 
  • list_hierarchy
  • @@ -1153,8 +1166,10 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
        If not given take from symbol template attribute.
  • place_text
  •     Start a GUI placement of a text object 
    -
  • polygon
  • -   Start a GUI placement of a polygon 
    +
  • polygon [gui]
  • +   Start a GUI placement of a polygon
    +   if `gui` argument is given start a polygon GUI placement with 1st point
    +   set to current mouse coordinates 
  • preview_window create|draw|destroy|close [win_path] [file]
  •     destroy: will delete preview schematic data and destroy container window
        close: same as destroy but leave the container window.
    @@ -1192,8 +1207,9 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
        
  • push_undo
  •     Push current state on undo stack 
  • raw what ...
  • -     what = add | clear | datasets | index | info | loaded | list | new | points | rawfile | del |
    -            read | set | sim_type | switch | switch_back | table_read | value | values | pos_at | vars |
    +     what = add | clear | datasets | index | info | loaded | list |
    +            new | points | rawfile | del | read | set | rename |
    +            sim_type | switch | switch_back | table_read | value | values | pos_at | vars |
           
        xschem raw read filename [type [sweep1 sweep2]]
          if sweep1, sweep2 interval is given in 'read' subcommand load only the interval
    @@ -1208,6 +1224,9 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
        xschem raw del name
          delete named vector from current raw file
           
    +   xschem raw rename old_name new_name
    +     rename a node in the loaded raw file.
    +      
        xschem raw info
          print information about loaded raw files and show the currently active one.
           
    @@ -1284,7 +1303,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
          new dataset do not start with a header row.
          Lines beginning with '#' are comments and ignored
           
    -        time    var_a   var_b   var_c
    +        time    var_a   var_b   var_cnode in the loaded raw file.
          # this is a comment, ignored
              0.0     0.0     1.8    0.3
            <single empty line: ignored>
    @@ -1325,14 +1344,19 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
        Rebuild selection list
  • record_global_node n node
  •     call the record_global_node function (list of netlist global nodes) 
    -
  • rect [x1 y1 x2 y2] [pos] [propstring] [draw]
  • -   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' set to -1 append rectangle to last element in rectangle array.
    -   'propstring' is the attribute string. Set to empty if not given.
    -   if 'draw' is set to 1 (default) draw the new object, else don't
    -   If no coordinates are given start a GUI operation of rectangle placement 
    +
  • rect ...
  • +   rect [x1 y1 x2 y2] [pos] [propstring] [draw]
    +     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' set to -1 append rectangle to last element in rectangle array.
    +     'propstring' is the attribute string. Set to empty if not given.
    +     if 'draw' is set to 1 (default) draw the new object, else don't
    +   rect
    +     If no coordinates are given start a GUI operation of rectangle placement
    +   rect gui
    +     if `gui` argument is given start a GUI placement of a rectangle with 1st
    +     point starting from current mouse coordinates 
  • redo
  •     Redo last undone action 
  • redraw
  • @@ -1634,6 +1658,9 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
        Unhighlight selected nets/pins 
  • unselect_all [draw]
  •     Unselect everything. If draw is given and set to '0' no drawing is done 
    +
  • unselect_attached_floaters
  • +   Unselect objects (not symbol instances) attached to some instance with a 
    +   non empty name=... attribute 
  • update_all_sym_bboxes
  •     Update all symbol bounding boxes 
  • update_op
  • @@ -1649,8 +1676,12 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
        
  • wire_coord n
  •     return 4 coordinates of wire[n] 
  • wire [x1 y1 x2 y2] [pos] [prop] [sel]
  • +   wire
    +   wire gui
        Place a new wire
    -   if no coordinates are given start a GUI wire placement 
    + if no coordinates are given start a GUI wire placement + if `gui` argument is given start a GUI placement of a wire with 1st point + starting from current mouse coordinates
  • wire_cut [x y] [noalign]
  •     start a wire cut operation. Point the mouse in the middle of a wire and
        Alt-click right button.
    @@ -1732,6 +1763,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
     
     
     
    +
     
     
      
    diff --git a/doc/xschem_man/symbol_property_syntax.html b/doc/xschem_man/symbol_property_syntax.html
    index 9aa02448..5ff5abce 100644
    --- a/doc/xschem_man/symbol_property_syntax.html
    +++ b/doc/xschem_man/symbol_property_syntax.html
    @@ -551,6 +551,19 @@ verilog_format="xnor #(@risedel , @falldel ) @name ( @@Z , @@A , @@B );"
      
      

    PREDEFINED SYMBOL VALUES