-
Notifications
You must be signed in to change notification settings - Fork 21
/
Changelog
2174 lines (2059 loc) · 121 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
3.4.6:
- Select rectangles (click and mouse drag to select) are unsnapped.
Much easier to select small objects
- Add ability to read ASCII raw files
- "xschem change_sch_path" command for changing the current path we are descended in.
- update svgdraw and psprint to recognize svg embedded images. svgdraw exports it
as embedded svg
- When inserting a svg image automatically set the filter attribute to rasterize
svg to png (if tcl variable svg_to_png is set in xschemrc), "rsvg-convert" or
"inkscape" or imagemagick "convert" can be used. see template xschemrc in src/
- When importing svg images with a svg->png filter (like rsvg-convert) keep source
svg data in the image_data attribute instead of the rasterized data.
This will make these images scalable and schematics will be smaller (if using
small vector SVGs) when inserting a svg image automatically set the filter attribute
to rasterize svg to png (if tcl variable svg_to_png is set in xschemrc),
"rsvg-convert" or "inkscape" or imagemagick "convert" can be used. see template
xschemrc in src/
- Add ic.sym for setting initial condition on nets
- Add current annotators in cccs and vccs symbols
- Fix crash if multiple raw files are loaded and last one fails loading due to
corrupt raw file
- Added operator "cph()" to transform discontinuous phase ph(xxx) in AC analyses to
continuous phase, like ngspice cph() function.
Usage: instead of ph(out) use "ph(out) cph()"
- Add "Properties" menu for "Change selected object insertion order" (Shift-S)
- Avoid triggering tclcommand -> launcher() when dragging mouse with ctrl key
- switch_ngspice.sym: add "device_model" attribute in template string, so a
template model is given when placing the symbol
around objects with such attribute
- svgdraw and psprint: draw text after images as done in screen draw. Correct postscript / pdf
image zoom factor to match scaling with other xschem elements.
- Do not reset xctx->netlist_name after doing `Netlist` from gui (xschem netlist -erc)
- process tcleval(....) (if present) in symbol `name` argument
- Let symbol name entry box in component edit property dialog box expand in X direction
if dialog box is enlarged
- Replace "UNDEF" with "-" in backannotated nodes that have no value in raw file.
- Draw node names in graphs even if specified file / analysis (graph rawfile or sim_type
attributes) is not loaded
- If autoload is set in graph and a filename is given (rawfile graph attr) load raw file immediately
when drawing graph. Don`t wait for user to load an intiial raw file to trigger auto loading
- Double clicking in the center of a graph will now bring up the graph edit attributes
dialog box even if no raw file is loaded
- Graphs will autoload (if autoload checked) raw data even if no raw file is specified in
graph dialog box (use current loaded raw file, usually with a different analysis)
- Save 4 vars ( node, ph(node), re(node, im(node) ) instead of 2 ( node, ph(node )for ac plots
- Add "private cursor" check box in graph dialog box. This allow the related graph to have
separate "a" and "b" cursors. These cursor positions are saved with the schematic and
are thus persistent when reloading the schematic.
- Fix a bug in preview symbol displaying when inserting components. Toplevel .load widget was
destroyed before cleaning preview data in preview_window(), so after some insertion preview
was no more displayed.
- Port ordering for a schematic .subckt line will always be deduced from the symbol if it exists,
even if the symbol type is not "subcircuit" (so it will be used for also "primitive" type symbols).
- Add tcl xschemrc variable "select_touch" that enables selecting objects touched by the
selection rectangle if dragging to the left. Previously this behavior was enabled by
"incremental_select" that shows selected elements while dragging.
These two optional behaviors are now enabled/disabled by separate variables
- Issue a netlist error (and report message) if instances with pins have *all* pins disconnected.
This is in 99.999% of the cases an error.
- Added tcl variable top_is_subckt and related Simulation->LVS menu, that keeps top level wrapped
inside a .subckt / .ends, as lvs_netlist does. However top_is_subckt does only that and will not
enable lvs_format to differentiate device lines in netlist (usually used for LVS comparison).
- Add autoload checkbutton in graph properties to automatically load or not
custom graph-specified raw files
- Allow `global` atttributes on instances of gnd.sym and vdd.sym to override symbol `global`
setting. This allows also to set global=1 to net labels (lab_net.sym, lab_pin.sym)
to make the net global.
- ps/pdf export: use highlight colors on instances / wires that are highlighted
- Add attribute text_layer_n=lay, where n = text object inside symbol instance to change its layer
- Enhance spice_sym_def used in instances (with schematic=...) by substituting @param
with values defined in instance if any (param=xxx)
- Allow @symname, @symref, @param (param defined in symbol template string) translation in
instance or symbol spice_sym_def attributes
- A `.` in search path is always assumed to be [pwd] and not the directory of the currently
opened schematic. This will hopefully fix an endless list of user complains when using
symbols from dirs not listed in XSCHEM_LIBRARY_PATH.
- sim_pinnumber attribute on schematic pins will be used for top level .subckt pin
ordering if no corresponding symbol exists when creating a spice netlist
3.4.5:
- If a full path is given with -N set netlist file name as well as destination path
- Handle TABs in draw_string() (also ps and svg draw_string()),
tcl var tabstop (default = 8) sets the tab positions.
- Added command `xschem cursor 1|0 1|0` to enable or disable cursors via cmdline
- Add command `xschem swap_cursors`
- If top level schematic has an associated symbol (.sym) file ensure their ports match, otherwise
issue an error. if netlisting fails return non zero exit code if netlisting from command line
- Add @#pin:spice_get_voltage attribute for pin texts that displays voltage of net attached to pin.
Remove net_name=... attributes from symbols and instance global attributes since it is no more used.
set default value for show_pin_net_names to 1.
- xschem image rectangles: allow to fetch urls using filter="tcleval(wget --quiet http://.... -O -)" and image=""
- xschem wave processor: added <, >, <=, >=, ==, != and contitional ? (3 operands) operator
- Added drc_check() function, that evaluates tcl scripts contained in symbol `drc` attribute.
Used for checking allowed dimensions, mostly
- Add ellipses (rectangles with attr ellipse=1)
- Add simulation->graph menu for auto_hilight_graph_nodes
- Add `Tools->Grab screen area` function (unix only)
- fill=solid in addition to fill=1 (stippled fill) or fill=0 (no fill) for rectangles,
polygon/beziers and circles
- Added dark_gui_colorscheme (default: 0) for dark widget colorscheme configuration.
- Added intuitive_interface xschemrc and menu option: click and drag to quickly
Move objects without keyboard commands
- Bezier shapes can be drawn (polygon with attribute `bezier=1`)
- Add tcl tabulate procedure for pretty encapsulating tabular text into a nice ascii table frame.
- Add `xschem raw del node` command
- Add option `keep_symbols in xschemrc to avoid purging symbols when netlisting /descending hierarchy.
- Add functions atan, asin,acos, cosh, sinh, atanh, acosh, asinh, idx in wave processor
- Added command `xschem raw new name type sweepvar start end step` that creates an
in-memory plot (like a loaded raw file) with only the sweep variable
- Extend command `xschem raw_query add [expr]` for fast (C-speed) expression calculation
- Add command `xschem raw_query add <node>` to add a vector <node> with all zeros to the
loaded raw file. This vector can then populated with programmatic values using
`xschem raw_query set <node> point value` loop
- Add command `xschem raw table_read table_file` to read an ascii table file without closing
other loaded raw files
- Add xschem list_nets command
- Preview window in file open dialog box is x/y resizable
- Parametric models in subcircuits (model=@mod in instances, mod=xxx in parent instantiation)
- Instance based schematic selection: if instance specified schematic=... not existing
Use base schematic (symbolname.sch)
- Add verilog_extra_dir symbol attribute to allow specify "ports by attribute" directions:
verilog_extra_dir="VCC=input GND=input" verilog_extra="VCC GND" extra="VCC GND" ....
instead of the default ~/.xschem/simulations. Changed background color of menu radiobuttons for clarity.
- Allow parametric models in subcircuits. Symbol inv.sym contains template="... modp=cmos_p_10 ...",
pmos instance in inv.sch contains model=@modp, instance format string contains
format="@name @pinlist @model w=@w l=@l, result is: "m2 y a VCCPIN VCCPIN cmos_p_10 w=wp l=lp"
- pass instance `device_models=...` attribute through translate() so @vars are resolved
- added `xschem fill_reset` command to reset fill patterns defined via tcl array pixdata(n)
- add `hide=instance` attribute for in-symbol text objects (in addition to hide=true or hide=false).
If set the text is in visible in instantiated symbols, but is visible if descending into the symbol
- When doing spice netlist, if a symbol has the spice_sym_def attribute set and is using @pinlist
in format string for port order, get the port order from the subckt given in spice_sym_def,
either directly or through a .include line
- xschem raw_read: allow specifying t1 and t2 to load only a portion of simulation file
- Implement vertical flip (shift-V) and vertical flip in place (alt-v)
- Handle xyce y-devices in spice netlists
- Setting line width in View menu will automatcally disable change line width with zoom
- If selection is present when exporting pdf assume it is a bboxed pdf
- Add xschemrc option ps_page_title (default: enabled, 1) to set or hide page title in ps/pdf exports,
more precise graph exports in svg and ps/pdf
- Add `xschem set cursor[12]_x` commands for moving graph cursors
- Add `xschem set hilight_color` command
- Allow instance attribute `text_size_n=s` (where s is a double and n is an integer) to set
symbol text item `n` to size `s`
- When doing spice netlisting if top level has a symbol (and the symbol has i/o ports) use the symbol
for printing the top level subckt port list. This ensures same port ordering when netlisting
a testbench containing a component and netlisting the component itself.
- Add tanh(), min() and max() clipping functions in wave calculator
- Change Waves button to menu entry with various options (annotate OP, load tran, dc, ...)
- Add make_sym_from_spice.awk, cut down from make_sch_from_spice.awk
- Add command `xschem setprop text n txt_ptr value` to change a text object text field
- Add tabs bar context menu
- Add option --pipe (alias for -r / --no_readline)
- Dragging to the right a selection rectangle will select objects fully enclosed.
Dragging to the left will select all objects intersected by the select rectangle.
- Add context menu entries for rotate and flip selection,
- Add basic sub-process control in Simulation menu.
- add @symref attribute that resolves to the full symbol reference as specified
in instance: example: "sky130_fd_pr/pfet_01v8_lvt.sym"
- Add the ability to load multiple raw files with different analyses in
a single schematic ( extra_rawfile() ).
Allow loading more and different analyses from the same raw file.
- Transform multiple saved OP sims into a dc sweep.
- Do interpolation when annotating "b" cursor values in schematic,
as done with measurements with "a" cursor.
- Cursor `a` measurements in graph match the %n dataset specified on nodes
if any (or default to dataset 0)
- Update live backannotation if "a" and "b" cursors are swapped,
- syntax node%n is now allowed to plot only dataset "n" of
the node.
- add `lock` attribute for rectangles: work the same as for instances
(can only double click to reset attributes, not selectable until lock reset to 0).
- Add commands "xschem selected_set rect" and "xschem select_inside x1 y1 x2 y2
- Add rotate, flip menu entries in the Edit menu
3.4.4:
- First selected instance is now always the master (instead of the first in the
xschem array order) when doing an edit attribute on a group of selected elements
- vsource.sym and ammeter.sym: add "savecurrent=1|0|true|false" attribute do decide if
a .save I(...) is to be printed in netlist.
Default is 1 for ammeter.sym and 0 for vsource.sym.
- Add "deltax deltay rot flip" optional parameters for xschem "copy_objects" command
to make copy operation scriptable (lot more efficient than using clipboard)
- Added commands xschem get schprop|schvhdprop|schverilogprop|schtedaxprop|schsymbolprop,
"xschem create_text" renamed to "xschem text" for syntax consistency
- Extend "xschem rect" and "xschem line" commands, add "xschem get rects n"
and "xschem get lines n"
- Add crosshair_layer tcl variable, so user can change crosshair layer.
Crosshair is deleted on LeaveNotify events.
- Added xschem set [schsymbolprop|schprop|schverilogprop|schvhdlprop|schtedaxprop] <value>
commands for setting global schematic/symbol attributes
- Removed tcl variable connect_by_kissing (to many options is a mess)
- Add tcl variable "unselect_partial_sel_wires" and related options menu entry to unselect
partially selected wires attached to component pins after a stretch move command
- If $USER_CONF_DIR (~/.xschem) is not existing create it and also place
the template xschemrc into it
- Add tcl variable no_ask_save: if set to 1 xschem will not ask to save modified schematics
- control-mouse drag select will negate the setting of enable_stretch tcl variable
so drag and control-drag can be swapped vith Options->enable stretch
- Add draw_crosshair setting in xschemrc: draw a crosshair at mouse coordinates
- Commands for breaking wires also for oblique lines, with options to snap the break point
or keep it as is
- Add fix_broken_tiled_fill tcl variable:
if defined work around some graphic adapters/driver implemtations that dont honor the
X11 specifications for drawing with a pixmap tile fill pattern
- Place_symbol(): make it smarter when dealing with generators.
add parenthesis () after file name and better handle tcleval(...) given in file selector
- Improve connect by kissing: now 3 move operations are present:
1) just move selection,
2) move adding wires to connected pins/wire endpoints,
3) move by stretching wires attached to pins/endpoints to follow moving objects
- Add "xschem rotate_in_place" command
- Add tcl command "xschem change_elem_order n"
Add optional x0 and y0 coordinates as additional parameters to "xschem flip
" and "xschem rotate" commands, add command "move_instance inst x y rot flip"
- xschem select: extend command to allow selecting rectangles, lines, polygons, arcs. returns
1 if something selected, 0 otherwise
- "xschem connected_nets" command now works for any selected instance, not only labels/probes/pins.
Argument can be 0, 1, 2 (2-->select only wire segments drectly attached to selected net/instance)
- Add commands "xschem get wires", "xschem getprop wire n attr", "xschem touch x1 y1 x2 y2 x0 y0",
"xschem wire_coord n"
- Add command "xschem select_dangling_nets" that selects all labels/wires that are not connected
to any non-label/non-probe components
- xschem tcp connections: print open/close/in/out data on console only if in tcl debug mode
- Improve send nets to graph. do not refuse to send top level port signals, allow to send bussed
signals even if graphdialog widget is not shown (proc graph_add_nodes_from_list)
- hilight_parent_pins(): if two or more child pins are attached to the same parent net hilighting
one of these child pins will not propagate to parent if the unhilight child pin comes after the
hilight pin.
This is now fixed. Going up in hierarchy will never clear parent hilights.
It is recommended to clear all probes before tracking child pin propagation with hilights upstream.
- xschem switch command: return success also if command given (with right filename/winpath) when no
additional windows/tabs are present
- xschem switch command return exit status depending if switch context was successfull or not
- export ps/pdf, png, svg functions now use custom file chooser widget (as Save As does)
to enable creation of new folders
- Report in-hierarchy overlapped symbols when netlisting
- Better ERC messaging in case of errors (shorts, pins with missing attrs), ...)
- Fix wrong netlist filename if invoking netlist from GUI
- Do not show ERC info window if netlisting invoked via CLI; global variable
show_infowindow_after_netlist can now take 3 values: always, onerror, never, to decide when showing
the ERC info window after netlisting. Old values (1, 0) still accepted as aliases for always
and onerror
- Add optional "-messages" in "xschem netlist" command to return ERC messages instead of
fail(1)/good(0) code
- Prefix ERC infowindow messages with Error: or Warning: or Info:
3.4.3:
- revert format of [xschem pinlist <instance> <attr>] to old (3.1.0) format:
{ {0} {PLUS} } { {1} {OUT} } { {2} {MINUS} }
instead of:
{PLUS} {OUT} {MINUS}
- add postinit_commands description in distribution provided xschemrc
- add "postinit_commands" variable that can be set in xschemrc file, this variable may
contain commands that will be executed after completing startup.
Example: set postinit_commands {xschem set format xyce_format}
- make_symbol: ask before overwriting an existing symbol file.
- Correctly detect if DISPLAY env var is set but specified display is not existing or
xserver not running, and start in text mode
- remove reference to cadsnap_default in menu widget "View->Set snap value"
- change "[xschem get cadsnap]" to use TCL's global variable cadsnap
- remove warning message if bespice_listen_port is not set (not necessary, scares new users)
- allow expansion of labels like aaa[3:2]_qq --> aaa[3]_qq,aaa[2]_qq andi
aaa[3..2]_qq --> aaa3_qq,aaa2_qq
3.4.2:
- Merged Gerard upates for Xschem <--> BeSpice TCP communication
- added tcl variable text_replace_selection (default: enabled (1) ) to automatically
replace selected text in text widgets when pasting from clipboard
- case insensitive compare in boolean attributes (attr=false, attr=True, attr=FALSE, attr=1)
- allow "1" / "0" in addition to "true" / "false" in all boolean attributes
- make the "X" window button close the search dialog box, as Cancel (and Escape key) does
- add "xschem print pdf_full" and "xschem print ps_full" commands to print full view properly
fitting paper size, regardless of xschem window size, some fixes in circle postscript
drawing (set newpath) and rectangle clipping. Add menu command "PDF/PS export full"
- add case insensitive matching in xschem search function
- add xschemrc variable "ps_paper_size" to specify custom paper sizes in ps/pdf exports
- explicitly clear instance flag bits when allocating new instance array data to avoid random
data in bit 8 (IGNORE_INST).
This does not cause any problem but random data in log files, causing false positives
in automated regression tests
- fix crash on windows if a new tab is opened and immediately closed (incorrect call of draw()
after clearing pixmap)
- fix regression(repo.hu: r2353, github: 0bb4c9f) : "xschem instance" command not setting
modified flag on schematic, so following xschem save doing nothing.
- add xschem command `xschem instance_coord [instance]`: returns placement coords,
rotation, flip of selected or specified instance
- initialize tcl_files to empty in xschemrc to avoid side effects if
reloading another xschemrc
- added install_pdf make target to create pdf doc from html man pages
- "xschem netlist" command accepts an optional filename argument
- do not create nets for devices that have *_ignore=true attribute set,
this generates false warnings about undriven nets.
- do not use tclreadline if tcl variable tcl_interactive is 0
3.4.1:
- Add more info in xschem_man about remote tcp connection
- Add mouse_bindings.tcl, courtesy Paul Bodenstab
- Make the "xschem_quit" command work (close current window / tab) also if
xschem started in -x (no graphics) mode
- Changed tcl procedure `setup_tcp_xschem` to allow setting a different port number for
further tcp commuication (and freeing the original port number)
- Enable xschem to load multiple files even if started with "-x" (only CLI mode)
- Add "show_infowindow_after_netlist" tcl variable (default = 0) that can be set in
xschemrc to always show erc window after netlist even without or no critical errors
- Added missing images for bus tap html manpages
- If a file is given on cmdline without any path qualifier (/.../, ./, ~/, ...) look into search paths.
- Apply center full zoom in all zoom full commands if tcl variable zoom_full_center is set
- Modify xschemrc file to avoid side effects if sourced (intentionally or by mistake) multiple times.
- Show red dot when cutting a wire with new alt-right button click on a wire.
Added also menu command in Tools
- Added command Alt-RightButton to cut a wire at mouse position.
- Do a prepare_netlist_structs(0) at end of break_wires_at_pins() for connectivity consistency
- Extended `Shift-M` command to selected nets (nets attached to them will stretch)
- Text elements with attribute name=xxx or floater=xxx will go through a tcl
substitution (instead of the translate(...) function if the referenced xxx
instance does not exist.
- floater=instname can now be given instead of name=instname (they are equivalent)
- Add new command `Shift-M`, move selected instances adding wires when separating
overlapping instance pins (Connect by kissing)
- Break_wires_at_pins(): delete piece of wires connected to symbol pins that extend
beyond the pin into the symbol
- Add command "Tools -> Remove wires running throuh selected inst. pins"
- Quit_xschem command
- Added commands `xschem switch [win_path|schname]`, `xschem destroy_all [force]`,
added `[force]` option to xschem exit
- Changed defaults in xschem: now toolbar and tabbed interface (more robust than multi-window)
is enabled by default, doc updates, improved fix_symbols for setting/removing path compoents
from symbol references, now uses low-level xschem reset_symbol (faster)
- Add procedure `fix_symbols <n>`to set `n` last directory components to all symbols in current design
- Added attributes spice_ignore=short, verilog_ignore=short, .... that will transform the
instance into a short in the current netlisting mode, shorting all pins to the same net.
Works similarly as lvs_ignore=short, but does not need lvs_ignore global setting
- Fix compare schematics if no file for schematic to compare with is given.
In this case compare current schematic with saved version.
Also issue a warning if swapping compare schematics if comparing schematic with disk version of itself.
- Added global tcl variable `lvs_ignore` that can be used to enable instance or symbol
attributes `lvs_ignore=open` or `lvs_ignore=short` while netlisting, added `test_lvs_ignore.sch` example
- Disable displaying backannotation data if `b` cursor is hidden or `Simulation->Live annotation
with b cursor` is disabled.
Use resolved_net() in translate() when displaying @spice_get_voltage so it will work on sub block ports
- Make `xschem exit` (ctrl-w, close window) work in multi-window mode exactly as in tabbed
interface, allowing to close the root window (will be swapped with subwindow and deleted)
- Save (ctrl-s function) normally does not save if no changes are made.
However if file timestamp has changed since opening (by someone else) prompt user to
decide what to do (save or not)
- Make ctrl-ArrowLeft/ctrl-ArrowRight work again (move to next/prev tab)
- Removed File menu commands `Empty schematic in new window` and `Empty symbol
in new window` since these just create another xschem process. Added `File->Start
new xschem process`. `xschem new_window` and `xschem new_symbol_window` commands removed,
added `xschem new_process
- Place polygon bind key is now `p`, ctrl-w is now `Close current schematic`, while ctrl-q is
`Quit xschem`. Reorganized File menu, added more orthogonal `Create new schematic/tab`
removed some largely unused entries. Ctrl-w does not close the last window, just leaves it blank.
Use ctrl-q to close xschem
- Removed some direct exit() calls in editprop.c
- Cleaner exit if xschem -v is given
- Cleanup exit procedures: tcl exit command will cleanly delete additional tabs/windows
data structures before closing
- Add command xschem tab_list, returns window pathname and associated filename loaded
- @spice_get_voltage: do not process if net is a multiple bit bundle
- xschem resolved_net command: add [net] parameter
- Fix long standing bug: redundant grammar rule in expandlabel.y causing it to fail
recognizing nodes like GND*16
- Add more ".." bus notations: XX[4,2,8..1..3,12,23] and others.
- Implementation of portmap feature: from sub-schematics resolve hierarchic name of schematic
nets connected to I/O pins (go to the upper level recursively until resolved)
- Enable rainbow colored graphs also for double dc sweeps
- Update n and p jfets, added pjfet simulation
- Allow @#n:pin_attr or @#pin_name:pin_attr in verilog and vhdl format string (print_vhdl_primitive,
print_verilog_primitive), in addition to @#n (convergence to translate()
- Improved "xschem display_hilights [nets|instances]" that displays highlight nets or instaces or
both,with full hierarchy path, not including uninteresting net/pin/net_show elements.
- Bus_tap.sym symbol for true bus tap (slice some bits out of a bigger bus).
3.4.0:
- Added xmag and ymag entry boxes in grapg dialog box to allow user change of x/y label text sizes
- Replace @symname in instance "schematic" attribute with basename of symbol
(without extension and directories)
- Added "xschem reset_flags" command to update and sync cached attributes of symbols and instances
- Better handling of web_urls: if already cached do not download again
- If multiple objects are selected (instances, texts, wires, ...) and there is an instance in
the set edit instance attributes
- Text floaters (name=xxx atttribute (xxx=instname) set on text to display instance attributes)
- Hide_texts=true attribute added on instance will avoid the display of all symbol texts
(will be probably used when using floater symbol texts)
- Disabled elements are displayed in grey and dashed. Properties->toggle *_ignore function
- Symbol_ignore=true attribute can be set on all symbol elements (text, lines, rectangles, arcs, polys,
instances, nets) such that these marked elements are not displayed when symbol is instantiated.
- Symbol generators may now take attributes like: "mosgen( @model )", with @model expanded to
instance (or symbol template) value. update_symbol() updated to reflect this change.
- When changing a symbol on an instance do not force change prefix (1st name char) if old and
new symbol have same prefix
- Persistent load file dialog (Shift-Insert) now correctly handles generator script selection
(do nothing until user adds () or (param1,param2,...) to generator name).
- Schematic and symbol generators "symbol_ref(param1,param2,...)".
- Instance based schematic selection (via instance "schematic" attribute)
- Draw_graph_points() split big XDrawLines requests into smaller chunks to handle raw files
with > 4M points
- Enable spice_sym_def, verilog_sym_def, vhdl_sym_def on instances in addition as globally
on symbols, for instance based specific implementations.
These attributes must be paired with an instance "schematic=..." attribute that sets
the subcircuit name of the alternate implementation. docs updated.
- Implement xschem sch_pinlist command, improve xschem pinlist inst [attr]
- Xschem tcp server: drop connection at end of response to make client reads easier (eof detection)
- Add xschem instance_list command, updated docs
- Add tcl procedures documentation in developer_info.html
- Handle viewing / netlisting remote (http[s]) hierarchic objects
- If a custom format netlist is given (for example lvs_netlist) and lvs_netlist attribute in
instance or symbol is existing but empty device will not be netlisted
- Instance attribute "hide=true" will make the instance display as a bounding box only
- Add command xschem logic_set_net <net_name> <value> [ntimes] to set a specific net
instead of selected nets
- Add xschemrc variable zoom_full_center, if set to 1 full zoom will center the schematic instead
of anchoring to lower-left drawing area corner.
- Add Simulation->Monitor current simulation to display stdout of running simulation
(to get simulation status / ETA and the like... )
- Added execute(cmd,last), execute(data,last), execute(status,last) for post-mortem
inspection of last simulation
- Documentation about xschem commands in developer_info.html
- Add table_read() function to read simulation data in ascii tabular form
- Rename top_subckt to lvs_netlist (more appropriate), better tcp interface (redirect stdout
to socket in addition to command return value)
- Added "s" bindkey in graphs to swap "a" and "b" cursors
- Added command xschem hilight_instname
- Refactor some code (use set_text_flags() to avoid repetitive code),
add xschem setprop text and xschem getprop text commands to set/get text attributes
- Ascii85 postscript encoding by Raphael Cabrera, fix some compiler warnings and add some
little optimizations in ascii85 encoder
- Revert and fix regression (graphical artifacts due to wrong change_linewidth()
- Add postscript quality attrs to some example schematics
- "preserve unchanged props" will be automatically checked when editing attributes on multiple
object selection and unchecked on single object selection as this is the 99.9% use case
- Added jpeg_quality attribute that can be used in images / graphs to specify the quality
factor of jpg embedded images in ps export. If unspecified quality=100 is used.
A value of 25 results in 6x smaller files and acceptable results, so it is worth
using a quality factor less than 100
- Added libjpeg detection code, so postscript image embedding will be disabled if libjpeg not present
- Ps/pdf ecxport: dont print rectangle frames around images
- Use my_free/my_malloc for memory leak checks
- Default to unlocked state (lock=false) at title 1st placement
- Add accelerator Shift-B for edit schematic header/license
--diff option to visually compare two different (versions of) schematics
- Add command "Simulation->Changelog from current hierarchy" that lists schematics
from current hierarchy, sorted by modification time
- When setting Simulation->LVS netlist, use "lvs_format" attribute for netlisting if this
attribute is existing, otherwise keep using "format"
- "xschem set format <fmt_attribute>" will change netlisting format attribute instead of
default "format" (or verilog_format or vhdl_format),
however fallback to default netlisting rule attribute if not defined in symbol.
add tcl function "from_eng <n>" to convert spice formatted numbers to floating point
- Added verilogprefix symbol attribute: will be prefixed to symbol name references in verilog netlists
- Implementation of fetch schematics from web (xschem http://......xxx.sch)
- When placing symbols user can also type file name (with full path also)
inside File/search box instead of clicking in the list box. web URLs will be returned as
they are with no further interpretation
- Dim schematic to grey if showing only probes, instead of hiding it completely
- "@path" will be expanded in symbols with the hierarchy path,
so a fully qualified instance name is obtained with @path@name
- Fill attribute on rectangles to override layer fill style: fill=false will not fill
- Global properties dialog box: close if clicking outside or pressing Shift-Return
- Shift-enter/clicking outside ends text insert widget.
Entry widget for text properties string replaced with multiline text widget
- Recursive attribute substitution. use also template attribute of parents if not found
in instance prop_ptr
- Ipin,iopin,opin reshaped to better show connection hotspot
- Use sim_pinnumber for port ordering in simulation netlists and leave pinnumber
for package pin position.
These two collide, for example in spice port ordering vs (transistor problem)
device package pinnumbers. Dont load graphs in lcc symbols
- Save symbol with ordered pins if sim_pinnumber is present in all pins
- Annotation of voltage and currents in (nested) LCC instances
- Change_layer() now works also for text objects
- Allow changing start color in rainbow multi-dataset graphs
- Added rainbow checkbutton for multicolor waves in case of multiple datasets
- Wire labels: default name set to p1 instead of l1, so it will not clash with typical
inductor names
- Removed (now) duplicated inst_hash_lookup: use int_hash_lookup.
Search function does not highlight nets if searching for something that is not "lab"
- Persists highlights on instances as user ascends/descends into different hierarchy
level of schematics
- Add cmdline option --preinit <commands> to execute given commands before
executing xschemrc file.
This can be used to switch library search paths depending on a variable setting.
- Netlister code rewrite to allow any combination of pass-through symbols
- Load_file_dialog: make remember last dir work again
- Handle pass-through symbols chained with wires and no labels attached to wires
- Allow to use @pinlist in format string even for symbols with duplicated ports.
Duplicated entries will be skipped.
- Add component_browser_on_top tcl variable in xschemrc (default setting: enabled (1)
to enable or disable component browser window always on top
- Allow negative integers in expandlabel() ( xx[6:5:-2:3] )
- Update send_net_to graph() and send_current_to_graph() to use sch_waves_loaded() as the hierarchy
level where raw file was loaded, to skip upper path designators
- Added label notation EN[0:3:6:5]: EN[start:end:offset:repetitions],
it will expand to a 20 bit bus:
a[0],a[1],a[2],a[3],a[6],a[7],a[8],a[9],a[12],a[13],a[14],\
a[15],a[18],a[19],a[20],a[21],a[24],a[25],a[26],a[27]
- Allow nets with no label pass thru symbols with duplicated pins.
named nets will propagate through duplicated pins
- Use limiting mylog()/mylog10() functions in expression calculator
- Faster jump table in plot_raw_custom_data(), added simulation->add waveform reload launcher
- Added verilog_extra attribute for list of implicit node connections to symbol in
verilog netlists. extra attribute still used in verilog as a list of attributes NOT
use as component attributes / symbol parameters.
- Added prev(), del() function in graph processing. Extend calculation 1 or 2 point
beyond viewport for exact deriv/integ/prev/del calculation at left edge
- @pinlist will be comma separated in verilog netlists
- Added vhdl_sym_def, spice_sym_def, verilog_sym_def attributes for symbols.
If defined and not empty the corresponding netlister will insert the content of the
attribute instead of the subcircuit schematic implementation.
Typically used to include a definition file. Updated documentation
- Graph axes in engineering notation (20u, 10p, 3k), fix an issue in graph panning with
button1 mouse;
ngspice:: get_current, get_voltage, get_diff_voltage, get_node embedded into xschem.tcl,
to_eng tcl procedure to convert number to engineering form.
- Add Highlight->Select overlapped instances command
- Added File -> Component browser, clicking recent component buttons displays preview
- New option for non blocking file selector, so it will remain open allowing to pick
multiple components (Shft-Insert).
Aborted place symbol operation will no more set schematic status to modified
- Allow tabs and newlines in graph expressions in addition to spaces; updated example schematics
- Allow spice multipliers in numbers (20u, 10k, 20p) in graph expressions
- Added "Annotate operating point" into Simulation menu
- New added graphs will have dataset attr set to -1 to include by default all datasets
- Make op backannotation in schematic work also if raw file loaded at hierarchy level > 0
- Xschem raw_read accepts an optional type argument after file name (tran, ac, dc, op, ...)
to select type of simulation to load from raw file.
New command xschem annotate_op will replace ngspice::annotate tcl procedure.
- Bypass tcl for voltage and current backannotation in schematic from cursor b positon in graph
- Better number formatting in backannotation. Alt-e if nothing selected opens another
copy (tab/window) of current schematic (after warning)
- If sweep variables are defined on X axis (instead of default index 0) use first
sweep X-axis var in live cursor backannotation
- Add backannotation info (as hidden text) in lab_pin.sym, lab_wire.sym,
transitioning example schematics from old (push) backannotation model to new pull model.
- Fixed current (also hierarchic) reporting in ammeter.sym and vsource.sym)
- Let cursor graph backannotation work for multiple sweeps (implicit datasets)
- Alt-a in graph annotates schematic with values at cursor b position.
Simulation->Live annotate option to automatically update schematic probes if cursor moved.
Some improvements and fixes in ngspice_annotate.tcl. Fix xschem setprobe command.
- Add simulator_commands.sym, simulator_commands_shown.sym, add_custom_button.tcl into release package
- Restructured graph dialog box, added min/max x, adjusted sweep variables vertical aligmnent,
added atof_spice() that recognizes spice suffixes (12p, 4.2MEG etc)
- Do not show bboxes of hidden texts while moving objects if global option
"show hidden texts" is not set;
- Limit max size of embedded graph bitmaps in svg export.
- Added deriv0() graph function, does derivative w.r.t. index 0 (sweep) variable, regardless of
graph sweep (x axis) variable.
- Xschem print command: if w and h are set to 0 compute image size automatically
- Graphs are now rendered (as detailed png bitmaps) in svg exports
- Look for inutile stimuli files in schematic directory instead of in simulation directory
- Fix find_closest_dataset() if log scale axes are used
- Ngspice_backannotate.tcl: handle Xyce operating point data, removed hspice_netlist
(no more existent)
- Inst_hash_lookup() will insert and lookup only instance basename (x1[3:0] --> x1) so better
and stronger uniquenes of instance names is ensured.
- Ngspice_backannotate accepts a filename (if not given assume as before <circuit_name>.raw)
- More Xyce integration, transform .save in .print tran, transform x1.x2.node to X1:X2:NODE in
Xyce lookups, more checks for malformed raw files
- Added "devices/simulator_commands*.sym" to conditionally include commands in the netlist depending on
selected target simulator
- Added command "xschem get netlist_name fallback" that returns user set netlist name or fallback name
derived from circuit filename. simulate and waves procedures handle user netlist name if set
- Zoom by area plots reverse x axis if done with Shift key pressed
- Balloon tooltip procedure made more general. Easy to reuse for any widget
- Added [t]rack bindkey in graph to display the wave closest to mouse in multiple dataset plots
- Add commands "xschem set format ..." and "xschem get format" to change/view format attribute used for
netlisting, overriding defaults. Example: "xschem set format my_format"
- If ALt-x (compare schematics) is given before setting a compare filename, schematic is compared
with saved version of itself
- Add xschem get zoom to query zoom factor
- Allow "xschem descend -<n>" (n=number) to descend into nth rightmost instance; added traversal.awk script
- Warning and highlight perfectly overlapped symbols
- Add "Plotname: constants" to the list of recognized ngspice plots in raw file
- Focus main window when mouse leaves SNAP or GRID text entries
- Added xschemrc variable `autofocus_mainwindow` (default setting: enabled (1) ),
if this variable is set moving the mouse to the main drawing area when a dialog box is open
(typically while editing a component attribute list) will focus the main window, so user
can move / zoom/pan the schematic using the usual commands, for example to look at a
different part of the schematic while editing the component.
If this variable is unset a click is needed to focus the main window.
This will thus not allow to move / zoom, but allows to type into the dialog box if the
mouse goes out of it.
- Changed @schname to @schname_ext and added @schname that expands to the schematic
name containing the instance, with no extension (no .sch)
- Added @topschname predefined attribute that expands to the toplevel
schematic name (no path) with no .sch extension
- Unselect_all() before inserting wire label or text from the menu to avoid moving
previously selected objects
- Y log axis option in graphs
- User selectable log X scale instead of assiming log X for AC analyses only
- Fix ngspice_backannotate.tcl: correctly backannotate ammeter currents; correctly
handle multipoint Operating point data in graphs
- Store just magnitude and phase of AC vectors instead of dB and phase.
Add db20() function to get dB values from magnitude in graph RPN expressions.
- Do not accept 0 in graph `X div` and `Y div` textboxes, as this will cause an endless loop
- Button 1 Double click does edit object attributes
3.1.0:
- Lot of bug fixes.
- Alow embedding (png) images in schematics
- Display waveform graphs from ngspice/Xyce .raw files directly into the schematic.
- Multiple windows handling. Tabbed/multi window interface
- Add cross probing to Bespice wave viewer.
3.0.0;
- binary windows release
- added "place=header" (in addition to "place=end" attribuite value)
to print code block as a header in spice netlists
- force ERC info window showing in case of critical errors during netlist:
unconnected nodes, shorted nodes, pin mismatch between sch and sym and similar
- do a tcl evaluation of the "schematic" attribute of a symbol if the attribute is within a
tcleval(...) expression. This way tcl variables/expressions can be used to determine
the schematic to descend into when traversing/netlisting. example:
schematic=tcleval(poweramp_${::mode}.sch)
- new list variable "noprint_libs" to specify patterns of cells NOT to print in hierarchical export.
"xschem_libs" does the same thing for netlisting.
- added hierarchical ps/pdf export (File menu)
- LCC creation: Added new feature "Make schematic and symbol from selected components"
with command "xschem make_sch_from_sel" and function make_schematic(..)
- if bussed symbol ports are unconnected generate array of unconnected nets to match port multiplicity
- add simulation menu option to create simulation/ dir under current schematic dir (local_netlist_dir)
- report error if editor not found while opening/editing with editor (netlist, stimuli file attributes)
2.9.9:
- add (as comments in netlist) absolute paths for .sch and .sym of all expanded subcircuits
- ngspice_annotator: implicitly add "x" to subcircuit instance names that do not begin with "x" or "X"
- Postscript/svg print: addition of ISO 8859-1 characters
- When editing multiple text objects with "preserve unchanged attrs" set do not change individual text dimensions.
- saving to file made 4x faster, this implies less latency due to undo buffer savings on freaking big schematics.
- add sample file for custom menu additions
- bind select "connected wires" to alt/ctrl-right button click
- Add Shift-Delete command that selects all nets/labels/probes physically attached to current selected wire segment/label/pin/probe
- added "auto join/trim wires" menu option since now the trim operation is doing fast even on big designs
- option for transparent background in svg export
- added ngspice backannotation tutorial
- add xschem commands for specifying image size for png and pdf:
xschem print svg file.svg 800 600;
svg background color taken from svg_colors variable so it can be changed like any other color
- xschem page aspect ratio decides if postscript or landscape for ps/pdf
- ps/pdf export uses true postscript fonts
- spice_probe symbols generate .save instructions and these are flattened by xschem
to enable ngspice save hierarchic nodes
- variable width grid point option (for 4K displays)
- Added 'PWD' button il file load dialog
- almost all global context related to a schematic in xctx structure. This potentially
allows to load more schematic windows with 1 running xschem process.
- fix spiceprefix to be applied on all expanded vector intances in spice netlists
2.9.8:
- ERC checks: do sch/sym node equivalence check on expandlabel()'ed nodes,
avoid flagging DATA[5,3,1] != DATA[5:1:2] != DATA[5],DATA[3],DATA[1]
- bounding box fix while copying objects done in r1224 was not correct. Object rotation fixed now
- allow spaces in bussed nodes (A B,CC,D\ C, A B[3:0]),
- switch LC_ALL to "C" locale to avoid output file format issues in foreign
localized systems.
- various commands for schematic backannotation:
Added various procedures to select flat / hierarchical instances and re-route
a terminal to a different net.
reroute_inst -> change a pin connection,
reroute_net -> change net updating all connected components.
"xschem instances_to_net", "xschem instance_nodemap", "xschem instance_pin_coord"
new query commands added. "xschem get expandlabel node" renamed to "xschem expandlabel node".
- allow tEDAx (flattened) netlisting of hierarchical schematics
- allow tcleval(...) in instance attributes , example for a for a
MOS: W=2 L=0.13 AD="tcleva([expr @W*0.29])"
- svg export uses true fonts (svg <text> element)
- select highlight net function made faster (highlight -> select highlight nets)
- great trim_wires() improvement (>2 oom speed)
- guard against extended ascii characters in nocairo/svgdraw/psprint functions
- added variable "S" containing full schematic path in "Simulations->Configure simulators
and tools". This can be used to add search paths to simulators.
- allow tcl commands ( [..cmds..] ) in Simulation->configure simulators and tools
(useful to retrieve needed information about current dir etc.).
- better xschem icon: added shapemask for "transparent" background
- synchronize command sending to gaw with gaw replies so at the end the tcp channel
is closed gracefully (avoid port in use error messages). Timeout whatchdog is set
to prevent forever waits/deadlocks.
- Fixed Windows Xschem running from VS2019 without installing Xschem to find (Root)/xschem_library/devices
as XSCHEM_LIBRARY_PATH, so that viewing schematics through VS2019 will find all
symbols in xschem_library/devices.
- Moved doc and xschem_library XML files to its own *.wxs
- cleaned up Product.wxs by taking out doc and xschem_library files; fixed spacings
in License.rtf; added condition that proper version of Active TCL is required to
install
- added res_ac.sym
- added m parameter to npn.sym and pnp.sym, text attribute edit dialog box renamed
from .t to .dialog so it will be always raised on top of xschem window
- put braces around "expr" tcl statements as this boosts speed
- Removed all static/global name conflicts, avoided global conflicts with flex/bison
generated code so xschem (as a test bench) can be compiled as a single big file
that includes all other sources
- updated "xplot" file syntax according to recent ngspice changes
- "Delete files" menu command added
- added Shift-I bindkey as an alternative to Insert key (missing on Apple machines)
to insert a component
- add some hidden commands in menu: "place net label(2)", "highlight net/pin name
mismatches of selected instances", "Flip", "Rotate"
- according to answer from ngspice guys ngspice does not accept continuation lines
for .title, .include and .lib statements, so break.awk will avoid breaking those
lines. reversed default for tcl dim_background variable, so toggle colorscheme
will work.
- added notepad.exe as editor for Windows
- some "tcl_version > 8.4" conditions in xschem.tcl to ensure proper working on
old (tcl/tk8.4) machines.
- added backannotation ngspice_get_expr.sym, gspice_get_value.sym, ngspice_probe.sym,
and sqwsource.sym into Windows release package
- exampels/poweramp.sch and examples/cmos_example.sch show how to use dynamuc ngspice
simulation data backannotation, optimized fix of previous bbox bug
- added ngspice_probe.sym and ngspice_get_value.sym that use a pull method to fetch
values from ngspice .raw datafile, fixed a long standing bug that changed bounding
boxes of symbols that were selected for a copy if they were copied and copy operation
involved rotations of flips.
- xschem setprop made way faster if "fast" argument is provided. Example "clear probes"
launcher object in mos_power_ampli.sch.
- do not call calc_drawing_bbox() on monster schematics as it takes more time than
just drawing the viewport
- better regexp for probe search in ngspice_backannotate.tcl, comments in token.c
- allow dim background color in "View -> Dim oclors"
- if xschem is started with -n (netlist) load_schematic will not call tcl proc is_xschem_file
to determine if sch or sym type, since command line option has higher priority.
reverted back possibility in update_symbol() to have double quotes around name
attribute (name="My strange name"). This has toooo many implications everywhere.
name attribute must be wihout double quotes, xschem will strip them off if any.
- preview function now does no more need to save whole schematic on the undo stack,
it is just a matter of pointer switching
- all xctx context is now a dynamically allocated structure; no observable performace
impact
- r1191 | stefan | 2020-10-15 15:52:08 +0200 (gio, 15 ott 2020) | 1 line
- added "xchem load_symbol" command to load a symbol without binding to any instance,
text edit attribute "Load" button will start in "$current_dirname"
- avoid printing erc warnings about missing "name=" attribute in symbols if there
is a definition in symbol template string
- remove instname and symname parameters to tclpropeval2 as they are no more necessary
- updated print_spice_subckt() to reflect updates done in print_spice_element();
abs_sym_path recognize ././././, ./., other strange paths., use $env(PWD) for current_dirname
on startup instead of getcwd() if possible, to avoid dereferencing symlinks
- cleanup in print_spice_element(), print_verilog_primitive(), print_vhdl_primitive(),
print_tedax_element(), parselabel allows ~ in node names (XSPICE inversion operator)
- match embed with what's updated in verilog_timescale.sym: "verilog_preprocessor
and verilog_timescale now use verilog_format instead of format (which is for spice)"
- if strings passed to translate() are encloded in tcleval(...) the translated string
is passed to tcl for evaluation. This allows to display formula results for symbols,
for example capacitance values based on W and L:
tcleval(C=[ expr @ca * @L * @W ]) --> tcl will substitute the calculated value: C=1.234e-14
- code refactoring (global context in Xschem_ctx)
- when netlisting primitive elements (not subcircuits) the "format", "verilog_format",
"vhdl_format, "tedax_format" can be specified in instance attributes to override
symbol. This allows to adapt primitives (example digital standard cells) to different
design kits without using wrapper subcircuits. Together with "symname" redefinition
in instance this allows to completely customize element netlisting.
- verilog_preprocessor and verilog_timescale now use verilog_format instead of format
(which is for spice), corrected verilog_netlist.c; better backslash and quote (")
escaping and unescaping when using attribute select combobox; for unquoting use
"xschem get_tok tok 2" instead of "xschem get_tok tok 0" + regsub ....(remove backslashes)...
- allow probing to gaw current in voltage sources in addition to ammeters
- "Option->Show info win" moved to "View->Show ERC info window"
- Preserve existing text (notably license info) in xschem files under version "v"
tag; some code refactoring, removed obsoleted comments
- added support for probing waveforms into gaw if raw file written by Xyce; Xyce
uses uppercase, does not wrap voltage nodes into V(...). uses ":" instead of "."
as hierarchy separator and other quirks.
- some clarifications of steps to be taken to simulate example rom8k circuit
- fix hierarchical pathname for current probes to gaw
- better wire connecting bubble zoom scaling at different snap levels
- added vsqsource, square wave source generator, with only "hi" and "freq" as parameters
- correctly draw net labels / pins when they are highlighted and user changes their
lab attribute so they become unhilighted
- added warnings (Options -> Show info window) if components are missing a name=...
attribute / if symbols are missing a type=... attribute
- fix erroneous slotted instance recognition (confuse U2[3:0] with U3:2) in translate(),
breaking in some cases the "add net name on instance pin" feature
- more precise bounding box calculation for net highlights (will extend the bbox
to cover wide (bus) wires and solder dots) so there are no more "half coloured"
connecting dots etc.
- "@#n:net_name" attribute (n = pin name or number) in symbols translates to net
name attached to pin. "lab_show.sym" component that shows (does not assign) net
name. "highlight=true" attribute can be given on instances in addition to symbols.
Set filename in recent history also when given on command line.
- save embedded components not only on first embeded instance but on all of them.
This makes reloading easier and the overall thing much simpler. In LCC schematic
allow get_sym_type() to read symbol data from folowing embedded tags "[...]" if
any. Fix potential segfault in preview_window()
- better read_line(): handle unextected EOFs (noeol last lines)
- completely eliminated match_symbol() (which in turn may call load_sym_def() ) calls
from within load_sym_def(), even for aligning LCC schematic pin ordering to symbol.
A dedicated "align_sch_pins_with_sym()" together with "get_sym_type()" does the
job in O(N) instead of using a sort routine.
- off-loaded some functions from load_sym_def() to make it smaller, avoid overkill
recursive load_sym_def() calls to get only the type of a component in LCC schematic
instances.
- Alt-b command toggles bounding box view: 0: view all, 1: bbox view for subcircuits,
2: bbox view for all symbols.
- fix un-graceful termination of load_sym_def() in case of recursive schematics instantiating
themselves. It was not allowed to unroll all hierarchy levels cleaning up allocated
memory after issuing the max-hierarchy warning.
- fix inaccurate mouse to arc distance calculation for selections
- add gtkwave_server.tcl hook for gtkwave to listen to a tcp port
- Fixed some flaws in execute/execute_wait/simulate procedures (Simulate button was
not cleared after a foreground simulation)
- add attributes "weight=bold", "slant=italic", "slant=oblique" on text objects for
bold/italic/oblique texts, doc updates.
- capslock and numlock status detect and report in statusbar
- "xschem hilight_netname" command to hilight a specific net name, "xschem search
exact ..." finds specific instances of vector instances, "probe_net" procedure
descends into the right bussed instance and hilights the correct net bit, added
"xschem display_hilights" to return all hilighted nets in the hierarchy, added
"gaw_cmd" procedure to send socket commands to gaw (like "gaw_cmd reload_all")
(recently added command to gaw ttg)
- make "ctrl-[0-9]" commands work again (change layer)
- When loading/descending in a symbol set netlist_type to CAD_SYMBOL_ATTRS, set back
to previous value when done.
- Tcl procedure "load_file_dialog" is now used also for saving files (so list of
defined xschem libs is available
as well as preview window).
- eliminated any differences between SYMBOL and SCHEMATIC files.
There is no "current_type" variable any more. Symbols who used to have netlisting
rules defined in schvhdlprop
have now these attributes in schsymbolprop.
Old symbol files with schvhdlprop will be saved with netlisting rules in schsymbolprop.
- Bring open dialogs always on top of xschem main window if user clicks title bar
on gnome/metacity DMs
- allow '@' in net names as this is sometimes uded in CDL / backannotated netlists.
- enable "bus=true" attribute for lines as well as for wires.
As a side effect LCC schematics with bussed wires will display thick buses
- added command <Alt-b> (menu Symbol->Show only instance Bounding boxes) to toggle
displaying instance detals / only bounding box.
- added "dash=n" (n=integer) attribute for lines, polygons, rectangles, arcs to set
dashed line style.
n is the dash length in pixels.
- verilog_ignore, spice_ignore, vhdl_ignore attributes on schematic pins are propagated
to symbol pin attributes
(if using make symbol from schematic, otherwise propagate by hand).
These pins are not netlisted in the respective netlist format
- -b option to detach xschem from terminal
- NO_CAIRO builds also use 'layer=' attribute to display text on custom layers.
- pdf and svg exports follow the enable_layer[] array to display/hide layers as does
draw()
- LCC function (Local Custom Cell):
schematics (.sch) can be instantiated just like symbol (.sym) files in a parent
schematic.
- Open Recent menu entry to quickly open recent edited/saved files.
- when descending into vector instances (example: x1[7:0]) ask in which instance
to descend
(example: x1[2]). This is needed to correctly build the hierarchy paths and to
send correct
signal names to spice waveform viewers. This also allows to follow single bits
of bussed
signals thru the hierarchy.
- symbol attribute @symname will display symbol name without extension as it used
to be
in earlier versions. @symname_ext will print full rootname of symbol.
Some doc updates on symbol attributes
- changed tcl procs abs_sym_path and rel_sym_path, now the real symbol filename is
obtained by
prepending one of the XSCHEM_LIBRARY_PATH paths until the symbol is found.
This allows more than one directory levels in symbol references.
- when copying a symbol with edit_property dialog ("q" key) and enabling "Copy cell"
if a relative
path name is supplied for new symbol it will inherit the same path prefix as the
original symbol.
- edit property dialog box has a (combobox in tk slang) token selector, so if a specific
token
is set the text edit will be restricted to that token value instead of the whole
attribute string.
- snap and grid entries in main window will not annoyingly receive keyboard focus
with TAB key
- implemented text attributes "hcenter=true" (center text in reading direction) and
"vcenter=true" (center text in direction perpendicular to reading direction).
These can both be set for full centered text block.
2.9.7:
- store symbol wires (if any) as Instdef lines on layer WIRELAYER (1) so they are
visible when instances are placed.
- spice netlister: if ".param m=10 n=5" is given and "R1[m:n]" instance name is present
resolve parameters
and replace instance name with R1[10],R1[9],...,R1[5].
- Fix: zoom_box function called from menu was broken
- tcl proc probe_net: if <path>.netxxx is given where xxx=number then try first probe
netxxx, if no net is found try #netxxx
- load system-wide xschemrc first, then $PWD/xschemrc or ~/.xschem/xschemrc; user
xschemrc appends to
system-wide xschemrc instead of replacing it.
- verilog_netlist: use name "top_schematic.sym" from "top_schematic.sch" before calling
load_symbol_definition for verilog parameter netlisting
- fix to avoid name chashes between auto-named nets (#net<number>) vs user set net
names (net<number>)
- device_model attribute: allow escaped quotes in text
- allow .subckt as well as .model in device_model attribute, even with identical
model/subckt name
- "device_model" attribute set in symbol or symbol instance may be set to a SPICE
.model
specification (device_model=".model D1N4148 D ...").
This model will be printed only once per component at end of netlist.
- "xschem clear SCHEMATIC" incorrectly sets untitled.sym file name. Thanks to Neil
Johnson for pointing out the issue
- add --tcp_port command line option
- added (optional) tcp server that can be used to accept commands from other applications
(backannotation, cross-probing)
- added video tutorial on cross-probing into GAW
- added "Simulation->Send highlighted nets to GAW (Alt-G)" to probe xschem nets into
an open gaw window
using gaw ttg socket commands.
- dircolor variable (associative array) in xschemrc to set custom user defined colors
for xschem
component/schematic libraries: "set dircolor(path_regex) color"
- glob filter (all, .sym, .sch) in file open dialog.
- created command "Simulation->Create ngspice xplot probe file", this creates a xplot
script
for ngspice with waveforms of same color as highlighted xschem signals.
Fix a problem in verilog_netlist.c not writing "---- begin/end user architecture
code"
blocks if empty user architecture. This confuses verilog.awk post processor.
added logic/ram_tb.sch verilog example.
2.9.6:
- filled arcs/circles in svg and pdf exports
- fix segfault when selecting polygon on layer x close to circle on layer y: incorrectly
returning polygon on layer y
- fill=true attribute for arc/circles, same as for polygons
- add "--script <tcl_file>" to allow executing a tcl script from cmdline
- allow flat netlist with LVS flag set
- fix crashing bug: check for missing "name=" attribute on symbol pins in sym_vs_sch_pins()
- separate "spiceprefix" and "toplevel is a subcircuit" options, move under Simulation
menu
- In load_file_dialog(), when the LHS panel is root, going down on the RHS panel
should not
add an extra / for the new directory name (applicable to both Linux and Windows)
- catch open filename should be within quote to handle window's filename with spaces;
- @spiceprefix added in front of @name in nmos4.sym, pmos4.sym, pmos.sym and nmos.sym
in devices/
- fix clash in loop variable in sym_vs_sch_pins()
- better erc check: sch_vs_sym pin check in addition to sym_vs_sch
- merge-in windows changes into xschem.tcl
- vhdl postprocessor: add _vector on bussed nets only if boolean, integer, real,
bit or std_logic type.
Do not add for any other user defined type
- vhdl netlister: do not declare record field signals (signal mysig.myfield), print
component declaration
for symbols with type=primitive
- Windows porting code added.
2.9.5:
- Avoid printing erc violations (open net and such) for global nodes, as they are
resolved outside current schematic scope
- @spiceprefix can be added in front of @name in symbol format string to change prefix
for device spice simulations.
This prefix is not used if LVS netlist is enabled
- Added symbol menu entries to create labels / pins or print highlight nets
- warnings when opening a non xschem file or placing a non symbol file.
- rawtovcd: option -v <voltage> to digitize all analog variables to digital (vth=3/4
voltage, vtl=1/4 voltage)
- menu entry to wrap top level in .subckt / .ends (spice netlists)
- video tutorials added
- Added xyce simulator launch
- Show infowindow (erc, warnings etc) on startup if show_infowindow set in conf file
- Alt-p command to place a symbol pin
- Alt-l or Shift-Alt-l to place a schematic net label
- Hilight subcircuit symbols during netlist if there is a pin mismatch with underlying
schematic
- Xschem presentation slides for F-Si conference.
- better tk_exec: collect exit status from spawn background processes via async pipe
fileevent
- new 'simconf' framework: all bindings to simulators / external tools are defined
in a 'simrc' file
decide which simulator/viewer to use, add or change command options.
No tools / paths are now hardcoded anywhere in the core files.
- Add 'vhdl_primitive', 'verilog_primitive', 'spice_primitive' attributes for symbols.
If any of these is set to true corresponding netlister will ignore completely symbol
definition (no 'entity/component' for VHDL,
no 'module' for verilog, no '.subckt' for spice) and print in netlist only the
items as specified in
'vhdl_format', 'verilog_format' or 'format' respectively.
- raise toplevel dialogs above xschem drawing area, not above everything
- heuristic test added in preview code to decide if file is a valid xschem format
(so preview is possible on older xschem formats too)
- preserve instance name up to numeric index when copying instances and 'Allow duplicated
instance names' is not active:
DIODE1 --> DIODE2 instead of D2
- eliminated numerous graphical artifacts due to AA text.
- better align nocairo text with cairo text for more consistent pdf / svg plots.
- gschemtoxschem.awk imports gschem schematic / symbols
all gschem example circuits and all gedasymbols.org (1289 symbols) translated to
xschem
- block attribute deletion works (no special DELETE key anymore needed)
- do not populate attribute string from symbol template if empty when editing symbol
attributes.
- pick refdes from symbol template when netlisting if missing from instance attributes.
- default key for fullscreen set to '\'
- remap-able pinnumbers on symbols created by symgen.awk, disabled tclreadline autocompleter,
use only default (file expansion).
- allow more exotic pin names in symbols (slashes, leading digits etc)
- add comptag lines for additional key-value attributes in tedax netlist
- lock=true attribute makes component unselectable (good for page title )
locked components can be unlocked by right-clicking on them (to bring up the edit
attribute form) and
deleting or changing the lock=true attribute