more details in documentation about symbol creation
|
|
@ -20,9 +20,74 @@ p{padding: 15px 30px 10px;}
|
||||||
<a href="parameters.html" class="next">NEXT</a>
|
<a href="parameters.html" class="next">NEXT</a>
|
||||||
<!-- slide title -->
|
<!-- slide title -->
|
||||||
<h1>CREATING SYMBOLS</h1><br>
|
<h1>CREATING SYMBOLS</h1><br>
|
||||||
<h3> creating a new symbol and schematic by cloning</h3>
|
<h3> Creating a subcircuit symbol</h3>
|
||||||
<p>
|
<p>
|
||||||
A useful approach to create a new component (both symbol and schematic view) is to 'clone' it
|
Suppose you have just finished creating a circuit and you now want to create a
|
||||||
|
symbol for it so you can use this circuit as a sub block in other schematics:
|
||||||
|
</p>
|
||||||
|
<img src="creating_symbols01.png">
|
||||||
|
<p>
|
||||||
|
Above schematic contains <kbd>VPP</kbd>, <kbd>PLUS</kbd>, <kbd>MINUS</kbd>,
|
||||||
|
<kbd>VSS</kbd>, <kbd>VNN</kbd> input pins and <kbd>OUT</kbd> output pin.<br>
|
||||||
|
If you press the <kbd>a</kbd> key xschem will generate a symbol automatically.
|
||||||
|
</p>
|
||||||
|
<img src="creating_symbols02.png">
|
||||||
|
<p>
|
||||||
|
If your schematic is called <kbd>mos_power_amplifier.sch</kbd> the symbol will be saved
|
||||||
|
in the same place as the schematic and named <kbd>mos_power_amplifier.sym</kbd>.<br>
|
||||||
|
If you open a new empty schematic and use the <kbd>Insert</kbd> or <kbd>Shift-I</kbd> key
|
||||||
|
to insert a symbol and select the <kbd>mos_power_amplifier.sym</kbd> you get this:
|
||||||
|
</p>
|
||||||
|
<img src="creating_symbols03.png">
|
||||||
|
<p>
|
||||||
|
If you select the symbol instance and press <kbd>q</kbd> you see the instance <kbd>name</kbd>
|
||||||
|
attribute; the name attribute specifies an unique name in current schematic. There can not be two
|
||||||
|
<kbd>x2</kbd> instances in a schematic. If you copy the placed instance to get two of them the new
|
||||||
|
one will be automatically renamed (to <kbd>x3</kbd> or <kbd>x1</kbd>, or any available unique name).
|
||||||
|
</p>
|
||||||
|
<img src="creating_symbols06.png">
|
||||||
|
<p>
|
||||||
|
If you descend into the symbol and press <kbd>q</kbd> you see the following attributes:
|
||||||
|
</p>
|
||||||
|
<img src="creating_symbols04.png">
|
||||||
|
<pre class="code"style="width:500px;margin-left:40px;">
|
||||||
|
type=subcircuit
|
||||||
|
format="@name @pinlist @symname"
|
||||||
|
template="name=x1"
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
These attributes are using by xschem to generate the subcircuit netlist line. the <kbd>format</kbd>
|
||||||
|
attribute tells xschem that a line containing the instance name (<kbd>@name</kbd>, replaced by
|
||||||
|
<kbd>x2</kbd>), the list of attached nets
|
||||||
|
(<kbd>@pinlist</kbd>, replaced by the nets attached to the symbol i/o ports in the
|
||||||
|
order they are declared in the subcircuit)
|
||||||
|
and the symbol name (<kbd>@symname</kbd>, replaced by <kbd>mos_power_amplifier</kbd>).<br>
|
||||||
|
The <kbd>type</kbd> attribute tells xschem that the symbol is a subcircuit (not a terminal symbol)
|
||||||
|
and netlister should further descend into the corresponding schematic to complete the netlist.<br>
|
||||||
|
The <kbd>template</kbd> attribute defines default values for attributes when the symbol is
|
||||||
|
placed in a schematic. For example if you place an instance of this symbol in an empty schematic
|
||||||
|
the instance <kbd>name</kbd> attribute will be set to <kbd>x1</kbd>. If there is already an
|
||||||
|
<kbd>x1</kbd> instance xschem will automatically rename the instance to a unique name.
|
||||||
|
<br><br>
|
||||||
|
You can manually edit the symbol to change its shape or change the pin ordering.<br>
|
||||||
|
If you change the pin positions always move the pin (the red square) and the label together.
|
||||||
|
</p>
|
||||||
|
<img src="creating_symbols05.png">
|
||||||
|
<p>
|
||||||
|
If you select one pin (the small red square box) and press 'q' you see the pin attributes:<br>
|
||||||
|
<kbd>name</kbd> specifies the pin name.<br>
|
||||||
|
<kbd>dir</kbd> specifies the pin direction (<kbd>in, out, inout</kbd>).<br>
|
||||||
|
It is good practice to verify that the pin <kbd>name</kbd> attribute matches the name of the text label next to it.
|
||||||
|
</p>
|
||||||
|
<p class="important">
|
||||||
|
If you edit the text label next to a pin the pin name attribute will be changed automatically.
|
||||||
|
</p>
|
||||||
|
<img src="creating_symbols07.png">
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<h3> Creating a new symbol and schematic by cloning</h3>
|
||||||
|
<p>
|
||||||
|
Another useful approach to create a new component (both symbol and schematic view) is to 'clone' it
|
||||||
from a similar existing component: after copying a component to a different place in the schematic,
|
from a similar existing component: after copying a component to a different place in the schematic,
|
||||||
press the edit property bindkey (<kbd>q</kbd> key) and set a new name for the symbol, set also the
|
press the edit property bindkey (<kbd>q</kbd> key) and set a new name for the symbol, set also the
|
||||||
<kbd>copy cell</kbd> checkbox:
|
<kbd>copy cell</kbd> checkbox:
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 15 KiB |