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