xschem/doc/xschem_man/xschem_elements.html

165 lines
8.0 KiB
HTML
Raw Normal View History

2020-08-08 15:47:34 +02:00
<!DOCTYPE html>
<html>
<head>
<title>XSCHEM ELEMENTS</title>
<link rel="stylesheet" type="text/css" href="xschem_man.css" />
<style type="text/css">
/* Local styling goes here */
p{padding: 15px 30px 10px;}
</style>
</head>
<body>
<!-- start of slide -->
<div class="content">
<!-- navigation buttons -->
<a href="run_xschem.html" class="prev">PREV</a>
<a href="xschem_man.html" class="home">UP</a>
<a href="building_xschem_symbol.html" class="next">NEXT</a>
<!-- slide title -->
<h1> XSCHEM ELEMENTS</h1><br>
<h3> WIRES </H3>
<p>
Wires in XSCHEM are the equivalent of copper traces in printed circuit boards or electrical conductors.
Wires are drawn as lines but the electrical connectivity graph is built by XSCHEM.
To draw a wire segment point the mouse somewhere in the drawing window and press the <kbd>'w'</kbd> key.
A rubber wire is shown with one end following the mouse. Clicking the left mouse button
finishes the placement. The following picture shows a set of connected wires. There are many
wire segments but only 3 electrical nodes. XSCHEM recognizes connection of wires and uses this
information to build up the circuit connectivity. All wires are drawn on the 'wire' layer. One
electrical node in the picture below has been highlighted in red (this is a XSCHEM function we
will cover later on).
</p>
<img src="xschem_wires.png">
<h3> LINES </h3>
<p>
Lines are just segments that are used for drawing. Lines do not have any electrical meaning, in fact
when building the circuit netlist, lines are completely ignored. XSCHEM uses different layers to draw
lines. Each layer has its own color, allowing to draw with different colors. Lines are placed like
wires, but using the <kbd>'l'</kbd> key. The 'Layers' menu allows to select various different layers (colors)
for the line.
</p>
<img src="xschem_lines.png">
<h3> RECTANGLES </h3>
<p>
Rectangles like Lines are drawable on multiple layers, and also do not carry any electrical information.
A specific 'PIN' layer is used to make pins that are used to interconnect wires and components.
Different fill styles (or no fill) can be defined for each layer. Rectangles are placed with the
<kbd>'r'</kbd> bindkey
</p>
<img src="xschem_rectangles.png">
<h3> POLYGONS </h3>
<p>
Polygons are paths that can be drawn on any layer. Placements begins with the <kbd>'ctrl-w'</kbd> key
and continues as long as the user clicks points on the drawing area. Placement ends when:</p>
2020-08-08 15:47:34 +02:00
<ul>
<li> the last point is coincident to the first point.</li>
<li> or by clicking the <kbd>right mouse button</kbd>, for an open polygon. </li>
<li> or by hitting the <kbd>Return</kbd> key, for a closed polygon
(this can be done also by clicking the last point coincident to the first polygon point).</li>
</ul>
<p>
A <kbd>fill=true</kbd> attribute may be given to have the shape filled with the layer fill style.
2020-08-08 15:47:34 +02:00
</p>
<img src="xschem_polygons.png">
<h3> CIRCLES / ARCS </h3>
<p>
Arcs may be placed by hitting the <kbd>Shift-C</kbd> key. First click the start point, then the end point.
Moving the mouse will show the arc passing thru the 2 points and the mouse waypoint.
Clicking will place the arc.
Arcs may be modified after creation by selecting in stretch mode (<kbd> Ctrl-Button1-drag </kbd>) one of the arc ends
or the arc center:<br>
- (end point selected in stretch mode): by starting a move (<kbd>m</kbd>)
operation and moving the mouse the arc sweep may be changed.<br>
- (start point selected in stretch mode):by starting a move (<kbd>m</kbd>) operation and moving the mouse the start arc angle may be changed.<br>
- (arch center selected in stretch mode): by starting a move (<kbd>m</kbd>) operation and moving the mouse the arc radius may be changed.<br>
If a circle is needed then use the <kbd>Ctrl-Shift-C</kbd> key combination.
<br>A <kbd>fill=true</kbd> attribute may be given to have the shape filled with the layer fill style.
2020-08-08 15:47:34 +02:00
</p>
<img src="xschem_elements_01.png">
<h3> TEXT </h3>
<p>
Text can be placed with the <kbd>'t'</kbd> bindkey.
A dialog box appears where the user inputs the text and text size.
</p>
<img src="xschem_texts.png">
<p>
The <kbd>layer</kbd> property can be used
to draw text on a different layer, for example, setting <kbd>layer=6</kbd> will draw on cyan color.
A <kbd>font</kbd> property is defined to change the default font.
A <kbd>hcenter=true</kbd> attribute may be set to center text in the reading direction,
while <kbd>vcenter=true</kbd> centers text in the perpendicular (to reading) direction.
the 2 attributes may be set both to get full centered text box.
</p>
<img src="xschem_elements_02.png">
<p>
You wil learn in the <a href="xschem_properties.html">xschem properties chapter</a>
how to set, edit and change object properties.
2020-08-08 15:47:34 +02:00
</p>
<img src="xschem_texts1.png">
<h3> SYMBOLS </h3>
<p>
Symbols are graphical elements that represent electrical components. A symbol represents an electronic
device, like for example a resistor, a bipolar transistor, an amplifier etc. As you can see graphically
symbols are built with lines, rectangles, polygons and texts, the graphical primitives shown before.
In the picture below some components are placed in a schematic window. Components are instances of symbols.
For example you see three placements of the 'npn' bipolar transistor symbol.
Like in C++, where objects are instances of classes, here components are instances of symbols.
</p>
<img src="xschem_symbols.png">
<p>
Symbols (like schematic drawings) are stored in xschem libraries.
For XSCHEM a library is just a directory placed under the
XSCHEM_LIBRARY_PATH directory, see the <a href="install_xschem.html">installation slide</a>.
A symbol is stored in a .sym file.
</p>
<pre class=code style="height: 240px;">
user:~$ cd .../share/xschem/xschem_library/
user:xschem_library$ ls
devices
user:xschem_library$ cd devices
user:devices$ ls *.sym
ammeter.sym generic.sym noconn.sym switch_hsp.sym
arch_declarations.sym gnd.sym npn.sym switch.sym
architecture.sym ind.sym opin.sym title.sym
assign.sym iopin.sym package_not_shown.sym tline_hsp.sym
attributes.sym ipin.sym package.sym use.sym
bus_connect_not_shown.sym isource_arith.sym param_agauss.sym vccs.sym
bus_connect.sym isource_pwl.sym param.sym vcr.sym
capa.sym isource.sym parax_cap.sym vcvs.sym
cccs.sym k.sym pmos3.sym vdd.sym
ccvs.sym lab_pin.sym pmos4.sym verilog_delay.sym
connect.sym lab_wire.sym pmosnat.sym verilog_timescale.sym
delay_hsp.sym launcher.sym pnp.sym vsource_arith.sym
delay_line.sym netlist_at_end.sym port_attributes.sym vsource_pwl.sym
delay.sym netlist_not_shown.sym res.sym vsource.sym
diode.sym netlist.sym spice_probe.sym zener.sym
flash_cell.sym nmos3.sym spice_probe_vdiff.sym
generic_pin.sym nmos4.sym switch_hsp_pwl.sym
user:devices$ cd ...share/doc/xschem/
user:xschem$ ls
examples pcb
</pre>
<p>
To place a symbol in the schematic window press the <kbd>'Insert'</kbd> key. A file chooser pops up,
go to the xschem devices directory (<kbd>.../share/xschem/xschem_library/devices</kbd> in the distribution
by default) and select a symbol (res.sym for example).
The selected symbol will be instantiated as a component in the schematic at the mouse
pointer coordinates.
</p>
<!-- end of slide -->
<div class="filler"></div>
</div>
<!-- frame footer -->
<iframe seamless src="xschem_footer.html" class="footer_iframe" >
</body>
</html>