Commit Graph

62 Commits

Author SHA1 Message Date
Stefan Frederik 17d8db59ff num parameter to logic_set() to perform "num" toggling operations 2020-12-28 20:20:45 +01:00
Stefan Frederik 5917cd9717 added flip-flop simulation capabilities. added examples: merry xmas greeter and 7 segment display driver and counter. 2020-12-27 19:20:24 +01:00
Stefan Frederik b71199c5b8 added "xschem_simulator" sample example directory for trying logic propagation of probed nets 2020-12-26 19:26:33 +01:00
Stefan Frederik 3f452beb8e Fix: search() "unselect" function was not updating drawing 2020-12-25 15:14:41 +01:00
Stefan Frederik 582863f825 added menu option to load most recent file: ctrl-shift-o, fix menu entry "unhilight selected nets" (did unhilight all); removed a wire[].node clear in hash_wire() that caused broken connectivity. this data is cleared in delete_netlist_structs when needed. 2020-12-25 04:37:53 +01:00
Stefan Frederik 779c789100 better "xschem print" command accepting viewport and image dimensions, better zoom_full (with margin), good for embedding in script and do automatic export generation 2020-12-22 00:13:25 +01:00
Stefan Frederik 4ddc9654e8 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 2020-12-21 04:38:57 +01:00
Stefan Frederik dfa58a0a08 spaghetti code removal, more reused code 2020-12-20 15:56:29 +01:00
Stefan Frederik a837682731 caching "lab" and "highlight" attributes for speed 2020-12-19 03:22:38 +01:00
Stefan Frederik 17124c761c each schematic windows has its own "current later" (rectcolor) 2020-12-06 16:40:08 +01:00
Stefan Frederik 4d26ce66a8 more state variables into xctx: move / create new objects 2020-12-06 16:10:22 +01:00
Stefan Frederik e7e5ad190b more schematic context in xctx: cairo surfaces and context, save buffer graphic context (GC), hilight hash tables and data, node name hash tables. Refactoring of resetwin , resetcairo routines (also used in xinit to avoid code duplication), switching schematics seems almost complete now 2020-12-06 02:10:53 +01:00
Stefan Frederik f9f9de3371 added "PWD" button in file load/place component dialog box that brings back to the directory containing current schematic. Selecting a component before doing "place component" will make the file load dialog start from the directory containing the selected component 2020-12-05 05:18:35 +01:00
Stefan Frederik 2b7e31e0d6 add utility functions to create new schematic window 2020-12-03 23:17:13 +01:00
Stefan Frederik 9588a859da cleanup in preview code 2020-12-03 11:42:06 +01:00
Stefan Frederik a64d69ed7a some code refactoring, more globals in xctx context, fixed unnoticed shift-reduce conflict in expandlabel 2020-12-03 04:20:05 +01:00
Stefan Frederik e279262f00 more globals into xctx context struct 2020-12-02 15:10:47 +01:00
Stefan Frederik d47a569f9f bussed nets/pins in hierTEDAx netlists 2020-11-28 16:41:35 +01:00
Stefan Frederik d93826f61c wrap long lines in source code, set default direction of pins to "B"(idirectional) if not specified in spice netlist (no *.PININFO information) 2020-11-22 00:51:24 +01:00
Stefan Schippers f6e85bc90c replaced select_connected_nets() with faster select_hilight_net(), net_name() used only for displaying net names will not trigger erc messages 2020-11-16 15:44:51 +01:00
Stefan Schippers 2d01eee04b trim_wires() made 2 O.O.M. faster on big wire meshes; rects, lines, polys, arcs on hidden layers (View -> Visible Layers) not selectable by area or by mouse click 2020-11-16 01:28:19 +01:00
Stefan Schippers 957b9888d1 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 2020-11-03 12:10:55 +01:00
Stefan Schippers 679348b7f8 "Delete files" menu command added 2020-10-24 23:46:19 +02:00
Stefan Schippers 367810f6dc add some hideen commands in menu: "place net label(2)", "highlight net/pin name mismatches of selected instances", "Flip", "Rotate" 2020-10-24 23:00:41 +02:00
Stefan Schippers 6d4c8881f2 regression fix: unselect all when placing a component, to avoid dragging selected stuff with the new object 2020-10-24 20:06:42 +02:00
Stefan Schippers 7e845db5df exampels/poweramp.sch and examples/cmos_example.sch show how to use dynamuc ngspice simulation data backannotation, optimized fix of previous bbox bug 2020-10-20 19:48:59 +02:00
Stefan Schippers c90f188703 do not call calc_drawing_bbox() on monster schematics as it takes more time than just drawing the viewport 2020-10-18 13:53:58 +02:00
Stefan Schippers 55723e9429 line width is related to the schematic, so it is moved under xctx; removed all integer versions (lw, bus_width) that needed to be kept in sync, created two macros to get the integer values from xctx->lw. main window save_pixmap is preserved when doing a schematic preview in file open dialog, so no need to regenerate its content (with a draw() call) after preview. 2020-10-17 00:53:19 +02:00
Stefan Schippers e7928727d6 all xctx context is now a dynamically allocated structure; no observable performace impact 2020-10-15 17:39:21 +02:00
Stefan Schippers c87f44a441 added "xchem load_symbol" command to load a symbol without binding to any instance, text edit attribute "Load" button will start in "$current_dirname" 2020-10-15 15:37:06 +02:00
Stefan Schippers e82f270f61 replaced @ character with ? for spice netlist node multiplicity tags, so translate() will not try to expand them, do not print erc warnings for "non electrical" symbols (architecture, package, port_attributes, use, etc), print_spice_element() result string will be forwarded to translate() if enclosed within tcleval(...), so all @vars will be expanded. translate() in turn will forward to tcl_hook() if necessary. 2020-10-14 23:15:05 +02:00
Stefan Schippers 64c0abc58e code refactoring (global context in Xschem_ctx), "New Schematic" or "New Symbol" will set netlist_type to "spice" or "symbol" respectively 2020-10-12 13:13:31 +02:00
Stefan Schippers 32f85ac4f4 do not force a full hash_wires() on every net insertion; code formatting 2020-10-11 13:08:32 +02:00
Stefan Schippers 4d0a3d8f7c allow probing to gaw current in voltage sources in addition to ammeters 2020-10-09 22:19:54 +02:00
Stefan Schippers 0f61e0fe0f JL fix regression for path resolution on windows, Esc resets manhattan_lines setting 2020-10-07 16:12:33 +02:00
Stefan Schippers 82051a33e5 simplify / break down complex expressions for code readability 2020-10-05 03:00:40 +02:00
Stefan Schippers 3060217aec simplified complex logical expressions on symbol type by using macros 2020-10-04 19:53:09 +02:00
Stefan Schippers 39cd1a77ed fix a regression in delete(): instance hash was not updated. removed some redundant drawing in copy operations 2020-10-03 04:33:52 +02:00
Stefan Schippers 5b72e307df fix erroneous slotted instance recognition (confuse U2[3:0] with U3:2) in translate(), breaking in some cases the "net name on instance pin" feature 2020-10-03 01:13:35 +02:00
Stefan Schippers 6805335a09 regression fix: correctly hash new wires when inserted 2020-10-02 16:12:08 +02:00
Stefan Schippers 8807c7250d various graphic rendering fixes for the new "view instance pin net names" function. Fixed some errors in merge schematic in callback.c and paste.c 2020-10-02 03:21:22 +02:00
Stefan Schippers d706e45987 set max width of .c files <=130 chars; Fix netlist regression: if no "lab=value" is given in instance attributes get lab from symbol "template=" string. This was commented out recently and now reverted back. "View->Enable show net names on symbol pins" global menu added: if unset no symbol pin net names will be shown regardless of instance/symbol "net_name=true" and pin @#n:net_name attributes. 2020-09-30 23:55:07 +02:00
Stefan Schippers 91e74fadcb "@#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 2020-09-30 00:30:48 +02:00
Stefan Schippers ebdd4e827c read_line() function improvements, "]" tag recognized also if there is garbage following it 2020-09-28 08:35:00 +02:00
Stefan Schippers 5e85a87545 Alt-b command toggles bounding box view: 0: view all, 1: bbox view for subcircuits, 2: bbox view for all symbols. 2020-09-25 00:23:34 +02:00
Stefan Schippers 5186d3b92c avoid var declarations after statements (C89 warning) 2020-09-22 21:12:09 +02:00
Stefan Schippers 5e98241df1 NumLock and CapsLock check for windows 2020-09-22 21:02:51 +02:00
Stefan Schippers 4a38af8535 better capslock and numlock status detect and report in statusbar 2020-09-22 15:47:53 +02:00
Stefan Schippers 5b9d1091b2 print red message in status bar if caps lock set 2020-09-22 14:22:59 +02:00
Stefan Schippers 82451fd50e "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) 2020-09-22 13:35:55 +02:00