Net names are composed of an optional logic inversion prefix, a base identifier, abbreviated attributes, and optional suffixes.
They may contain uppercase ASCII letters, underscores, and (arabic) numerals.
Prefix, base identifier, individual attributes, and suffixes are separated by underscores, which therefore should not appear within netnamen other than as such separators.
This page is a bit more elaborated, and rules there that do not contradict rules here might be worth to follow.
Counting numerals are appended directly without separator (e.g. DATA0 ...
DATA7). Single lines in a bus are numbered starting at
occurring instances of the same type should be numbered, but can also be
alphabetically counted (by letters
Standard bus nets (e.g. USB, I2C, UART) shall contain the respective bus name in their "base identifier" section.
Controlled impedance nets carry the attribute
ZZn, where n is the
impedance value in ohms.
Differential signals must carry the same name and include the
Signals coming from/going to a module or daughter board shall carry
its name or an obvious reference as first part of the base identifier.
IO attributes should be included, and if they are, they
must be used as viewed from the respective module, not from the board to
which they are connected.
Signals coming from or going to a connector or header on the board
must carry the
IO attribute as applicable. If they are
connected through a damping or protection resistor (or other circuitry),
SRC attribute should be added to the net before that protective
circuitry, and removed on the protected side.
Nets derived from another net which keep their base identifier but have modified prefixes, attributes, or suffixes, retain their remaining set of identifiers and have any new identifiers appended to the existing ones.
Where this rule does not apply, prefixes, attributes, and suffixes are ordered alphabetically.
Beside those designators defined in EloInv, the following designators shall be used.