User Tools

Site Tools


geda:na_howto

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
geda:na_howto [2007/05/24 22:27]
127.0.0.1 external edit
geda:na_howto [2014/04/18 12:21]
vzh Add link to Russian translation
Line 1: Line 1:
 +//​Translations of this page are also available in the following languages://​ [[na_howto.ru|Русский]].
 +
 +====== net= attribute mini-HOWTO ======
 +by: Ales Hvezda
 +
 +This document is released under [[http://​www.gnu.org/​copyleft/​fdl.html|GFDL]]
 +
 +October 2nd, 2003
 +
 +The information in this document is current as of 19991011.
 +
 +===== What is the net= attribute used for? =====
 +The **''​net=''​** attribute is used to specify power, ground, and/or arbitrary nets in the gEDA system.\\
 +The **''​net=''​** attribute is used instead some of the other systems of specifying power/​ground (such as having power/​ground pins on symbols or power boxes). Some devices have lots of power/​ground pins and having all of these pins on the symbol would increase its size and make it unmanageable. The **''​net=''​** attribute is the power/​ground specification of choice in the gEDA system because of its simplicity and versatility.
 +Now having said all this, you can have power/​ground pins on a symbol, but gnetlist will probably not recognize these nets connected to these pins as separate power/​ground nets. Please keep this in mind as you draw symbols.
 +
 +===== What is the format of the net= attribute? =====
 +Attributes in gEDA are simple text items which are in the form ''​name=value''​. All proper attributes follow this form. Attribute names are always lower case, but the value can be upper or lower case. gnetlist and friends are case sensitive. Typically net/signal names by default are upper case.\\
 +Attribute can be attached to an object or in certain cases (like the **''​net=''​** attribute) can be free floating (not attached to anything). The free floating attributes
 +are also called toplevel attributes.\\
 +The **''​net=''​** attribute is a text item which takes on the following form:
 +<​code>​net=signalname:​pinname,​pinname,​pinname,​...</​code>​
 +
 +where:
 +| **''​net=''​** | The attribute name (always the same, lowercase) |
 +| signalname | The signal or net being defines (like +5V, GND, etc...) |
 +| pinname | The pin name (or number) which is assigned to this signal/net (or pin names/​numbers) |
 +
 +The signalname cannot contain the ":"​ character (since it is a delimiter). The pinname is the pin name (A1, P2, D1, etc...) or pin number (1, 2, 5, 13, etc...). The pinname cannot contain the ","​ character (since it is also a delimiter). pinnames are typically the same sort of numbers/​names like the ''​pin#​=#''​ attribute (if you are familiar with that attribute).\\
 +You can only have ONE signalname per **''​net=''​** attribute, but you can have as many pinnames/​numbers as you want.
 +
 +===== How do you actually use the net= attribute? =====
 +You can place the **''​net=''​** attribute in several places. Here's the list so far:
 +  * Inside a symbol either as an attached attribute or an unattached attribute (toplevel attribute). Example which creates power/gnd nets: **''​net=GND:​7''​** or **''​net=+5V:​14''​**
 +  * Outside a symbol (which is instantiated on a schematic) attached as an attribute to override an existing **''​net=''​** created net/signal. Suppose a symbol has a **''​net=GND:​7''​** inside it already; attaching this to the symbol: **''​net=AGND:​7''​** overrides the GND net (on pin 7) calling it AGND and connects/​associates it to pin 7.
 +  * Outside or inside a symbol to connect a net to a visible pin automatically. This is still untested and still might have some undesirable (negative) side effects. Use with caution.
 +  * Attached to one of those special power/gnd symbol (like vcc/​gnd/​vdd) and you can change what that symbol represents. You could change the ground symbol to create a net called DIGITAL GND without editing the symbol (**''​net=DIGITAL_GND:​1''​**).\\ In the current symbol (19991011) library there are symbols named **vdd-1.sym**,​ **vcc-1.sym**,​ **vee-1.sym**,​ etc... which do not have a **''​net=''​** attribute inside, so you must attach the **''​net=''​** attribute yourself (in the schematic).\\ There also symbols named 5V-minus-1.sym,​ 12V-plus-1.sym,​ 9V-plus-1.sym,​ etc... which have the appropriate **''​net=''​** attribute in them already (can be overridden though). You can use these symbol as examples of how to use the **''​net=''​** attribute.\\
 +You can have as many **''​net=''​** attributes as you want. Just remember that **''​net=''​** attributes attached to the outside of a symbol override any equivalent internal (inside the symbol) **''​net=''​** attributes. If you run into a case where this doesn'​t work, please [[howto report bugs|report a bug]].
 +
 +===== Caveats / Bugs =====
 +The **''​net=''​** attribute/​mechanism is fairly new, so there are bound to be bugs (many bugs). Here are some of the identified issues:
 +  * As of 19991011 almost all of the symbols in the standard library do not have the **''​net=''​** attribute or any other power/​ground specifiers. Hopefully this will be updated sometime (any volunteers?​).
 +  * Attach a special power symbol (vcc/gnd) to a already named net will alias (rename) that net to the signalname specified in the **''​net=''​** attribute (in/​attached to the vcc/gnd symbol). You can override this (so the reverse is true) by playing with the "​net-naming-priority"​. Be careful with this. There might be other "​aliasing"​ issues which have not been identified yet.
 +  * Creating a **''​net=''​** attribute which associates a signal name with a pin which is already visible on the symbol, is probably a bad idea. This does work, but all the ramifications have not been explored yet.
 +  * It is probably a bad idea to have the same **''​net=''​** attribute attached several times. Ales has not formalized what happens in this case. Just remember that the **''​net=''​** attribute on the outside of a symbol should override the internal one.
 +
 +===== Example =====
 +Here's a schematic which uses standard symbols (note: the 7400 does not have the **''​net=''​** attribute inside yet). This schematic consists of a 7400 with the **''​net=''​** attributes attached for power and ground, One of the input pins grounded using a gnd symbol and the other at a logic one using the vcc symbol (with an attached **''​net=''​** attribute). One of the input net is named, but as you will see, the netname is replaced by the **''​net=''​** signal name (see above for more info on this). The output is pulled up with a pull up resistor which has power specified using the +5V symbol.\\
 +
 +| {{:​geda:​net.jpg}} |
 +
 +<​code>​v 19991011
 +C 38700 58100 1 0 0 7400-1.sym
 +{
 +T 39000 59000 5 10 1 1 0
 +uref=U100
 +T 38900 59500 5 10 1 1 0
 +net=GND:7
 +T 38900 59300 5 10 1 1 0
 +net=+5V:14
 +}
 +N 38700 58800 37400 58800 4
 +{
 +T 37600 58900 5 10 1 1 0
 +netname=NETLABEL
 +}
 +N 37400 58800 37400 59200 4
 +N 38700 58400 37400 58400 4
 +N 37400 58000 37400 58400 4
 +C 37300 57700 1 0 0 gnd-1.sym
 +C 37200 59200 1 0 0 vcc-1.sym
 +{
 +T 36800 59200 5 10 1 1 0
 +net=+5V:1
 +}
 +N 40000 58600 41600 58600 4
 +{
 +T 41200 58700 5 10 1 1 0
 +netname=OUTPUT
 +}
 +C 40700 58800 1 90 0 resistor-1.sym
 +{
 +T 40800 59200 5 10 1 1 0
 +uref=R1
 +}
 +N 40600 58800 40600 58600 4
 +N 40600 59900 40600 59700 4
 +C 40400 59900 1 0 0 5V-plus-1.sym</​code>​
 +
 +**gnetlist** (using the geda netlist format) run using this sample schematic outputs this:
 +<​code>​START header
 +
 +gEDA's netlist format
 +Created specifically for testing of gnetlist
 +
 +END header
 +
 +START components
 +
 +R1 device=RESISTOR
 +U100 device=7400
 +
 +END components
 +
 +START renamed-nets
 +
 +NETLABEL -> +5V
 +
 +END renamed-nets
 +
 +START nets
 +
 ++5V : R1 2, U100 14, U100 1
 +GND : U100 7, U100 2
 +OUTPUT : R1 1, U100 3
 +
 +END nets</​code>​
 +
 +Notice how NETLABEL was renamed (aliased to the +5V net).
 +
 +===== Final notes =====
 +If you found a bug, please [[howto report bugs|let us know]].
  
geda/na_howto.txt · Last modified: 2014/04/18 12:21 by vzh