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) (WiX Toolset requires the .NET Framework 3.5.1 Windows feature to be enabled.) Turn Windows features on or off Select .NET framework 3.5 (include .NET 2.0 and 3.0) - 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)) Optional: - Windows Ghostscript (to print) Update xschemrc to set variable to_pdf and to_png Add directory of gswin64.exe to PATH if installer didn't do it 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