diff --git a/doc/xschem_man/tutorial_gschemtoxschem.html b/doc/xschem_man/tutorial_gschemtoxschem.html new file mode 100644 index 00000000..b33557b1 --- /dev/null +++ b/doc/xschem_man/tutorial_gschemtoxschem.html @@ -0,0 +1,103 @@ + + + +XSCHEM TUTORIAL: Translate GEDA gschem/lepton-schematic schematics and symbols to xschem + + + + + + + +
+ +UP + + +

TUTORIAL: Translate GEDA gschem/lepton-schematic schematics and symbols to xschem

+

+ The gschemtoxschem.awk utility (installed in (install_root)/share/xschem) generates xschem + schematic and symbol files from their GEDA equivalents. +

+

+ First of all, note that xschem comes with all geda symbols already translated to xschem. +

+

+ Create an empty directory where you want your xschem schematics/symbols, inside this directory create an xschemrc file + with the following path added, if not already done in your ~/.xschem/xschemrc file: +

+
+append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/../doc/xschem/gschem_import/sym
+ 
+

+ Next, in this directory create a convert.sh script and make it executable: +

+
+#!/bin/bash
+
+# remove empty glob specifications *.sym or *.sch
+shopt -s nullglob
+
+for file in directory_with_geda_files/*.{sym,sch}
+do
+  /path_to_xschem_install_root/share/xschem/gschemtoxschem.awk $file >  $(basename -- $file)
+done
+ 
+

+ Note that you have to set the correct path for gschemtoxschem.awk depending on your xschem installation + and set the correct path for the directory (directory_with_geda_files in above example) containing the geda files. +
+ The current directory will be populated with xschem schematics/symbols with the same name as their GEDA equivalents. + Incidentally xschem and gschem use the same file extensions (.sym, .sch), so be careful not to mix xschem and gschem files. +

+ +

+ Below an example of a schematic and a symbol shown both in xschem and lepton-schematic (gschem fork) +

+ +
+ + +

Notes for schematics targeted for spice simulations

+

+ Most of geda schematics do not define precise rules for spice netlisting. + primitive symbols are symbols that do not have a schematic representation, examples are the nmos and pmos transistors in first schematic. + they should have a format property + that defines how the symbol should be translated to spice netlist. See the relevant schem manual page. +
+ Subcircuit symbols are symbols that translate to spice as a .subckt calls. + An example is the LATESN symbol in above picture. + Xschem convention is that subcircuit symbol instances have a name + attribute that begins with 'X' or 'x'. As with primitive symbols they also have a format global attribute, but the + type=subcircuit attribute states it is a subcircuit instance. After producing the instance call + (for example X1 net1 net2 net3 ... subcircuit_name)) for all instances of this symbol a .subckt expansion is also produced: +

+
+.subckt subcircuit_name pin1 pin2 pin3 ... 
+...
+...
+.ends
+ 
+

+ After doing the conversion with gschemtoxschem.awk you should check your schematics and symbols and make the necessary corrections.
+ In particular you should check that schematic pins match symbol pins, regarding pin name and direction. Xschem standard way is to use + ipin.sym, opin.sym, iopin.sch for input, output, inout pins, respectively. + Following image shows the original converted schematic and the hand-modified schematic with the proper pins. Note that VDD/GND pins have been removed + since the LATESN symbol does not have such supply pins. In spice netlist VDD/GND to the subcircuit is in this particular case passed via net-assign. +

+ +
+ + + +
+
+ + +