At 09:52 AM 6/11/01 -0400, [EMAIL PROTECTED] wrote:
>We are trynig to clean up our design process by, among other things, going to
>a convention where net names are local to a sheet and module ports are
>global. But I'm having trouble understanding how the attributes of a port
>interact, and how they are meant to be used to ensure a well-documented,
>ERC-able design.
It's not surprising. It can be confusing. For reference, here is how the
three scopes work:
Netlabels & Ports Global. Any net label or port on any sheet will
unconditionally connect to the same net label or port on any other sheet.
Net labels will connect to ports of the same name on any sheet.
Ports Only Global. All intersheet connections are accomplished by Ports (or
power objects); Net labels produce local nets (local to the sheet), they do
not connect to the same-named net on other sheets unless there is a port in
the net on both sheets. Local nets are given an extension in the net name,
to keep them unique. (Because the extension is the page number, now we know
why Protel ERC cares that page numbers are duplicated: I haven't checked
it, but this could mess with the local net names. If it does cause
duplication, one might use this fact to allow single "pages" that were more
than one sheet, by giving them the same page number. Not that I am
recommending this if one has a choice....)
With the first two scopes, Sheet Entries are ignored. (Sheet Entries are
the representation of Ports on a Sheet Symbol.
Sheet Symbol / Port Connections. This is used with hierarchical schematics.
It is like Ports Only Global, except that Ports do not connect to Ports on
other sheets with the same name; connections must be explicitly made
between Sheet Entries, either by wiring them together or by connecting them
to net labels.
In all three modes, power ports create global nets, that is, if you put a
VCC power port on one sheet, it will unconditionally connect to VCC on any
other sheet. Power ports are intended for use for power only. However, they
do not have a type associated with them, so theoretically one could use
them to create global non-power nets with a sheet symbol/port connections
scope. If I were going to do that, I would probably use the arrow type
power port as a distinguishing mark.
Note also that hidden pins create global nets as well.
Both Netlabels & Ports Global and Ports Only Global can be used for
multi-sheet flat schematics, which become just like one big sheet. Ports
Only Global are also useful for flat schematics but make design re-use
easier by controlling inter-sheet connections.
Hierarchical schematics can use either Ports Only Global or Sheet
Symbol/Port connections. The latter option is superior for design re-use,
because there is no necessity to fix port name duplications, they become
irrelevant.
With Sheet Symbol/Port Connections, nets are named on the highest level on
which they exist. This can be confusing: we have requested that *if* a net
has a unique named Port, this name should be used instead of the generic
NetXXXX. However, the designer can control this by giving the connections
at the highest level a net label with the appropriate name, which will then
be used.
>1) Can someone explain what these port attributes do?
> Style
Try it. It's a graphical attribute. Convention is that sheet inputs are on
the left of the schematic and point to the right, and sheet outputs are
opposite. To make a port point in one direction or the other, edit the
style or rotate the port with the space bar while it is floating on the
cursor. A bidirectional bus might use the "none" style, which is just a
rectangle. Style has no electrical effect, its purpose is simply to make
the drawing clearer.
> I/O Type
This is used for ERC, see below.
> Alignment
This is also graphical. The "alignment" refers to the position of the port
name inside the port symbol. Again, this is graphical only, it has no
electrical effect.
>2) In this context, does "input" mean that the port acts as an input; i.e., I
>should be driving it with a signal on this sheet, with the destination on
>another sheet? Or does it mean that the signal is an input to this sheet,
>connected to one or more input pins on the sheet, and driven by some other
>sheet?
The default error matrix and I have a little disagreement over that. I'd
suggest that a single sheet taken from a multi-sheet schematic with
restricted net scope (i.e., net labels are *not* global) should properly
ERC if the ports are properly assigned. To do this, I would think that a
port symbol connected to an output would function in the place of an input
on a higher level, or one connected to an output would stand in for a
driver on a higher level. But Protel has used the opposite convention. We
had an extensive discussion of this some time back. Further, the ERC
checking, as I recall, is not as thorough on this point as it could be.
Under my interpretation, an output port on the lower level would connect to
an input sheet entry on the next level up, which would then connect to an
output or to and output sheet entry; so we have an input-output pair on
each level as well as between levels. The default error matrix gives a
green light to any kind of input/output combination between ports and sheet
entries, except that an output sheet entry / input port combination is made
an error. I haven't checked, but I suspect that this refers to a connection
on the same level, not to inter-level connections.
However, I wrote a few months back:
>However, I find that a port connected to an input pin suppresses the
>unconnected and floating warnings for that pin unconditionally, so I
>really do not understand the question. I even set the ERC matrix to show a
>warning for an input port connected to an input pin, and no warning was
>generated. This is a bug, I believe.
Protel was probably aware of the two possible interpretations because the
"create symbol from sheet" tool asks if we want to reverse port I/O types.
However, under *either* interpretation, ports/sheet entry i/o should be
reversed.
My preference (best read with monospaced font, -- represents a wire, > or <
represent signal direction, || is a connection across sheets or from a port
to a sheet entry above):
***Ports global:
output pin --> input port X || output port X --> input pin 1.
|| output port X --> input pin 2.
error condition:
output pin 1 --> input port X || input port X <-- output pin 2
Note that under these conditions, the existence of two input ports in a
design with the same name would be an error condition.
***Sheet Symbol/Port Connections:
output pin --> input port X || output sheet entry X --> input sheet entry Y
|| output port Y --> input pin1
--> input sheet entry
Z || output port Z --> input pin2
--> input pin 3
error conditions:
output pin --><-- output port
input port || input sheet entry
output port || output sheet entry
output sheet entry X --><-- output sheet entry Y
On any individual sheet, two outputs wired together are an error, whether
they be pins, ports, or sheet entries. (Note that two ports with the same
name on the same sheet should properly be flagged as an error regardless of
type; likewise two sheet entries with the same name in the same sheet symbol).
NON-REVERSAL INTERPRETATION, a quick look:
***Ports Global:
output pin --> output port X || input port X -- input pin 1
|| input port X -- input pin 2
***Sheet Symbol/Port Connections
output pin --> output port X || output sheet entry --> input sheet entry ||
input port --> input pin 1
--> input pin 2
Notice that with this interpretation, output ports function like input
pins, whereas output sheet entries function like output pins. It can be
difficult to understand either interpretation, but I find the non-reversal
interpretation more confusing. With non-reversal, ports and sheet entries
do not reverse type. Thus Protel appears to have been written in
contemplation of both interpretations, though the ERC routines are not
completely mature.
> Your perspective completely reverses the interpretation when you're
>looking at a port.
For today, I'm going to leave it that the whole question of port/sheet
entry electrical type needs further examination and work.
WARNING: much of what I have written is how Schematic ERC *should* work,
not necessary how it actually works.
>3) What determines which end of the port is the electrical hot spot? Both
>ends seem to be active.
Yes, both ends are active.
>4) With a netlist setting of Ports Only Global, is there any requirement to
>wire up the sheet entries on the next level up?
No. In fact, wiring on the next level up is ignored, according to the
manual. Hierarchy with Ports Only is only for the purpose of aggregating
individual sheets into a complete schematic. Using it in any other way is
entering Terra Incognita.
>5) Is it smarter to just use power objects instead of ports, and avoid all
>these issues?
I don't think so. Personally, I'd go with Sheet Symbol/Port Connections and
reversal of i/o type between a port symbol and a component pin, likewise
with sheet entries. With extensive design re-use, this is practically the
only way to go, unless you want to wade through a pile of potential
difficult-to-detect errors.
Sheet Symbol/Port Connections has no invisible connections. Giving two nets
or ports intended to be distinct the same name is of no effect unless they
are on the same sheet. Names only matter in two ways: within a sheet or
from a sheet to its sheet symbol. Thus an accidental difference between net
names intended to create a single net, such as OUTPUT1 on one sheet and
0UTPUT1 or OUTPUTl on another is of no effect. It is thus much easier to
check a complex Sheet Symbol/Port schematic. (*Most* net naming errors can
be found by generating and examining a list of nets, but not all).
As to the last error mentioned, it is not a misprint. I was just assigned a
password by SpinCircuit; when I tried to enter it, it didn't work no matter
how careful I was in copying it. Until I realized what was happening. To
some of you, the answer will be obvious, to others it may be quite elusive,
and the issue is not necessarily intelligence. Enjoy!
[EMAIL PROTECTED]
Abdulrahman Lomax
P.O. Box 690
El Verano, CA 95433
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
*
* To leave this list visit:
* http://www.techservinc.com/protelusers/subscrib.html
* - or email -
* mailto:[EMAIL PROTECTED]?body=leave%20proteledaforum
*
* Contact the list manager:
* mailto:[EMAIL PROTECTED]
*
* Browse or Search previous postings:
* http://www.mail-archive.com/[email protected]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *