diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..6ebd9c18 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,2 @@ +Stefan Frederik Schippers +stefan.schippers@gmail.com diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..d511905c --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/Changelog b/Changelog new file mode 100644 index 00000000..ea8a60a5 --- /dev/null +++ b/Changelog @@ -0,0 +1,1269 @@ +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 .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) vs user set net names (net) +- 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 " 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 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 +- preview window when opening files - inserting components. +- add --tcl command option to execute tcl commands before +- ngspice raw file to vcd converter so gtkwave can be used for analog sims +- file browser is a paned window (left: dirs, right: files). Remember window size and pane position across invocations. +- newly inserted symbols now immediately start following the mouse +- devices/symbols changed putting all pinnumber texts to layer 13 so they can be disabled + +2.9.5_RC1 +- added comments in xschemrc for new available options (tk_scaling and enable_layer() ) + +- open file dialog: better panedwindow sizing + +- New menu entry View->symbol visible layers, can be used to turn off certain layers (example: pin red boxes) +- tk_scaling tcl variable can be set in xschemrc to change the default scaling of fonts based on dpi setting, + use a value slightly lower or greater than 1.0 + +- eeschema extension: allow DQ[31..0..X] to expand one out of X bits: DQ[7..0..2] --> DQ7,DQ5,DQ3,DQ1 + +- fixes, highlight instances if 'highlight' attribute set to true in sym + +- symbols with global attribute 'highlight=true' will be highlighted when one of the attached nets is highlighted. Used for bus rippers. + +- FIX: long long standing bug in bbox calculation that could leave some garbage on screen +- New eeschema-like bus notation DATA[0..3] expands to DATA0,DATA1,DATA2,DATA3, this differs from + xschem standard notation DATA[0:3] that expands to DATA[0],DATA[1],DATA[2],DATA[3] + Complex notations allowed like DATA[0..3],2*DATA[7..4],CS,CLK,RST,VCC*3 for funky bundles + +- better bus connector shape + +- better tedax netlist (handle escaped spaces in refdes) + +- Improved bus drawing (better zoom scaling) + +- rotate/flip multiple selected instances in place around anchor points. (Alt-R, Alt-F) +- 'Search and select' function enabled for lines and rectangles in addition to instances/nets. + +- added installation of symgen.awk, Esc key reactivates screen redraw if for some reason no_draw was set to 0 + +- added ngspice backannotation of operating point into schematic + +- fixed sample circuits, some symbols were screwed out... + +- add 'xschem getprop instance_pin ' to report back pin attributes. + +- symgen.awk: options --auto_pinnumber and --hide_pinnumber, various minor cosmetic fixes + updated symben tutorial accordingly + +- Tutorial page on xschem's symgen.awk + +- symgen.awk: processes djboxsym .symdef files (with some extensions) to produce xschem symbols + +- global=1 attribute in global pin symbols (vdd.sym, gnd.sym) changed to global=true. + +- better memory check in debug mode for discovering leakages/stale pointers, +- fixed crashing bug if user deletes 'lab=' attribute from a label. If this happens get lab attribute from template string in symbol + +- test schematics for XSPICE (ngspice) tests + +- symbols saved. File updates (1.1 version) + +- Better token substitution: @token\blabla; backslash can be used to indicate + end of token to be substituted if no separator can be used. + documentation updates (new attributes) + +- all functions to create pins from highlight nets, create schematic from symbol, attach labels to instance now work in +indirect library reference mode (devics/ipin.sym) and in direct reference mode (ipin.sym) + +- fix bug in search_inst() where wires were searched by substring matching instead of exact label matching. + +- implement 'select_connected_nets' in event reporting + +- new 'Alt-K' command to select all nets attached (or with same label) to selected ones. + +- more comands added to the event reporting mode (--events) + +- created new symbol netlist_options.sym in devices/ + this will be used to set netlisting options. + currently supports attribute bus_replacement_char for changing + subscript characters ([], <>) for bussed signals. + example: place netlist_options.sym, set attribute: bus_replacement_char="xx" to avoid + bracketed signal indexes + +- logic and xspice primitive cleanups + +- added dac_bridge to XSPICE primitives (NGSPICE <-->XSPICE logic Interface) +- nand gate (nd2.sym) works without schematic in all 3 circuit netlisting modes. + +- use 'bus_replacement_char' specified in xschemrc only for spice netlisting, + since VHDL and Verilog work just fine with standard xschem bus notation. +- logic/test_ngspice.sch showing for the first time a digital gate (NAND) + simulated in NGSPICE using the digital XSPICE subsystem. This enables + the same circuit to be simulated in Verilog, VHDL and NGSPICE with no + modifications. + +- fix regression causing segfault introduced in netlist.c at rev 273. (selection when symbols with generic vhdl pins are present) + +- added behavioral ngspice source + +- added XSPICE primitives + +- start implementing ngspice digital primitives using the XSPICE subsystem + +- add xschemrc variable bus_replacement_char to change default bracket notation + for bussed spice signals: DATA[7] --> DATA<7>, by adding: 'set bus_replacement_char {<>} in xschemrc +- changes in logic sample symbol library + +- added arbitrary width register to logic sample library, works in VHDL and Verilog. + +- better relative/absolute path heuristics, example schematics minor fixes + +- added ram model (vhdl and verilog) to logic library + +- fixes in vhdl post processor for initialized std_logic_vector types (put correct quotes) +- additions in logic/ library + +- add logic library with some simple gates what work both in verilog and VHDL sims +- Still incomplete but functional. + +- avoid netlisting vhdl 'time' parameters (generics in vhdl slang) when doing verilog netlists. + +- fix crashing bug when doing netlists ( unselect_all() done after remove_symbols() ) + +- Added tutorial on bus notation + +- avoid reentrant invocaktion of 'Place symbol' via menu. + +- DOC- added tutorial on symbol library paths + +- improvements in load file selector, some fixes when resolving symlinked libs + +2.9.2 +- Misc small bug fix of 2.9.1 + +2.9.1 +- export png / svg / pdf: ask file name dialog +- edit property dialog on selected symbol shows absolute directory + the symbols comes from +- more keysym definitions (Insert, Delete, F1-F12) to be used in + replace_key array for custom keybinding +- better relative / absolute path handling +- Custom pinlist (@@pin1 @@pin3 @@pin2) can be used + also for symbols with associated schematic (type=subcircuit) +- remote xschem control commands and event reporting (--events option) + this will be used for backannotation / 3rd party tools integration + +2.9.0 +- 1.1 file format allowing symbol names without implied '.sym' + +Detailed changelog: + +- template symbol name set to x1 instead of x0 (newly placed subcircuits will be + named x1, x2, ... instead of x0, x1, ...). + +- prepare instdef[].flags for additional flags (not only EMBEDDED flag) +- update filename shown in status line after a 'save-as' + +- Fix- edit in new window (alt-E) erroneously opened symbol view + +- fix change symbol not detected (proc edit_prop) + +- fix edit symbol property, symbol was flagged as changed even if no changes were done + +- starting event reporting features +- example files migrated to new format + +- index updated + +- remote 'xschem saveas filename' +- scheleton for xschem remote control docs + +- added 'xschem zoom_selected' and 'xschem zoom_hilighted' to focus on selection or probed nets/insts +- added 'xschem zoom_box x1 y1 x2 y2 magfactor' + +- Various fixes of regression introduced since 'filenames' merge +- automatic schematic generation from symbol +- generating pins/labels from highlighted nets + +- cleanups in the xschem tcl query interface +- cell:: prefix (replacing old cell__) used to query symbol attributes (example cell::template) +- xschem search function: exact search or regex search (exact replaces substring search) + when doing a selection there is no more implied highlight + +- fix: add_ext() incorrectly searched for first occurrence of '.' instead of last +- attach_labels_to_inst() updated to new symbol naming scheme (true label name with .eym extension) + +- regression fix- highlight parent nets when returning from hierarchy was broken. + +- [scconfig] -Add: enable xcb only if cairo-xcb is also detected + +- proc edit_prop, fix symbol variable assignment + +- correctly print relative path (wrt XSCHEM_DESIGN_PATH) of current schematic + in status bar/title symbol/window title. + +- changing symbol name with edit property + copy file now does not assume .sym extension + "schematic" attribute in symbol tells which schematic to load when descendig, as opposed to default symname.sym + +- [scconfig] -Tune: line up help texts + +- [scconfig] -Add: include generic scconfig help + +- Fix: C doesn't allow indentation before preprocessor tokens + +- fix descend to symbol + +- merged in branches/filenames --> 1.1 file format + +- doc updates (faq) + +- fix rev numbers, comments on some xschemrc options, +- some default config changed (enforce different refdes on placed components, + do not pop-up the directory list chooser when adding components, go + straight with file selector). + +- better opin / iopin regex matching + +- Compatibility - quote { and } in regular expressions as they are metacharacters + +- make_sym.awk: fix schematic pin regex pattern, when .sym is saved for pin references. + Thanks to Curt for pointing out the issue + +- enabled Undo/Redo Edit menu entries + +2.8.4 + +avoid printing spice_ignore, tedax_ignore or vhdl_ignore as parameters in verilog netlists. +merged in some changes from branches/filenames +print timescale / preprocessor directives in hierarchical sub-modules too. +better verilog preprocessor implementation +added devices/verilog_preprocessor.sym for placing arbitrary code at beginning of verilog netlist +make lib selection optional by setting 'use_list_dirs' in xschemrc +utile: use Z capable stimuli only on signals where Z states are used. +use return value for checking errors in system(), freopen(), getcwd(). +propdel svn:executable +chmod -x on src/utile/utile.txt - updated doc link in README +xschem scripting additions and optimizations +removed outdated info from help file +doc typos + +2.8.2 + +faq about automatic rename / allow duplicate refdes. + +remove references to 'Shift-J' in docs (removed messy code), better appearance for 'list_dirs' dialog. + +added License/Copyright info for scconfig (GNU LGPL2). + +no save schematic before editing disk file - this is +an expert command so user should decide himself what to do. + + +2.8.2_RC4 +removed gensch procedure (create sym from pinlist, un-maintainable mess) + +do not print 'conn' lines for unconnecteds in tedax netlist + +Edit -> Push Symbol menu was not functional. + +fix segfault when placing symbols with off-bound @#: attributes (n referencing a non existent pin) + +allow/forbid duplicated refdes, highlight/rename duplicates, directory chooser when inserting symbols + +xschemrc variable 'disable_unique_names' may be set to 0 in xschemrc to forbid duplicated refdes +- default is to allow duplicates (1) +- menu 'Highlight -> (Highlight|Rename) duplicate instance names' can be used to flag / correct duplicate names. +- when inserting components (Insert key) present a list of directories to start fileselector from. + +disabled all testmodes + +align to grid function: for pin objects align the center point of the rectangle instead of the (x1,y1)-(x2,y2) points. + +Create symbol tutorial in xschem docs + +alert if trying to open non existent symbol + +allow @#drain:pinnumber to be used in sybols to print 'pinnumber' attribute of pin with 'name=drain' in addition to +@#3:pinnumber (print 'pinnumber' attribute of 3rd pin of symbol) + +removed 'string cat' as it is a tcl8.6 addition (not needed anyway) + +Add $DESTDIR prefix to system_library_dir in Makefile.conf.in as it is used in trunk/xschem_library/Makefile to install files. + +--plotfile on cmdline to specify image export output file. Valid for all formats (png, svg, pdf) + +calculate correct line widths before rendering to screen / plot images + +fix: start numbering new instances from 1 instead of 0 +xschem.1.in manpage and expand $PREFIX + +fix rotate /flip without moving when multiple objects selected. +(in this case do not rotate individual objects around their anchor points) +doc fixes + +doc and symbol updates + +Allow pinnumber(name) in instance attributes to change symbol pinnumber, +in addition to pinnumber(n) where n is xschem pin index number. Syntax changed from pinnumber_n. + +Allow mouse panning schematic while editing properties. +Do not allow some command nesting combinations that could be dangerous. + + +Tutorial on creating a simple schematic and running a simulation with ngspice +Some fixes on UI (bindkeys) + +generic, 'light' models created for testing tedax moved from pcb/ to devices/ + +added @spiceprefix to symbols that might need a different spice prefix +if spiceprefix unspecified at instance level no change wrt previous behavior. + +netlist_dir default set to '.' (current directory, where xschem is launched) if not defined in xschemrc + +option -o (--netlist_path=) can be used to set output netlist *directory* with cmdline + +Token subsitution now correctly replaces @token1@token2 with their values +(no separators needed, second @ is an implied token separator and next token start) + +allow set / change selected attributes on multiple wselected ires/rects/lines + +leave post mortem shell open in case of ngspice fatal errors, in interactive ngspice sims. + +trunk/utile dir moved under trunk/src/utile so it will be in the same +relative position wrt XSCHEM_SHAREDIR whether xschem is run from +build trunk/src directory or after installation. + +make uninstall fixes. + +2.8.2_RC3 +- commercial simulators/viewers not available in xschem menus if their + *_path variables not defined in xschemrc. Better quoting for allowing filenames with spaces +- removed potentially proprietary models from example schematics. +- copyright info updated to 2019 +- objects can now be flipped/rotated (R,F keys) without initiating a move operation. +- Right mouse button brings up edit attributes of object under mouse, + ctrl-button1 unselects object, ctrl-shift-button1 drag unselects by area + netlisting mode shown in status line, no more alert box when switching +- fix some inaccuracies in menu keybindings +- doc cleanup, added first annoying FAQ: http://repo.hu/projects/xschem/xschem_man/faq.html +- step-by-step tutorial for installing xschem: http://repo.hu/projects/xschem/xschem_man/tutorial_install_xschem.html +- xschemrc comments and sample lines aligned to current xschem behavior + +2.8.2_RC1: +- improvements of xschem TCL API for backannotation +- refdes (instance name) automatic numbering starts from 1 instead of + 0 (D1, D2, ...) +- ngspice integration +- documentation updates +- save only one copy of embedded symbols even if multiple instances of it have the + 'embed=true' attribute set +- allow arbitrary spaces around '=' in attribute assignments + (name = x1 footprint= TO220 model= IRF540) + +- '.' in path search list is now the location of the containing schematic, not the + directory from where xschem was launched (thanks to Igor2 for consulting). +- Default search list if running xschem from build directory is + '.:/xschem/trunk/xschem_library/devices', so all examples will run out + of the box with no config file tweaking. +- tedax netlist: instance property 'pinnumber_n' where n is the index of pin (0, 1, 2, ...) may override pin 'pinnumber' + of symbol pin with index 'n' +- tedax netlist: instance property extra_pinnumber="idx1 idx2" may override symbol inherited + connections (usually supply and ground pins for slotted devices) +- improvements and cleanup in xschem query language (xschem pinlist) +- print index number (order in xschem array) of selected objects + in status line +- version info added as first line when saving .sch/.sym files. + v {xschem version=2.8.2_RC1 file_version=1.0} + for now no checks are made when loading files, version string from file + is just stored for later usage. +- documentation updates, example files updates, variable expansion in launcher() + so XSCHEM_SHAREDIR and HOME can be used in url attributes +- fullscreen moved from options to View menu, more appropriate. +- make default compile time XSCHEM_LIBRARY_PATH definition available + to xschemrc so a directory can be prepended or appended to it +- replaced execlp with execl everywhere +- hooks.c: default to ~/.xschem/xschem_library if no --user-lib-path given in configure. +- examples/diode.* renamed to examples/diode_1.* to avoud clashing with devices/diode.sym. +- If no search path (XSCHEM_LIBRARY_PATH) defined in xschemrc default to compile time + with '.' prepended +- Template xschemrc with better comments by Richard Lucassen (thanks!) +- xschem_library/Makefile: use $system_library_dir for system libraries (devices) + +2.8.1: +- connecting dots are highlighted together with the hilight net. +- avoid shebangs when launching scripts, rely on host PATH variable + to lookup the correct (awk) interpreter +- extensive debug to catch and fix memory leaks / pointer deallocation +- search function improved, if empty value is given then look + for objects that *have* search key in property string. +- 'DELETE' attribute can be used to erase an attribute from a + multiple selection of etherogeneus objects, if 'preserve unchanged props' + is enabled. +- Added a 'dim color' slider (View menu) to adjust brightness. +- xschem - tcl API improvements for spice operating point current / voltages backannotation +- ability to do block deletion of a specific set of attributes on selected set + (set attribute values to 'DELETE') +- when drawing selected elements do not display bbox of empty symbol strings +- xschem tcl API improvements: + * xschem set no_draw 1|0 --> used to disable screen redraw, to speed up complex scripts + * xschem set no_undo 1|0 --> used to disable undo, to speed up complex scripts + it is wise to do a 'xschem push_undo' before doing this + * xschem get expandlabel --> expands bus notation: + example: xschem get expandlabel S[4,2:0] will return S[4],S[2],S[1],S[0] 4 + that is the expanded bits and the number of bits. + * xschem get sch_path --> return the current hierarchy path: + example: xinput.xreg.xlat + * subst_token() now allows to set a token to an empty value (new_val="") or delete the token + (new_val = NULL) +- tcl command 'xschem set renumber [1|0]' allows to do automatic renumbering + of instance names (refdes) when loading schematics with duplicated inst names +- View->Change current layer color' menu added allows to change layer colors + changes are saved in ${USER_CONF_DIR}/colors +- added '--rcfile ' for custom rc file loading +- 'about xschem' dialog added +- add '*' in window title bar / icon when schematic is in modified state and need save +- default file name to 'untitled.sch' when creating a new schematic +- long option syntax (--version etc) +- make xschem compile with std=c89 -pedantic + no snprintf(), no // comments, no VLAs, no getopt(), no strtok*() +- cirles / arcs in pdf / svg export +- option for in-memory undo in addition to file backed undo (#define IN_MEMORY_UNDO) +- Menu 'Tools->Remember last command' and 'set persistent_command [1|0] in xschemrc + to repeat last wire/line command just with a mouse click +- removed copyrighted material (sample spice models) +- keybinding changes: Corl-Q for exit, Ctrl-N for 'New schematic' +- better checking on malformed input (discard vs crash) +- Menu command Tools->Join/Trim wires (remove overlapping wires, join parallel wires etc) +- Menu command Tools->Break wires (break wires at component pins, or 'T/Y intersections) + this will work on *selected* wires. + +2.8.0: +- Added scconfig configuration, build and install system for automatic + library / features detection. +- Connection dots are automatically added to T, or Y type net intersections +- renamed user configuration files: from ~/.xschem to ~/.xschem/xschemrc + +2.7.0: +- some fixes in library path management (abs_sym_path and rel_sym_path in xschem.tcl) +- documentation updates on required -dev files, libfl-dev and cairo2-dev +- documentation updates on open/closed polygons +- embedded symbols, (embed=true attr on instances), documentation updated. +- Status bar grid entry configured as disabled as it is output only +- make xschem accept some malformed input files, like T{} ... or leading spaces before element tags. +- code in place for command to cut wires at instance pins and intersections +- created iterator function for spatial wire & inst hash tables to avoid + code duplication +- removed exec flag on all doc/ files, moved xschem.html to index.html +- keep calculating bbox for unusually big texts, even if these text are not + displayed being fonts too big (crash on old cairo libs) +- corrected menu accelerators shown for zoom / unzoom. +- unzoom_nodrift tcl variable can be set to 1 or 0 to produce slightly + different unzoom behaviors. +- flush arc drawing routines (draw[temp]arc(END,...) in addition to lines + and rectangles when doing selections /hilight. (forgotten since arcs + were introduced). +- nets are drawn after the other elements so they are always on top. +- new xschem TCL commands + - xschem setprop instance x25 w 55 + replaces property w of instance x25 with new 55 value + - xschem setprop instance_n 123 w 55 + same as above but indicate instance number (position in inst_ptr array) + - xschem replace_symbol instance x25 .../../new_symbol.sym + replaces symbol of x25 + - xschem replace_symbol instance_n 123 .../../new_symbol.sym + same as above but indicate instance number (position in inst_ptr array) +- new commandline option '-i' to tell xschem not to load init files (xschemrc and .xschem) +- order coordinates before storing nets in load_wire(), + for some reason this trivial thing was missing +- drawing glitches fixed + +2.6.8: +- Pressing 'space' while drawing a net or a line switches between horizontal-vertical + manhattan path, vertical-horizontal path or oblique path. + +2.6.7: +- in 'persistent command' mode wire or line placement continues after a double click + so it is possible to place multiple unconnected nets / lines +- no more dialog on grid change. grid is shown in status bar + +2.6.6: +- double click to terminate a polygon placement +- unzoom and zoom now correctly unzoom/zoom around the mouse pointer with no drifts +- ordered menu items in window so using keys switches menus in a predictable way +- Double click no more brings up edit property dialog, control-double-click is needed. +- 'persistent command' checkbox in Tools menu, if checked LINE and WIRE placement continues + until an Escape or a double click is given. Default value can be set in .xschem rc file. +- line clipping now clips lines to window size and not to currently set bbox. This avoids + off by one pixel calculations leaving garbage on screen in some cases. + +2.6.5: +- Added arcs / circles. + Arcs are started with the 'Shift-C' key, while circles are entered with 'Ctrl-Shift-C' + +2.6.2: +- Open polygons are now supported +- Button3 for terminating an open Polygon placement +- Return key for terminating a close polygon placement + (this can be done also by clicking the last point on the first polygon point). +- some drawing fixes when highlight nets are shown. +- Waves, Simulate and Netlist menu buttons with borders so they look different + from menu entries. +- Merge schematic (copying across different xschem instances) was not cacihng correctly + the 'fill attribute for polyons. +- save/load widgets: no change initial dir if user cancells action +- 'button' look for 'Netlist', 'Waves' and 'Simulate' menu buttons. + +2.6.1: +- remove copying .xschem into home directory from the Makefile, this was + only for testing and if not properly configured will cause xschem + to look in the wrong places for schematics + +2.6.0: +- small change in Makefile: when doing 'make install' copy also sample .xschem in $HOME/ + so installation will be ready to use without user having to manually setup the .xschem + file. +- Documentation updates +- Makefile passes PREFIX and XSCHEM_DESIGN_PATH cpp variables to xschem + for default path setting +- small bug fixes on the new drawing mode: + pixmap -> 'XCopyArea' -> screen +- xinit.c sets empty XSCHEM_DESIGN_PATH before reading startup files (xschemrc and .xschem) + so variable can be appended without complains from the tcl interpreter + (variable non existing) +- allow direct execution of xschem from within the src/ directory for testing purposes. + removed special startup handling if xschem run from the parent of src/ dir. + +--- + +- xschem now understands a list of directories for symbol files, this list is set + as a colon separated list of paths in XSCHEM_DESIGN_PATH. + this tcl variable may be set in the .xschem or system xschemrc files, or via env variable. + if no setting is done then xschem uses the compile time default, unless it is started + from a source build directort (see below). + the old XSCHEM_DESIGN_DIR (now deprecated) is still understood by xschem, this variable + may specify only one directory. + +- reverted previous change 'tcl current working dir changed to directory of + loaded schematic', not necessary and dangerous as it makes xschem + behaviour unpredictable. + +- Makefile variables passed to XSCHEM: + PREFIX: root directory of xschem installation + (example: /usr , /home/user) + SYSTEM_LIBRARY_PATH: system-wide directory of xschem symbols / schematics + (example: $PREFIX/share/xschem/xschem_library ) + USER_LIBRARY_PATH: directory of user schematic / symbol files + (example: $HOME/xschem_library) + +- xschem reads first xschemrc file in system xschem directory (.../share/xschem/xschemrc) + and then .xschem in current directory or in home directory. + +- *NEW* drawing model (enabled by default) that avoid drawing to window, draws only to save + pixmap, using XCopyArea to paint the screen. This avoids flickering when moving/zooming + or panning the schematic. Previous drawing model (still available via menu) used + to draw both in window and save pixmap. Depending on X server performance choose the + method that runs best. +- bug fixes in 'create symbol from schematic' + +- startup sequence of xschem: + * look for XSCHEM_HOME_DIR from environment variables. + + * else if there is ../src/xchem.tcl with respect to current dir and + ../xschem_library then we are starting + from a build directory, set XSCHEM_HOME_DIR to `pwd` and + also set XSCHEM_DESIGN_PATH to `pwd`/../xschem_library. + + * else if there is a PREFIX/share/xschem directory then set XSCHEM_HOME_DIR + to PREFIX/share/xschem. + + * source XSCHEM_HOME_DIR/xschemrc if existing. + + * source `pwd`/.xschem or $HOME/.xschem if existing. + + * if XSCHEM_HOME_DIR not defined --> error and quit. + + * look for XSCHEM_DESIGN_PATH from environment variables. This will override any + value given in xschemrc and .xschem startup files. + + * if XSCHEM_DESIGN_PATH undefined set it to compile time default provided by Makefile: + xschem_library_path. + + * source $XSCHEM_HOME_DIR/xschem.tcl. + + * start loading user provided schematic file or start with empty window (or filename + specified in XSCHEM_START_WINDOW tcl variable). + +--- + +- all string args passed from C to tcl encloded in {} braces to allow spaces + in file and library names +- tcl current working dir changed to directory of loaded schematic to make relative symbol + resolution work the same regardless of the directory xschem was started from. + +--- + +- all path manipulation goes through tcl functions resolve_filename and abs_path_of_symbol, + no direct manipulation of XSCHEM_DESIGN_PATH in .c or .tcl files. + This is in preparation of multiple path list in XSCHEM_DESIGN_PATH, requiring + changes only in those 2 functions. +- temp files for editing attributes with editor now in XSCHEM_TMP_DIR instead of XSCHEM_DESIGN_PATH + +--- + +- new_window(): if opening a schematic in a new window change .sym extension + to .sch extension, 20181006 +- get_resolved_symbol(): recognize parent dir and replace absolute path to parent dir with ../ +- load_inst() use get_resolved_symbol() to remove absolute paths when possible, 20181006 + +--- + +- XSCHEM_DESIGN_DIR renamed to XSCHEM_DESIGN_PATH as it should be a list of multiple + library paths to search for. +- created a small function, source_tcl_file() for sourcing tcl files and do error checking. + used to load xschemrc / .xschem / xschem.tcl files + +- look for xschemrc in {PREFIX}/share/xschem for system wide options, before looking in $pwd/.xschem + or $HOME/.xschem for user options. + +- look for xschem.tcl in $PWD or XSCHEM_HOME_DIR if this tcl var is defined (or env var defined) + otherwise source from {PREFIX}/share/xschem. + +- library directory renamed to xschem_library + +- if no .xschem is found and no XSCHEM_DESIGN_PATH defined set xschem symbol library to 'xschem_library' + in current working directory. (good for testing xschem builds before install) or in ../xschem_library + +--- + +- fixed an off-by-one error in selecting a random char from charset[] in random_string(), leading + to terminating \0 sometimes chosen as part of the random string. + +--- + +- tclsetvar() wrapper for all Tcl_SetVar() calls. +- ask_new_file() calls get_resolved_symbol(fullname) to reduce + filename to library/symbol if located in standard xschem library + or just symbol.sym if in current directory, in order to avoid + as long as possible absolute paths. +- xschem .selection and .clipboard files renamed to ~/.xschem_selection + and ~/.xschem_clipboard +- TCL XSCHEM_TMP_DIR created to indicate tmp directory (default /tmp) + this can be set in user's .xschem. +- store_polygon() was not propagating the .fill member from 'fill' property + this resulted in no fill pattern on polygons with fill=true property set + when changing polygon layer. + (store.c, 20181002) +- removed all strcpy() calls, use my_strncpy() + +--- + +- all Tcl_Eval(), Tcl_EvalEx() called with tcleval() that does error checking. +- all Tcl_GetVar replaced with tclgetvar. +- my_free() now frees the memory and sets ptr to NULL, called with &ptr. +- removed all sprintf, replaced with my_snprintf. +- remaining malloc()s replaced with my_malloc(). +- undo/redo handling now done with popen()/pclose() instead of pipe(), fork(), + dup2(), fdopen(), freopen(), waitpid(), for better portability. +- @#n:property syntax is accepted in print_tedax_element() for format string, + this allow to print in netlist attribute values specified on pins + @#3:pinnumber --> print 'pinnumber' attribute set for pin #3 of symbol. +- removed some variable length arrays in token.c +- tcl make_symbol fixed t work on schematics located anywhere in the filesystem + +--- + +- many static (char *name) pointers in functions replaced with + scoped arrays (char name[]) for efficiency reasons + path arrays are of type 'char filename[PATH_MAX]' +- added ability to load schematics and components located anywhere in the filesystem + for components the (libname/symbolname) is still supported but new syntax is + to specify relative or absolute names ([/][..../..../]symbol.sym) + if specified symbol is in the standard xschem libraries (XSCHEM_DESIGN_DIR) + it is converted to library/symbol: + Example: + /home/schippes/xschem_library/devices/npn.sym --> devices/npn + If a symbol located in the current directory is placed into the xschem window + all its path components will be stripped off: + Example: + /home/schippes/xschem-code/test.sym --> test.sym (if CWD is /home/schippes/xschem-code). + next feature (still tbd) will be to search a list of paths for sym libraries. +- more reliable detection of PWD and HOME (getcwd, getenv, getpwuid) +- cleanup in tcl save & load dialogs, now we only have save_file_dialog and load_file_dialog. + +--- + +- draw(): don't use spatial hash table for small schematics (<2000 instances, <2000nets). +- xschem now loads filenames with absolute paths, so any schematic (even outside + XSCHEM_DESIGN_DIR) can be given. +- less usage of strlen() reusing size information already available +- get_tok_value() sets get_tok_value_size to the size of the returned token value. + +--- + +- xschem now compiles with -std=c99 and +- double fork method to spawn a new xschem instance to avoid zombies +- all snprintf calls wrapped in my_snprintf +- rint() replaced with round() +- some // comments changed in /* ... */ +- my_strdup() returns size of dup'd string instead of void +- all strdup() calls wrapped into my_strdup() which in turn uses malloc() + memcpy() +- all strndup() replaced with my_strndup() which in turn uses malloc() + memcpy() +- all strcat() replaced with my_strcat() which uses realloc() and memcpy() +- all strcpy() replaced with memcpy() since size of src string is known. +- Corrected a long standing typo: FONTDESCENT+1i, where 1i is considered as imaginary number + Thanks to Ian Van der Neut for pointing out the problem. +- removed mkstemp, mkdtemp, replaced with self made create_tmpfile and create_tmpdir +- added '%option never-interactive' in parselabel.l so it avoids usig fileno() + which is not needed and creates portability issues +- cleanups in save/load/merge procedures + +--- + +- flatten.awk changed to awk hasbang script instead of sh --> awk + +--- + +- pass PREFIX and LIBRARY_PREFIX from Makefile prefix and library_prefix variables +- check if symbol pointer is set in spatial hash table drawing (draw.c, tag 20180921) +- added some const type declarators: + *bus_hilight_lookup(const char *token...) + const char *expandlabel(const char *s, int *m) + and other const declarations here and there +- save_ascii_string(): no trailing space added. +- load_symbol(): if symbol definition contains components link them with corresponding symbols + (although a symbol should not contain nets / components), tag 20180921 +- some comments / cleanups in xinit.c +- fixed menu accelerators shown in 'File' menu to reflect recent keybinding changes + +--- + +2.4.9: +- ability to swap mouse buttons using tcl key_binding proc + NOTE: it is not possible to replace Button1 since it is sent in Motion events as well. +- clear_drawing() did not delete spatial hash tables leading to segfaults when doing File-> New schematic +- swapped Button4/5 (wheel zoom) +- changed some key bindings to more standard values: + - ctrl-shift-s --> Save As + - ctrl-s --> Save + - ctrl-o --> Open + - ctrl-alt-s --> save as symbol + - shift-s --> change element ordering +- fill=true property for polygons to indicate fill is wanted + default polygons are not filled. +- tcl key_binding procedure allows to change/swap mouse buttons +- save.c: removed code duplication by creating a 'read_xschem_file() function that read files. +- removed some dead /commented old code +- get_tok_value(inst_ptr....prop_ptr, "name"...) replaced with inst_ptr[..].instname (20180911) +- fix crashing bug in hilight.c when instances with empty property string are traversed during a search + 20180906 +- new '@#n format allowed for referencing a net attached to a pin in symbol format strings. + This pattern can be used in 'format, 'vhdl_format', 'verilog_format', 'tedax_format' + global attributes of symbols. + This pattern is faster than the traditional '@@pin_name' syntax since xschem does not need to + search all pins in symbol for a name matching 'pin_name' + Example: verilog_format="assign @#2 = @#0 ;" + in this case @#2 expands to the net name attached to pin stored at position 2 (starting from 0) in xschem, + (that is the third symbol pin), @#0 expands to net name attached to first pin of the symbol +- do not print escaping backslashes in print_verilog_primitive, print_verilog_primitive, (20180911) +- new '#@n:pin_attr' format allowed in text objects placed in symbols, this will expand + to the value of attribute 'pin_attr' stored in the property string of the 'n-th' pin of symbol. + Example: @#0:pinnumber + if pinnumber of pin 0 is defined as 'pinnumber=1:4:9:12' and symbol instance name is 'U1:4' + xschem will resolve slot information (4) and replace the '@#0:pinnumber' with '12'. + this is used to correctly draw correct pin numbers for slotted devices. + +2.4.8: +- added (experimental for now) tEDAx netlist export, this is a netlist format that + the pcb-rnd printed board editor understands. + sample test schematic included in the source distribution (pcb_test1.sch) +- better lookup of spice_ignore, verilog_ignore and vhdl_ignore for netlisting, + after looking in instance properties look also in symbol definition. +- fixed a bug in TCL savefile procedure, where it refused to save a schematic + in a library pointed to by a symlink +- Escape key no more closes a property edit dialog (proc text_line) if something has been written + into it. + +2.4.5: +- 20180208 fix crashing bug: delete node info if changing symbol + if number of pins is different we must delete these data *before* + changing ysmbol, otherwise i might end up deleting non allocated data. +Stefan, 20180417 + +2.4.4: +- improvements in spice.awk, do not clobber with user defined code +- re-enabled backing store, (xserver takes care of saving obscured window portions) + this was disabled to ensure correct response of XSCHEM to expose events after + some changes in the drawing engine. +Stefan, 20180203 + +2.4.3: +- devices/code.sym component added: this component has a 'value' property that may be + used to place arbitrary code (spice/verilog/VHDL code) into a schematic. Multiple + 'code.sym' components may be used, their 'value' properties will be concatenated + into the resulting netlist. code may be entered by editing the value property + with + +2.4.2: +- delete objects (mainly for text) before overstriking with hilight color, this avoids + ugly character borders of hilighted texts (antialiasing presumes you draw text + on empty background) +- small bug fixes of regressions introduced by previous commit + +2.4.1: +- spatial hash iterator added in drawing engine when the viewing area is small compared + to the total area of a freaking big schematic; using spatial hash the lookup of elements + (instances and wires for now) that are in the viewing area is *much* faster. + so we avoid lot of clip checks on the whole wire[] and inst_ptr[] arrays. + When a full zoom is done (viewing area is big) we return to normal loop + on the wire and inst_ptr arrays, since spatial hash gives no gain in this case. + (20180104) +- some small glitches about not drawing small objects (for performance reasons) fixed. + (20171206) +- some fixes in symbol editing: rename pins next to pin labels (20171221) +- fixed regresion in print_hilight_net() to recognize pin direction when creating pins + from hilight nets (20171221) +- allow multi-instance primitive format specifications (verilog_format prop) using the + #xxx#@name construct to build unique names for nodes and inst names, + as done for spice primitives + +2.4.0: +- some string overflow checks (schematic[]) +- major speed improvement in instance wiring tool ('H' bindkey) for multiple selected + instances. +- 'first_call' parameter in place_symbol() to speed up finding unique + instance name in case of multiple placements of the same type. +- 'drill through' option in net highlight, (ctrl-alt-k key) this command + will highlight a net passing through components with pins that have a + 'propagate_to' property set to the number of the pin to pass the + highlight to. + Example: + if pin #0 on a resistor has 'propagate_to=1' property set + then hilight net on pin 0 will propagate to pin #1. + the reverse propagate_to may be set as well. + + propagate_to=1 propagate_to=0 + pin #0 pin #1 + o---/\/\/\/\---o + +- correctly redraw selected objects when passing with selection rectangle + over already selected items +- select_text and select_wire now have 'fast' param to avoid drawing information + in window status line, this is used when doing block selection of multiple objects + to make the process *much* faster +- skip drawing symbols whose bounding box in current zoom factor <0.3 pixels. +- fixed some wrong bbox() usage in edit_text_property +- performance improvements in prepare_netlist_structs when called for highlighting nets +- fixed a regression in copy_objects of polygons +- 'xschem' tcl command: print error message if unknow subcommand given +- fixed some regression in partial rectangle selections (select_box() ) +- 'hash_prefix_unnamed_net' parameter in pin_node(), needed for correctly + hashing unnamed nets for 'drill' hilight. +- added 'unselect' radio button in instance search tool (ctrl-f key) +- added 'layer' and 'font' members to text struct, caching the respective + 'layer=n and font=string' properties, to avoid calling get_tok_value +- more flexibility in 'attach_labels_to_inst ('H' key), allow to wire all + selected instances without querying the user, option for user set rotated text +- performance optimization, do not call symbol_bbox on every full zoom +- create symbol pins from selected schematic pins (Alt-h key) +- Alt-s key (reload from disk) now correctly reloads symbol (.sym) file + if editing a symbol. +- fullscreen key moved to Alt-Shift-F +- added Alt-h and Alt-r keys to flip and rotate objects around their anchor points + while copying/moving +- performance optimization: skip drawing of objects that are too small in + current zoom factor. +- added command' xschem set no_undo [01]' to disable/reenable undo. +- performance improvements in wirecheck(), skip wires that already have a .node field +- renamed functions in netlist.c for better understanding +- performance improvement, simplified and almost eliminated use of hash_lookup function (token.c) + it is now used only to store instance names to allow collision checking in new_prop_string(). + hash_proplist() now only inserts instance name in hash table, rest of property string is skipped. +- new_prop_string, start checking from 0 instead of from 1 when looking for free instance + name slots (x0 instead of x1 as first free name for subcircuit instances, for example) +- xschem.tcl: refer to $HOME/.clipboard.sch instead of $PWD/.clipboard.sch + +2.3.7: +- do not recalculate symbol bounding box on any zoom / pan / draw operation, + do it when moving / changing props / deleting / loading / drawing selection. +- added a 'bus' int field in the wire struct, where the 'bus' property is cached + this avoid many get_tok_value() calls on every draw() call. +- fixed a regression introduced by [20171104] in subst_token() [20171201] + +2.3.6: +- some cleanups in the code, +- performance optimization, do not call symbol_bbox() in view_zoom and view_unzoom, +- dim and bright colors (+ and - keys) +- include/exclude background color in dim/bright operations (alt-c) +- cairo clipping implemented in bbox() so text will not be overstriked making it look bold + when placing and deleting objects that partially overlap text. +- Dirty hack in callback() (TURBOX_FIX) to work-around bugs in the Exceed + TurboX server. Include -DTURBOX_FIX in the Makefile if needed. + without this hack repainting the window with the save_pixmap (FillTiled fill style) + will sometimes not work, leaving garbage or empty areas. +- full precision in save operations (%.16g instead of %g), allowing *much* bigger + drawing areas to be saved and restored without loss of precision. + +2.3.5: +- proportional fonts now fully supported, text correctly aligned even on rotated objects +- postscript and svg print routines updated to render polygons. + +2.3.4: +- fix zoom full function, expecially when zooming back + from a very very deep zoom in. +- avoid calling cairo_text_extents() and cairo_set_font_size() for + extremely large characters (this happens when doing an extreme zoom in) + as this causes Floating point exceptions on older cairo versions +- enable constrained move (vertical/horizontal) when drawing polygons +- better text alignent on rotated objects, when non-zero cairo_vert_correct + parameter is defined in ~/.xschem +- lock hsize and vsize when entering text with cairo enabled, since there is + no option in cairo text for different x/y scaling. +- code cleanups + +2.3.3: +- do not try to draw polygons that are offscreen (discard by + checking bounding box) - faster and no arithetic int16 overflow +- copy /paste was not implemented yet for polygons - fixed. +- bug fix for copy/save to clipboard of polygons +- select_all() was not updated for polygons - fixed. +- fix an error in the tcl code that prevented saving to libraries + pointed to by symlinks (20171119 tag in xschem.tcl) + +2.3.2: +- added polygon graphic primitive in addition to lines, rectangles and text. + ctrl-w command or menu 'Tools-> Insert Polygon'. Operation is concluded by + closing the polygon, i.e. placing the last point over the first, or + by hitting the 'Return' key. +- added font="font name" property for text objects, allowing to change + font on specific text objects. Use only monospaced types, expecially + if you plan to rotate or flip the text, as bounding box calculation is not + accurate for proportional typefaces. +- performance improvement: do not call Fill drawing routines for shapes that + are on layers with no visible fill pattern defined. +- the 'set cairo_vert_correct x' (with x=positive or negative number) + can now be set in the .xschem file to any value, text bounding box is + shifted accordingly. This allows to change the vertical alignment of fonts + for best appearance. +- white and dark colorscheme toggle View->Toggle colorscheme, Shift-C key) +- added 'xschem toggle_colorscheme' command +- removed obsolete and deprecated Tcl_GlobalEval, replaced with Tcl_EvalEx +- Tcl_Eval()s referring to TCL global vars changed to Tcl_EvalEx, so we ensure the + script is run in the global scope. +- print error message if execution of xschem.tcl fails due to errors in the tcl code + before dying. this way we have a clue to fix the error. +- custom colorschemes can be set in the ~/.xschem file: + set cadlayers 22 + set light_colors { + "#ffffff" "#0044ee" "#aaaaaa" "#222222" "#229900" + "#bb2200" "#00ccee" "#ff0000" "#888800" "#00aaaa" + "#880088" "#00ff00" "#0000cc" "#666600" "#557755" + "#aa2222" "#7ccc40" "#00ffcc" "#ce0097" "#d2d46b" + "#ef6158" "#fdb200" } + + set dark_colors { + "#000000" "#00ccee" "#3f3f3f" "#cccccc" "#88dd00" + "#bb2200" "#00ccee" "#ff0000" "#ffff00" "#ffffff" + "#ff00ff" "#00ff00" "#0000cc" "#aaaa00" "#aaccaa" + "#ff7777" "#bfff81" "#00ffcc" "#ce0097" "#d2d46b" + "#ef6158" "#fdb200" } + +2.3.0: +- Antialiased CAIRO text for all XSCHEM elements!! + if variable HAS_CAIRO is set in the Makefile all text processing in XSCHEM + will be done using the cairo library. +- all text elements may specify a 'layer=' in the property string box + to specify a user layer color (instead of the default TEXTLAYER) to draw + the text. Available only if cairo fonts enabled. +- a new command is added: + xschem set cairo_font_name {} + will set the font to be used for text rendering. Use only monospaced fonts + to allow proper bounding box calculations. + Example: + xschem set cairo_font_name {DejaVu Sans Mono} +- various improvements in drawing engine (redraw selected elements on Expose events, + this is needed if the server does not provide backing store). +- configuration variables controlling cairo fonts, may be placed in ~/.xschem: + #### scale all fonts by this number + set cairo_font_scale 1.0 + #### scale line spacing by this number + set cairo_font_line_spacing 1.0 + #### specify a font (Use only monospaced fonts!) + set cairo_font_name {Liberation Mono} + #### lift up text by some zoom-corrected pixels for + #### better compatibility wrt no cairo version. + #### USE WITH CAUTION!!! big values cause text to + #### go beyond the calculated bouning box, leaving garbage + #### on the screen when moving objects/redrawing. + #### Useful values in the range [-1, 3] + set cairo_vert_correct 1 +- following commands added to xschem tcl command, to runtime change these behaviours. + xschem set cairo_font_name + xschem set cairo_font_scale + xschem set cairo_font_line_spacing + xschem set cairo_vert_correct +- various bug fixes due to *BIG* cairo commit. + +2.2.5: +- **LONG** standing crashing bug fixed in token.c --> subst_token(), causing + xschem to crash on unusually large token strings, this can happen if a generic + text file is loaded as a component property, instead of the usual + "name=xyyy tok1=val1 tok=val2 ..." property strings. tag 20171104 +- some other bug fixes (removed sprintf of a string into itself :-) ) +- when pressing the 'LOAD' button in tcl-tk text entries to load a file, + place the file starting at the cursor position instead of at the beginning. +- when an instance has empty property string do *not* preload the edit property text + widget with a copy of the property string of another instance found in the schematic. + This creates the illusion that the selected instance has a property string while + it does not. +- added @tcleval(<>) tag that can be used in 'format', + 'vhdl_format', 'verilog_format' strings to allow dynamic netlisting. + <> can be any valid tcl code, two variables are defined + in the script context: 'symname' and 'instname', these variables can + be used to query instance or symbol properties with the 'xschem' + builtin command. + in <> spaces and quotes must be escaped. +- Added 'xschem getprop' command: + * xschem getprop instance <> <> + returns instance property + example: xschem getprop instance m3 w --> returns mos width + * xschem getprop instance_n <> <> + same as previous, but use instance index number instead of name + * xschem getprop symbol <> <> + returns symbol property + example: xchem getprop symbol devices/nmos format + --> return format property string of symbol + * xschem getprop instance_net <> <> + returns net name attached to <> +- code cleanup (removed obsolete comments) + +2.2.4: +- Better drawing when selecting by area / unselecting by area. Selection drag + rectangle no more clutters the underlying already selected stuff. + When unselecting (Shift-right button drag) do a live update of objects as soon + as they get unselected. +- hilight_inside() function renamed to select_inside. the previous ambigous name + really pissed me off. +Stefan 20171027 +2.2.3: +- Added menu commands 'New Schematic'; and 'New Symbol' so the + 'current_type' global is correctly set for schematic or symbol + editing and saving. +- put global properties in G {} field when saving as symbol, take + global sym props from schprop, schvhdlprop, schverilogprop, the first + one that contains 'format=' or 'type=' fields +Stefan 20171025 +2.2.2: +- added easy keybind customization in the ~/.xschem init file. + See following examples: + ## replace Ctrl-d with Escape (so you wont kill the program) + set replace_key(Control-d) Escape + ## swap w and W keybinds; Always specify Shift for capital letters + set replace_key(Shift-W) w + set replace_key(w) Shift-W +- Documentation added for keybind customization. +2.2.1: +- some regressions in bindkeys fixed +2.2.0: +- Added description option -no-pie in Makefile. + if a profiled executable is needed '-no-pie -pg' must be given. + Position Independent Executable is now the default on Gcc, + but gprof will not work with this default. +- xschem will not descend or go up from a schematic hierarchy level + if it has been modified, the user wants to save changes but the + file can not be saved, due for example to permission problems. + In this case the user either needs to save to a different place + or say 'no' when prompted for save. +- bindkey 'W' 'show discrepancies of nets vs pin names on selected + instance' changed to 'X' +- added the 'snap wire' function (uppercase) 'W' bindkey, the wire + starts/ends from/to closest instance pin or net endpoint. +- fixes in the undo buffer, some actions were not undoable. +- bindkey 'H' for 'execute tclcommand or open file or + http link (tclcomand or url properties) changed to 'ctrl-h' +- bindkey 'h' for 'attach nets to instance pin' changed to 'H' +- added constrained horizontal ('h' key) or vertical ('v' key) + movement for wire, line, object copy/move. +- added menu entries for png/pdf/svg print, h/v constrained move, + collapse wires, snap wire creation. +- '-z' xschem option now works again, this will start xschem with + a rich rainbow colored layer set. +- Documentation updates. + +2.1.14: +- Documentation updated (component pin auto labeling) +- added option '-S' to launch a simulation in batch command mode: + 'xschem -q -n -s -S examples/poweramp' + will do a spice (-s) netlist (-n) and launch simulation (-S), then quits (-q) +- added option '-W' to launch waveform viewer + 'xschem -q -s -W examples poweramp' + will bring up the default spice wave viewer and quits. +- do not open a confitmation dialog asking to save if TCL 'xschem save' is given + This will allow to build tcl scripts without needing user confirmation. +- tcl command 'xschem select' now allows to select an instance by specifying its instance name + (instead of its numeric position into the inst_ptr array, still allowed) + 'xschem select xampli' + will select instance 'xampli' if found in current schematic +- Added #define __USE_GNU to allow usage of 'strndup' function (POSIX 2008) in older systems +- improvements on the 'create pins to selected instance' command ('h' key) + a dialog box asks if pins need to be prefixed with a string, also allow + to choose lab_pin or lab_wire net labels. +- Control-return and Escape bindkeys added to most toplevel dialog boxes + to allow quickly closing unwanted dialog boxes. +- devices/lab_wire library symbol flipped horizontally to align orientation with lab_pin +- documentation about automatic symbol generation +- added a 'Make schematic from symbol' (Ctrl-l) menu entry. + if one symbol is selected and this function is invoked (ctrl-l) + a schematic view (.sch) will be automatically created from the + symbol view. The schematic will only contain the interface + pins / generics (if any). This will overwrite the symbol schematic + view if it exist. A warning is issued requesting user confirmation. +- some cosmetic additions (dialog titles) in xschem.tcl +- fixed a crashing bug when the 'create pins from highlight nets' + (ctrl-j) is invoked after hilighting some nets and deleting a + subset of those. + +2.1.13: +- Added binding for the 'ghdl' free VHDL simulator, update your ~/.xschem file to + set pathnames and defaults. +- added a VHDL testbench ('loading') in the examples library to test ghdl +- small fixes in the 'vhdl.awk' netlist post processor + +2.1.12: +- fixed a bug causing incorrect VHDL netlist when bussed nets or bus slices are + connected to primitive VHDL symbols with behaviour described with vhdl_format. + Thanks to Svenn Are Bjerkem for reporting the problem. + +2.1.11: +- When saving a newly created schematic (a schematic never saved before) using + the 'File->Save' function, revert to a 'Save As' operation asking for a correct filename + Thanks to Svenn Are Bjerkem for pointing out the issue. + +2.1.10: +callback.c: +- filter out NumLock status in event processing (20170511) + Thanks to Saul Rodriguez for pointing out the issue. +- added 'Alt + Right-Mouse-Button' to activate the 'launcher' feature on + selected component instance (also bound to 'H' key) + +2.1.9: +- added 'propstring' search key to search patterns into the whole instance + property string instead of looking into single property tokens +- added the following instance properties: + - 'url' : specify an url to open when pressing the launch ('H') key on an instance + - 'program' : specify a program to use for opening the file (default if missing: + xdg-open) + - 'tclcommand' : execute a tcl script + these properties allow the creation of 'launchers', special instances that when + triggered with the 'H' key perform some actions (open documentation, datasheets, + view data, run special viewers, bindings to new simulators, ...) + the special 'launcher' component in the 'devices' library can be used for this purpose. + All these properties can be attached to any schematic component. +- fixes in the spice.awk netlister (20170407) fixed wrong netlisting for ammeters (current + probes) placed on bussed wires. +- token.c: get_tok_value: recognize escaped backslashes (\\), return single backslash (\) + in the value string. +- .xschem config file: removed 'hspicerf_simulator', 'modelsim_simulator', added + 'spice_simulator', 'verilog_simulator', 'finesim_path', 'finesim_opts' variables. + previously the default spice simulator was hspice and optionally hspicerf was used when + hspicerf_simulator was set to 1. This is unflexible, the new approach is to specify + the name of the simulator to use: (set spice_simulator hspice). + Same approach for the verilog simulator (set verilog_simulator iverilog) + Added finesim spice simulator (set the 'finesim_path' variable and set + spice_simulator to finesim). +- some cosmetic changes in the menus (radiobuttons for viewer/simulator/netlist format) + +2.1.8: +- Fixed a segfault regression, some minor fixes in the code. +- Fixed wrong search order of the .xschem file. The correct + behavior is to look in ${PWD} for an initialization .xschem + file, and then (if not found) look in ${HOME}. + Give up execution if ${HOME} is not defined. + +2.1.7: +- Fixes some wrong references to symbols in the provided example schematics +- Small documentation updates. diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..eabd1bec --- /dev/null +++ b/INSTALL @@ -0,0 +1,29 @@ +1. requirements + + - C89 compiler + - awk (tested with mawk and gawk) + - tcl/tk (tested with 8.4, 8.5 and 8.6) + - Xlib, Xpm + - bison + - flex + - optional: cairo (for fancier text rendering) + - optional: xcb + - optional: xrender + +2. compiling + + ./configure && make + + See ./configure --help for configure-time options. + +3. running from source (does not require installation) + + cd src && ./xschem + +4. installation + + make install + + or + + make install DESTDIR=/tmp/packaging diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..0c9d691c --- /dev/null +++ b/Makefile @@ -0,0 +1,34 @@ +all: FORCE + cd src && $(MAKE) + cd xschem_library && $(MAKE) + cd doc && $(MAKE) + cd src/utile && $(MAKE) + +clean: FORCE + cd src && $(MAKE) clean + cd xschem_library && $(MAKE) clean + cd doc && $(MAKE) clean + cd src/utile && $(MAKE) clean + +distclean: FORCE + $(MAKE) clean ; true + cd src && $(MAKE) distclean + cd xschem_library && $(MAKE) distclean + cd doc && $(MAKE) distclean + cd src/utile && $(MAKE) distclean + rm -f Makefile.conf config.h src/Makefile + cd scconfig && make distclean + +install: FORCE + cd src && $(MAKE) install + cd xschem_library && $(MAKE) install + cd doc && $(MAKE) install + cd src/utile && $(MAKE) install + +uninstall: FORCE + cd src && $(MAKE) uninstall + cd xschem_library && $(MAKE) uninstall + cd doc && $(MAKE) uninstall + cd src/utile && $(MAKE) uninstall + +FORCE: diff --git a/Makefile.conf.in b/Makefile.conf.in new file mode 100644 index 00000000..0d44b71a --- /dev/null +++ b/Makefile.conf.in @@ -0,0 +1,64 @@ +put /local/xschem/cflags [@ + @cc/cflags@ + @?libs/gui/cairo/cflags@ + @?libs/gui/xrender/cflags@ + @?libs/gui/xcb/cflags@ + @?libs/gui/xcb_render/cflags@ + @?libs/gui/xgetxcbconnection/cflags@ + @libs/gui/xpm/cflags@ + @libs/script/tk/cflags@ + @libs/script/tcl/cflags@ +@] + +put /local/xschem/ldflags [@ + @cc/ldflags@ + -lm + @?libs/gui/cairo/ldflags@ + @?libs/gui/xrender/ldflags@ + @?libs/gui/xcb/ldflags@ + @?libs/gui/xcb_render/ldflags@ + @?libs/gui/xgetxcbconnection/ldflags@ + @libs/gui/xpm/ldflags@ + @libs/script/tk/ldflags@ + @libs/script/tcl/ldflags@ +@] + +uniq /local/xschem/cflags +uniq /local/xschem/ldflags +gsub /local/xschem/cflags {\n} { } +gsub /local/xschem/ldflags {\n} { } + +print [@############################################################### +# Generated by scconfig - DO NOT EDIT - will be overwritten # +# Source: Makefile.conf.in; to regenerate run ./configure # +############################################################### + +PREFIX=@/local/xschem/prefix@ +CC=@cc/cc@ +CFLAGS=@/local/xschem/cflags@ +LDFLAGS=@/local/xschem/ldflags@ + +BINDIR=$(DESTDIR)$(install_root)$(PREFIX)/bin +SHAREDIR=$(DESTDIR)$(install_root)$(PREFIX)/share +DOCDIR=$(DESTDIR)$(install_root)$(PREFIX)/share/doc +XSHAREDIR=$(SHAREDIR)/xschem +XDOCDIR=$(DOCDIR)/xschem +MANDIR=$(SHAREDIR)/man +USER_CONF_DIR=@/local/xschem/user-conf-dir@ +SCCBOX=$(ROOT)/scconfig/sccbox + +## specify user schematic/symbol libraries; +## you may redefine it later in .xschem or xschemrc startup files +user_library_dir=@/local/xschem/user-lib-path@ + +## specify system-wide symbol libraries; +## you may redefine it later in ~/.xschem/xschemrc or +## `pwd`/.xschemrc startup files +system_library_dir=$(DESTDIR)$(install_root)@/local/xschem/sys-lib-path@ + +## default search path +xschem_library_path=@/local/xschem/xschem-lib-path@ + + +@] + diff --git a/README b/README new file mode 100644 index 00000000..3a6ae08a --- /dev/null +++ b/README @@ -0,0 +1,26 @@ +XSCHEM : schematic capture and netlisting EDA tool + +Xschem is a schematic capture program, it allows creation of hierarchical representation +of circuits with a top down approach . By focusing on interfaces, hierarchy and instance +properties a complex system can be described in terms of simpler building blocks. A VHDL +or Verilog or Spice netlist can be generated from the drawn schematic, allowing the +simulation of the circuit. Key feature of the program is its drawing engine written in C +and using directly the Xlib drawing primitives; this gives very good speed performance, +even on very big circuits. The user interface is built with the Tcl-Tk toolkit, tcl is +also the extension language used. + +DOCUMENTATION AND MANUAL + +http://repo.hu/projects/xschem + +BUILDING & INSTALLING + +Please read the instructions in file INSTALL. + +SUBDIRECTORIES + +doc: xschem homepage, reference manual and man pages +scconfig: the whole ./configure system (all dependencies included) +src: C source for the xschem executable and scripts for GUI and I/O +src/utile: stimuli generator/converter scripts +xschem_library: standard symbol libs and example libs diff --git a/XSchemWin/INSTALL_WIN b/XSchemWin/INSTALL_WIN new file mode 100644 index 00000000..13157283 --- /dev/null +++ b/XSchemWin/INSTALL_WIN @@ -0,0 +1,15 @@ +1. requirements + + - Windows 10 + - ActiveState TCL/TK 8.69 x64 (https://www.activestate.com/products/tcl/) + - Gawk for Windows (Add directory of awk.exe to PATH) + - NGSpice for Windows + +2. Install Tree +C:/Program Files/XSchem/bin - Binaries (executable file). +C:/Program Files/XSchem/doc - Various documentation. +C:/Program Files/XSchem/share - default share directory containing systemlib, utile, xschem.tcl, xschemrc and *.awk (can be overriden with XSCHEM_SHARE_DIR) +C:/Program Files/XSchem/xschem_library - XSchem library consisting of .sch and .sym +C:/Users//xschem - User configuration directory + +It's important to maintain this Install tree for XSchem to work correctly \ No newline at end of file diff --git a/XSchemWin/README_WIN b/XSchemWin/README_WIN new file mode 100644 index 00000000..50e386f0 --- /dev/null +++ b/XSchemWin/README_WIN @@ -0,0 +1,90 @@ +XSCHEM : schematic capture and netlisting EDA tool + +Xschem is a schematic capture program, it allows creation of hierarchical representation +of circuits with a top down approach . By focusing on interfaces, hierarchy and instance +properties a complex system can be described in terms of simpler building blocks. A VHDL +or Verilog or Spice netlist can be generated from the drawn schematic, allowing the +simulation of the circuit. Key feature of the program is its drawing engine written in C +and using directly the Xlib drawing primitives; this gives very good speed performance, +even on very big circuits. The user interface is built with the Tcl-Tk toolkit, tcl is +also the extension language used. + +DOCUMENTATION AND MANUAL + +http://repo.hu/projects/xschem + +BUILDING & RUNNING + +Please read additional information in file INSTALL_WIN for installation instructions + +SUBDIRECTORIES + +XSchemWin: Windows specific files (e.g. xschem.tcl, xschemrc, config.h) + +INSTRUCTIONS TO ADD XSCHEM TO VISUAL STUDIO 2019 + +1. requirements + + - Microsoft Visual Studio 2019 + - Wix Toolset Visual Studio 2019 Extension (Download through Microsoft Extensions on VS 2019) + - Wix Toolset Build Tools v3.11 (Download online from wixtoolset) + - ActiveState tcl/tk 8.6 (Remember install directory where includes files are, see step h) + 32-bit, 64-bit ActiveState need to match XSchem x86, x64, respectively. + - bison (Remember executabled directory for step h, preferably don't have spaces in the directory path (ie., don't use Program Files)) + (http://gnuwin32.sourceforge.net/packages/bison.htm, Complete package, except sources (bison-2.4.1-setup.exe)) + - flex (Remember executabled directory for step h, see bison note) + (http://gnuwin32.sourceforge.net/packages/flex.htm, Complete package, except sources (flex-2.5.4a-1.exe)) + +2. Create new XSchemWin project on Visual Studio 2019 + + a. Open VS2019 + b. Create a new project + c. Select Empty Project + d. Project Name: XSchemWin + Location: D:\Projects\XSchem + Solution Name: XSchemWin (Check Place solution and project in the same directory). + e. Click Create + A new folder XSchemWin will be created (XschemWin.sln and XSchem.vcxproj) + f. Add C/H files under src into the project (e.g. svn://repo.hu/xschem/trunk/src) + - Exclude src/expandlabel.c, src/expandlabel.h, src/parselabel.c (add later after using Windows Flex and bison) + - Exclude src/xschem.tcl and src/xschemrc (add the two files from svn://repo.hu/xschem/trunk/src/XSchemWin/) + - Add config.h from svn://repo.hu/xschem/trunk/src/XSchemWin/ + config.h is generated by Linux counterpart. Edit if necessary + g. XSchemWin Property Page > Linker > Input (All Configuration for x64 depending on what machine dependency you installed for Active State): + Add "tcl86t.lib;tk86t.lib" for Additional Dependencies + h. For (All Configurations, x64) + XSchemWin Property Page > VC++ Directories > Include Directories, Add "C:\ActiveTcl\include" + XSchemWin Property Page > VC++ Directories > Library Directories, Add "C:\ActiveTcl\lib" + XSchemWin Property Page > VC++ Directories > Executable Directories, Add "D:\GnuWin32\bin" + i. XSchemWin Property Page > C/C++ > Preprocessor, Add ";_CRT_SECURE_NO_WARNINGS" to proceed with the following compile error: + Severity Code Description Project File Line Suppression State + Error C4996 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. XSchemWin D:\Projects\XSchem\src\actions.c 117 + j. Right click parselabel.l + Property Pages > Item type, change from "Does not participate in build" to "Custom Build Tool" + Click Apply to get options for "Custom Build tool" + Command Line: flex -l -oparselabel.c ..\src\parselabel.l + Outputs: parselabel.c + k. Right click expandlabel.y + Property Pages > Item type, change from "Does not participate in build" to "Custom Build Tool" + Command Line: bison -d -o expandlabel.c ..\src\expandlabel.y + Outputs: expandlabel.c + +3. compiling + + - config.h can be edited to change default's XSCHEM_LIBRARY_PATH. + It's defaulted to include the following directories: + C:/Program Files/XSchem/xschem_library/devices + C:/Program Files/XSchem/xschem_library/examples + C:/Program Files/XSchem/xschem_library/ngspice + C:/Program Files/XSchem/xschem_library/logic + C:/Program Files/XSchem/xschem_library/binto7seg + C:/Program Files/XSchem/xschem_library/pcb + C:/Program Files/XSchem/xschem_library/rom8k + + Ctrl-b + - After compiling the first time, add expandlabel.c, expandlabel.h, parselabel.c into the project. + These 3 files are created in D:\Projects\XSchem\XSchemWin + +4. running from Visual Studio 2019 + + F5 diff --git a/XSchemWin/XSchemWin.sln b/XSchemWin/XSchemWin.sln new file mode 100644 index 00000000..3d554ed8 --- /dev/null +++ b/XSchemWin/XSchemWin.sln @@ -0,0 +1,39 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XSchemWin", "XSchemWin.vcxproj", "{22C260FD-DCF7-4ED2-93AD-491F08007584}" +EndProject +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "XSchemWix", "XSchemWix\XSchemWix.wixproj", "{91FBAA21-56D3-42E7-A3E8-DF92C89CD027}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Debug|x64.ActiveCfg = Debug|x64 + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Debug|x64.Build.0 = Debug|x64 + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Debug|x86.ActiveCfg = Debug|Win32 + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Debug|x86.Build.0 = Debug|Win32 + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Release|x64.ActiveCfg = Release|x64 + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Release|x64.Build.0 = Release|x64 + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Release|x86.ActiveCfg = Release|Win32 + {22C260FD-DCF7-4ED2-93AD-491F08007584}.Release|x86.Build.0 = Release|Win32 + {91FBAA21-56D3-42E7-A3E8-DF92C89CD027}.Debug|x64.ActiveCfg = Debug|x86 + {91FBAA21-56D3-42E7-A3E8-DF92C89CD027}.Debug|x86.ActiveCfg = Debug|x86 + {91FBAA21-56D3-42E7-A3E8-DF92C89CD027}.Debug|x86.Build.0 = Debug|x86 + {91FBAA21-56D3-42E7-A3E8-DF92C89CD027}.Release|x64.ActiveCfg = Release|x86 + {91FBAA21-56D3-42E7-A3E8-DF92C89CD027}.Release|x86.ActiveCfg = Release|x86 + {91FBAA21-56D3-42E7-A3E8-DF92C89CD027}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {99D06959-30DA-4DDD-A4D1-3D0D2D011379} + EndGlobalSection +EndGlobal diff --git a/XSchemWin/XSchemWin.vcxproj b/XSchemWin/XSchemWin.vcxproj new file mode 100644 index 00000000..fa535711 --- /dev/null +++ b/XSchemWin/XSchemWin.vcxproj @@ -0,0 +1,212 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {22C260FD-DCF7-4ED2-93AD-491F08007584} + XSchemWin + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + true + $(VC_IncludePath);$(WindowsSDK_IncludePath);C:\ActiveTcl\include + $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;C:\ActiveTcl\lib + $(VC_ExecutablePath_x64);$(CommonExecutablePath);D:\GnuWin32\bin + XSchem + + + false + + + false + $(VC_IncludePath);$(WindowsSDK_IncludePath);C:\ActiveTcl\include + $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;C:\ActiveTcl\lib + $(VC_ExecutablePath_x64);$(CommonExecutablePath);D:\GnuWin32\bin + XSchem + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + + + Console + true + tcl86t.lib;tk86t.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + + + Console + true + true + true + tcl86t.lib;tk86t.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document + bison -d -o expandlabel.c ..\src\expandlabel.y + expandlabel.c + bison -d -o expandlabel.c ..\src\expandlabel.y + expandlabel.c + + + Document + flex -l -oparselabel.c ..\src\parselabel.l + flex -l -oparselabel.c ..\src\parselabel.l + parselabel.c + parselabel.c + + + + + + + + + \ No newline at end of file diff --git a/XSchemWin/XSchemWix/Product.wxs b/XSchemWin/XSchemWix/Product.wxs new file mode 100644 index 00000000..caa42974 --- /dev/null +++ b/XSchemWin/XSchemWix/Product.wxs @@ -0,0 +1,8035 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/XSchemWin/XSchemWix/XSchemWix.wixproj b/XSchemWin/XSchemWix/XSchemWix.wixproj new file mode 100644 index 00000000..8c72070d --- /dev/null +++ b/XSchemWin/XSchemWix/XSchemWix.wixproj @@ -0,0 +1,57 @@ + + + + Debug + x86 + 3.10 + 91fbaa21-56d3-42e7-a3e8-df92c89cd027 + 2.0 + XSchemInstaller + Package + + + bin\$(Configuration)\ + obj\$(Configuration)\ + Debug + + + bin\$(Configuration)\ + obj\$(Configuration)\ + -arch x64 + + + + + + + + + XSchemWin + {22c260fd-dcf7-4ed2-93ad-491f08007584} + True + True + Binaries;Content;Satellites + INSTALLFOLDER + + + + + + + + + + + + C:\"Program Files (x86)"\"WiX Toolset v3.11"\bin\heat.exe dir "..\..\..\..\doc" -cg doc -gg -sfrag -fragment -out $(ProjectDir)heat_doc.wxs +C:\"Program Files (x86)"\"WiX Toolset v3.11"\bin\heat.exe dir "..\..\..\..\xschem_library" -cg xschem_library -gg -sfrag -fragment -out $(ProjectDir)heat_xschem_library.wxs + + + \ No newline at end of file diff --git a/XSchemWin/XSchemWix/heat_doc.wxs b/XSchemWin/XSchemWix/heat_doc.wxs new file mode 100644 index 00000000..42eb3503 --- /dev/null +++ b/XSchemWin/XSchemWix/heat_doc.wxs @@ -0,0 +1,989 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/XSchemWin/XSchemWix/heat_xschem_library.wxs b/XSchemWin/XSchemWix/heat_xschem_library.wxs new file mode 100644 index 00000000..e0db5456 --- /dev/null +++ b/XSchemWin/XSchemWix/heat_xschem_library.wxs @@ -0,0 +1,6741 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/XSchemWin/config.h b/XSchemWin/config.h new file mode 100644 index 00000000..ee76ffcb --- /dev/null +++ b/XSchemWin/config.h @@ -0,0 +1,30 @@ +/*************************************************************/ +/* Generated by scconfig - DO NOT EDIT - will be overwritten */ +/* Source: config.h.in; to regenerate run ./configure */ +/*************************************************************/ + +/* Define to 1 if cairo is available and is to be used */ +/*#undef HAS_CAIRO */ + +/* Define to 1 if Xlib's xcb is available */ +/*#undef HAS_XCB */ + +/* Define to 1 if Xlib's xrender is available */ +#define HAS_XRENDER 1 + +/* Define to 1 if popen(3) is available */ +#define HAS_POPEN 0 + +/* Define to 1 if popen(3) is not available but fork(2) and pipe(2) are available */ +/*#undef HAS_PIPE */ + +#ifndef XSCHEM_LIBRARY_PATH +#define XSCHEM_LIBRARY_PATH "C:/Program Files/XSchem/xschem_library;C:/Program Files/XSchem/xschem_library/devices;C:/Program Files/XSchem/xschem_library/examples;C:/Program Files/XSchem/xschem_library/ngspice;C:/Program Files/XSchem/xschem_library/logic;C:/Program Files/XSchem/xschem_library/binto7seg;C:/Program Files/XSchem/xschem_library/pcb;C:/Program Files/XSchem/xschem_library/rom8k" +#endif +#define USER_CONF_DIR "userConf" + +/* Extra includes required by the detected libs (may be empty): */ + +#define _XOPEN_SOURCE + + diff --git a/config.h.in b/config.h.in new file mode 100644 index 00000000..cf11750d --- /dev/null +++ b/config.h.in @@ -0,0 +1,49 @@ +put /tmpasm/IFS {\n} +put /local/xschem/includes [@ +#define _XOPEN_SOURCE +@?libs/gui/cairo/includes@ +@?libs/gui/xrender/includes@ +@?libs/gui/xcb/includes@ +@?libs/gui/xcb_render/includes@ +@?libs/gui/xgetxcbconnection/includes@ +@libs/gui/xpm/includes@ +@libs/script/tk/includes@ +@libs/script/tcl/includes@ +@] + +uniq /local/xschem/includes +put /tmpasm/IFS { \t\r\n} + + +print [@/*************************************************************/ +/* Generated by scconfig - DO NOT EDIT - will be overwritten */ +/* Source: config.h.in; to regenerate run ./configure */ +/*************************************************************/@] + +print {\n\n/* Define to 1 if cairo is available and is to be used */\n} +print_ternary ?libs/gui/cairo/presents {#define HAS_CAIRO 1} {/*#undef HAS_CAIRO */} + +print {\n\n/* Define to 1 if Xlib's xcb is available */\n} +print_ternary ?libs/gui/xcb/presents {#define HAS_XCB 1} {/*#undef HAS_XCB */} + +print {\n\n/* Define to 1 if Xlib's xrender is available */\n} +print_ternary ?libs/gui/xrender/presents {#define HAS_XRENDER 1} {/*#undef HAS_RENDER */} + +print {\n\n/* Define to 1 if popen(3) is available */\n} +print_ternary ?libs/io/popen/presents {#define HAS_POPEN 1} {/*#undef HAS_POPEN */} + +print {\n\n/* Define to 1 if popen(3) is not available but fork(2) and pipe(2) are available */\n} +print_ternary ?libs/io/pipe/presents {#define HAS_PIPE 1} {/*#undef HAS_PIPE */} + +print [@ + +#define PREFIX "@/local/xschem/prefix@" +#define XSCHEM_LIBRARY_PATH "@/local/xschem/xschem-lib-path@" +#define USER_CONF_DIR "@/local/xschem/user-conf-dir@" +#define XSCHEM_SHAREDIR PREFIX "/share/xschem" + +/* Extra includes required by the detected libs (may be empty): */ + +@/local/xschem/includes@ + +@] diff --git a/configure b/configure new file mode 100755 index 00000000..f19e25de --- /dev/null +++ b/configure @@ -0,0 +1,4 @@ +#!/bin/sh +cd scconfig +make +./configure "$@" diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 00000000..160e5de4 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,25 @@ +ROOT=.. + +include $(ROOT)/Makefile.conf + +all: + +install: FORCE + $(SCCBOX) mkdir -p "$(XDOCDIR)" "$(XDOCDIR)"/xschem_man "$(MANDIR)"/man1 + $(SCCBOX) install -f -d *.svg *.html *.css *.png "$(XDOCDIR)" + $(SCCBOX) install -f -d xschem_man/*.html xschem_man/*.css xschem_man/*.png "$(XDOCDIR)"/xschem_man + $(SCCBOX) install -f manpages/xschem.1 "$(MANDIR)"/man1/xschem.1 + +uninstall: FORCE + $(SCCBOX) rm -f "$(XDOCDIR)"/xschem_man/* + $(SCCBOX) rm -f "$(XDOCDIR)"/* + $(SCCBOX) rm -f "$(MANDIR)"/man1/xschem.1 + +clean: + +distclean: + $(SCCBOX) rm -f manpages/xschem.1 + +FORCE: + + diff --git a/doc/bg4.svg b/doc/bg4.svg new file mode 100644 index 00000000..09b979fb --- /dev/null +++ b/doc/bg4.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/doc/bg5.svg b/doc/bg5.svg new file mode 100644 index 00000000..d6e3c822 --- /dev/null +++ b/doc/bg5.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/doc/debian-swirl.svg b/doc/debian-swirl.svg new file mode 100644 index 00000000..e05cada2 --- /dev/null +++ b/doc/debian-swirl.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 00000000..d0e7d96e --- /dev/null +++ b/doc/index.html @@ -0,0 +1,136 @@ + + + + + xschem schematic circuit editor - VHDL Verilog Spice + netlister + + + + + + + + +
+ + +
+


+ XSCHEM : schematic capture
and netlisting EDA tool +

+
+
+

+ Xschem is a schematic capture program, it allows creation of + hierarchical representation of circuits with a top down approach . + By focusing on interfaces, hierarchy and instance properties a + complex system can be described in terms of simpler building blocks. + A VHDL or Verilog or Spice netlist can be generated from + the drawn schematic, allowing + the simulation of the circuit. Key feature of the program is its + drawing engine written in C and using directly the Xlib drawing + primitives; this gives very good speed performance, even on very + big circuits. The user interface is built with the Tcl-Tk toolkit, + tcl is also the extension language used.

+

Features

+
    +
  • hierarchical schematic drawings, no limits on size
  • +
  • any object in the schematic can have any sort of properties + (generics in VHDL, parameters in Spice or Verilog)
    +
  • +
  • new Spice/Verilog primitives can be created, and the netlist + format can be defined by the user
  • +
  • tcl extension language allows the creation of scripts; any + user command in the drawing window has an associated tcl comand
  • +
  • VHDL / Verilog / Spice netlist, ready for simulation
  • +
  • Behavioral VHDL / Verilog code can be embedded as one of the + properties of the schematic block,
    +
  • +
+
+ Xschem runs on UNIX systems with X11 and Tcl-Tk toolkit installed.
+
+

Documentation

+ +

Download

+
+ Current release +
+ Old XSCHEM releases on Sourceforge +
+ SVN: svn checkout svn://repo.hu/xschem/trunk
+
+
+

License

+
The software is released under + the GNU GPL, General Public License
+
+

Contact

+ Anyone interested in this project please contact me at the + following address:
+

STEFAN.SCHIPPERS@GMAIL.COM


+
+
+

Software requirements:

+ - X11
+ - tcl-tk libs and developent files
+ - c99 compiler
+ - bison (only for compiling the grammar parser)
+ - flex (only for compiling the lexical analyzer
+ - Xpm library and -dev header files
+ - awk (tested with gawk and mawk)
+
+

Systems tested:

+
+ - Linux debian / Redhat
+ - Solaris sparc
+ - Windows (with the cygwin layer and cygwin/Xorg X11 server, + plus the tcl/tk toolkit and the -dev libraries)
+
+
+

+
+

Screenshots
+

+
+
+
    +
  • analog circuit example
    +
  • +
+
+
+ analog circuit
+        example
+
+
+
    +
  • digital system for VHDL simulation
    +
  • +
+
+
+ dicital example
+
+
+
+ + diff --git a/doc/manpages/xschem.1.in b/doc/manpages/xschem.1.in new file mode 100644 index 00000000..4fa3f078 --- /dev/null +++ b/doc/manpages/xschem.1.in @@ -0,0 +1,175 @@ +print [@ +.\" xschem - manual +.\" Copyright (C) 2018 Tibor 'Igor2' Palinkas +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License along +.\" with this program; if not, write to the Free Software Foundation, Inc., +.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +.\" +.\" Contact: TODO: an email address +.TH xschem 1 2018-01-01 "" "xschem manual" +.SH NAME +xschem - schematic capture and netlisting EDA tool +.SH SYNPOSIS +.nf +.sp +\fBxschem [\fIoptions\fB] [\fIinputfile\fB] +.fi +.SH DECSRIPTION + +.BR Xschem +is a schematic capture program, it allows creation of +hierarchical representation of circuits with a top down approach. +.SH OPTIONS + +.TP + +.B -h, --help +Print help and exit. +.TP + +.B -n, --netlist +Do a netlist of the given schematic cell. +.TP + +.B -v, --version +Print version information and exit. +.TP + +.B -V, --vhdl +Set netlist type to VHDL. +.TP + +.B -S, --simulate +Run a simulation of the current schematc file (spice/Verilog/VHDL, depending on the netlist type chosen). +.TP + +.B -w, --verilog +Set netlist type to Verilog. +.TP + +.B -i, --no_rcload +Do not load any xschemrc file. +.TP + +.B -o, --netlist_path +Set output for netlist. +.TP + +.B -t, --tedax +Set netlist type to tEDAx. +.TP + +.B -s, --spice +Set netlist type to SPICE. +.TP + +.B -3, --a3page +Set page size for pdf export to A3. +.TP + +.B -x, --no_x +Dont use X (only command mode). +.TP + +.B --events +Do not use tclreadline, empty tcl shell prompt, dump activity on stdout for remote controlling other software. +.TP + +.B -z, --rainbow +Use a raibow-looking layer color table. +.TP + +.B -W, --waves +Show simulation waveforms. +.TP + +.B -f, --flat_netlist +Set flat netlist (for spice format only). +.TP + +.B -r, --no_readline +Start without the tclreadline package ( this is necessary if stdin and stdout are to be redirected for example to /dev/null). +.TP + +.B -c, --color_ps +Set color postscript. +.TP + +.B --plotfile +Use as output for plot export (png, svg, postscript/pdf) +.TP + +.B --rcfile +Use as a rc file for startup instead of the default xschemrc. +.TP + +.B --tcl +Execute specified tcl instructions before any other action, this can be used to change xschemrc variables. +.TP + +.B --script +Execute specified tcl file as a command script, perhaps with xschem commands. +.TP + +.B -p, --postscript, --pdf +Export pdf schematic. +.TP + +.B --png +Export png schematic. +.TP + +.B --svg +Export svg schematic. +.TP + +.B -q, --quit +Quit after doing things (no interactive mode). +.TP + +.B -l file, --log file +Set a log file. +.TP + +.B -d n, --debug n +Set debug level: 1, 2, 3,...: C program debug, -1, -2, -3...: TCL frontend debug. + + +.SH FILES + +.TP + +.B @/local/xschem/prefix@/share/xschem/xschemrc +default configuration. +.TP + +.B ~/.xschem/xschemrc +user configuration; if exists overrides settings from default configuration; +may be partial: settings not overridden will remain as set from the system +config. +.TP + +.B ./xschemrc +local/per-project configuration; if exists overrides settings from +the user configuration and default configuration. +.TP + +.B @/local/xschem/prefix@/share/xschem/systemlib +builtin essentials, such as font and missing symbol graphics. +.TP + +.B @/local/xschem/prefix@/share/xschem/utile +TODO. +.TP +@] diff --git a/doc/menu_xschem.html b/doc/menu_xschem.html new file mode 100644 index 00000000..7fb4d1a6 --- /dev/null +++ b/doc/menu_xschem.html @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/doc/style.css b/doc/style.css new file mode 100644 index 00000000..212fc8b4 --- /dev/null +++ b/doc/style.css @@ -0,0 +1,92 @@ + +body { + background-color: #ffffbb; + background-image: url('debian-swirl.svg'), url('bg5.svg'), url('bg4.svg'); + background-position: 66px 85px , left top, left top; + background-size: 50px 50px, 180px auto, auto 500px; + background-repeat: no-repeat, no-repeat, repeat-x; + + border: none; + margin:0; + padding: 0px; + +} + +.body2{ + font-family:arial; + background: url('bg.gif') +} + +.clearp{ + clear: both; +} + +.menu_iframe{ + width: 100%; + height: 24px ; + position: fixed; + border: none; + padding: 0px; + overflow: hidden; + margin: 0px; + top: 0px; + left: 0px; + background: #2244aa; + } + +.menu{ + white-space:nowrap; + height: 20px; + width:100%; + margin: 0px; + padding: 0px; + border: none; + overflow: hidden; + font-family: arial; + background: #2244aa; + font-weight: bold; +} +.menu_a{ + color: yellow; + border: none; + padding: 0px; + margin-top: 0px; + margin-bottom: 0px; + margin-left: 10px; + margin-right: 10px; +} + + +.body1 { + font-family:arial; + border: none; + margin:20px; + padding: 0px; +} + + + +.left { + text-align:left; +} + +.right { + text-align:left; +} +a{ + text-decoration:none; +} + +a:hover{ + background-color: red; + color: white; +} + +h1{ + text-align:center; + text-shadow: 10px 10px 9px #48b +} + +p:hover{ +/* background-color:yellow */ +} diff --git a/doc/xschem.png b/doc/xschem.png new file mode 100644 index 00000000..1f5c8902 Binary files /dev/null and b/doc/xschem.png differ diff --git a/doc/xschem1.png b/doc/xschem1.png new file mode 100644 index 00000000..3f3bb2dd Binary files /dev/null and b/doc/xschem1.png differ diff --git a/doc/xschem2.png b/doc/xschem2.png new file mode 100644 index 00000000..b001a58f Binary files /dev/null and b/doc/xschem2.png differ diff --git a/doc/xschem_man/XSCHEM_2.9.2_Manual_Tutorials.pdf b/doc/xschem_man/XSCHEM_2.9.2_Manual_Tutorials.pdf new file mode 100644 index 00000000..2447f8e4 Binary files /dev/null and b/doc/xschem_man/XSCHEM_2.9.2_Manual_Tutorials.pdf differ diff --git a/doc/xschem_man/attribute_substitution.obj.gz b/doc/xschem_man/attribute_substitution.obj.gz new file mode 100644 index 00000000..1f9ea2f6 Binary files /dev/null and b/doc/xschem_man/attribute_substitution.obj.gz differ diff --git a/doc/xschem_man/attribute_substitution.png b/doc/xschem_man/attribute_substitution.png new file mode 100644 index 00000000..3a8d0517 Binary files /dev/null and b/doc/xschem_man/attribute_substitution.png differ diff --git a/doc/xschem_man/auto_wiring1.png b/doc/xschem_man/auto_wiring1.png new file mode 100644 index 00000000..289eb94b Binary files /dev/null and b/doc/xschem_man/auto_wiring1.png differ diff --git a/doc/xschem_man/auto_wiring2.png b/doc/xschem_man/auto_wiring2.png new file mode 100644 index 00000000..77add781 Binary files /dev/null and b/doc/xschem_man/auto_wiring2.png differ diff --git a/doc/xschem_man/big_design.obj.gz b/doc/xschem_man/big_design.obj.gz new file mode 100644 index 00000000..a60ee403 Binary files /dev/null and b/doc/xschem_man/big_design.obj.gz differ diff --git a/doc/xschem_man/big_design.png b/doc/xschem_man/big_design.png new file mode 100644 index 00000000..5a496d8d Binary files /dev/null and b/doc/xschem_man/big_design.png differ diff --git a/doc/xschem_man/building_symbol_01.png b/doc/xschem_man/building_symbol_01.png new file mode 100644 index 00000000..d657a3d8 Binary files /dev/null and b/doc/xschem_man/building_symbol_01.png differ diff --git a/doc/xschem_man/building_symbol_02.png b/doc/xschem_man/building_symbol_02.png new file mode 100644 index 00000000..dcb38c39 Binary files /dev/null and b/doc/xschem_man/building_symbol_02.png differ diff --git a/doc/xschem_man/building_symbol_03.png b/doc/xschem_man/building_symbol_03.png new file mode 100644 index 00000000..8ce4fecd Binary files /dev/null and b/doc/xschem_man/building_symbol_03.png differ diff --git a/doc/xschem_man/building_xschem_symbol.html b/doc/xschem_man/building_xschem_symbol.html new file mode 100644 index 00000000..b7a21690 --- /dev/null +++ b/doc/xschem_man/building_xschem_symbol.html @@ -0,0 +1,71 @@ + + + +SYMBOLS + + + + + + + +
+ + +UP + + + +

SYMBOLS


+

+ The best way to understand how a symbol is defined is to analyze an existing one. + Load a test schematic (for example test.sch). Let's consider the + resistor symbol. Use the Insert key to place the devices/res.sym symbol. +

+ +

+ Use the file selector dialog to locate res.sym. +

+ +

+ Now select the resistor by left-clicking on it (it will turn to grey color) +

+ +

+ After selecting the component (component is an instance of a symbol) + descend into its symbol definition + by pressing the 'i' key. XSCHEM will load the + devices/res.sym file and show it in + the drawing window. Before descending it asks if you want to save + the parent schematic drawing + before loading the resistor symbol. Answer 'yes'. +

+ +

+ The image above is the 'symbol definition', you can now select individual graphic elements that + represent the symbol, lines, rectangles and text. + Normally a symbol contains some pins, these are just rectangles drawn on the 'pin' layer, and some + graphics / descriptive text. Another fundamental part of symbols are properties. + Properties are text strings that define attributes of the symbol, for example: +

+
    +
  • The name of the connection pins
  • +
  • The type of the symbol (spice primitive, subcircuit, documentation)
  • +
  • The format of the spice/verilog/VHDL netlist for the symbol
  • +
+

+ We will return on symbols after explaining properties. +

+ +
+
+ + +