At 12:56 PM 7/25/2003, you wrote:
Abd ul-Rahman, I am not relying on ports or sheet symbols to name nets, I just want the connectivity between the sheet symbols and ports. I am not thinking that sheet entries should be global. There is also no multi-channel connectivity happening here. It is simply two different discrete filter circuits both placed onto one subsheet because of a lack of room on the upper sheet. A sheet symbol should connect to an equivalent port on a subsheet, that is not expecting anything to be global.

Yes, I understood exactly what you were trying to do. Yes, it is confusing that sheet symbols don't connect to ports unless the connectivity is set to "Sheet Entry/Port Connections." It is not necessarily expected behavior that sheet entries are absolutely non-functional unless explicitly enabled by that connectivity setting. I can't think of any other primitive in the program that is present but non-functional like that, unless enabled. Net Labels connect on a sheet as do Ports, no matter what connectivity is used. The connectivity setting only affects intersheet connections.


However, once you know it, the Protel Way is actually quite flexible and powerful. Sheet entries are used *only* to make explicit unnamed connections (like a wire) to ports of that name on subsheets, and this only with the behavior explicitly enabled as "Sheet Entry/Port Connections."

It is now clear that ports global does not make any connection between sheet symbols and ports, don't know who was the genius that thought this one up but why would two entities that are intended to make a trans-sheet connection not work because of the Ports global option.

It's not as stupid as it might seem. Sheet Symbols have two uses. In flat schematics they are placed on a root sheet or other sheets to establish what individual schematic files belong to the project. Sheet Entries are not used in flat schematics. That's not their function!


Ports have a dual function. They are used in hierarchical schematics to connect to the sheet entries on a higher level schematic. They are used in flat schematics to make intersheet connections that do not establish net names. If you want to make an intersheet connection in a flat schematic with an explicit net name, you use a Net Label, perhaps in addition to a Port. Ports are great in flat schematics because they make intersheet connections without interfering with other nets that might have the same name; i.e., you can use Ports Only intersheet connectivity. This can be very useful when you are combining sheets from different designs. You can see immediately what goes off-sheet and what stays on sheet.

Because you always use flat schematics, you were simply unfamiliar with how sheet entries work. Its an easy misunderstanding; as I mentioned, even though I've used hierarchical schematics for years, I never before really understood why they behave the way they do, why I had to place net labels on busses in a certain way, for example, to get the connectivity to work.

The way that Protel has implemented this -- in 99SE and it's been this for quite some time, I don't know if it predates Advanced Schematic entirely -- is quite simple and clean, really. It just hasn't been explained well.

Basically, global nets can cause serious problems in hierarchical schematics. The Power nets being global always, without any control, can be a pain, though it is a real affliction only when one is using hidden pins, which always create global nets. In Tango, you could rename those nets so that they went off-sheet, the device was to place a power object named as the hidden power pin, and a short piece of wire on it with the new net name. So you could have VCC pins and make them be +5V on one sheet and +12V on another. Controlled net renaming is missing from Protel. In OrCAD Capture, net renaming was unreliable. Where nets of different names were connected together, OrCAD will pick one of the names to go off-sheet, and I never did figure out which one it would pick. And then on another sheet with the same nets connected together, it would go off-sheet with the other net, thus creating a broken net that, of course, did not appear on ERC.

In Protel, basically, one would avoid hidden power pins if one wants to have different VCC's. You can, however, still take VCC's off sheet and make them be different voltages, by using Ports Only Global or Sheet Entry/Port connectivity. This can be done by using VCC Net Labels to connect VCC to the power pins, instead of using the Global Power Ports; then a Port named, say, +5V is used to take the power net off-sheet. That net will not be named from the subsheet, it will receive its name from the higher sheet. And if you want the net to be named +5V, it would be given that name on the higher sheet by using a Net Label. Net Labels, Power Ports, and hidden power pins are the only devices that actually explicitly name nets, everything else is given a default name, in P99SE it is, I think, named from the pin first encountered in the net, so the name will be different depending on how the schematic is arranged.

So the only thing lacking in P99SE compared to Tango DOS Schematic is the ability to rename the nets created by hidden pins.

Global nets are easy to conceive and to work with, but as projects get complex, they become unwieldy, difficult to track.

This makes them useless and as Craig pointed out, they just don't work in this case.

Just because they don't do what you thought they would does not make them useless!!! A number of us who know quite well how to use Net Labels and Ports Global avoid it with larger projects and use Sheet Entry/Port Connections.


In my mind and experience a sheet symbol with a matching port on the subsheet should make the connection regardless of the connectivity option, in my mind they are intended to connect by their very definitions.

It's easy to understand why you thought this, but you could equally well say that if you want to use Sheet Entry/Port Connections, you should set Sheet Entry/Port Connections!!!


The idea that connectivity should be independent of connectivity scope is a tad off, isn't it? *By definition* connectivity scope affects connectivity. If you have Ports Global, all ports in your project named "CLK" will connect together. If you have Sheet Entry/Port Connectivity enabled, Ports do *not* connect across sheets by their names; rather Ports connect within a sheet by name, and across sheets *only* to Sheet Entries of the same name on the symbol for the schematic sheet

There may be some obscure case where this would be a desired operation but I can't think of it at the moment. If you used a sheet entry on the top schematic, you obviously wanted it to connect somewhere, not just sit there as a non-functional blob inserted into your schematic for no reason.

Yes, and this is what may be counter-intuitive, unless one considers the purpose of the Sheet Entry primitive. What you've done in this case is to use a primitive outside the context for which it was designed. Sheet Entries are designed for schematics where Ports are *not* global. If you were to use them with Ports Global, you'd get, quite possibily, unintended connectivity.


Sheet Entries connect to named Ports on the named subsheet. This is pretty clear. But what if there is a port of the same name on another sheet? If Ports are global, they will connect together. So your Sheet Entry, which was designed to make a specific connection *only* to a specific sheet, is actually making a global connection.

If you want a global connection, you don't want to use Sheet Entries on Sheet Symbols, they would be misleading.


Anyway what I have now works. I have the sheet symbol with suitably named sheet entries, matching ports on the subsheet. This gives the appearance of a component that is defined further on the subsheet and identifies which sheet contains the detailed circuitry. I also have squeezed in net labels onto each of the connecting lines on the top sheet and subsheet to give my connectivity for netlisting. I could as Abd ul-Rahman suggested use two (four for both circuits) ports on my top sheet and draw a box around them to obtain approx. the same result.

Yes, and this would not only be clear, it would not be subject to having a sheet entry to confuse future generations. You can use Ports or Net Labels or both. Since you prefer Net Labels and Ports Global, I'd suggest that you could get a more compact "symbol" just using net labels. But if you are using Ports Global, you don't need the net labels. The way you have done it, you could just delete the sheet symbol entirely, or delete the sheet entries on it. The function would be the same (except that you may need the sheet symbol to include the named schematic.)



Thanks for the testing Abd ul-Rahman, your results and definition was very clear. I would have gotten there in a day or two when the pressure to get these boards out subsided, but thanks again.

I'm glad to get this nailed down, it was never really clear to me before, even though I knew how to get it to work. Usually. What would happen was that, because I didn't have a solid understanding, I'd forget exactly what I had to do to get hierarchical intersheet connectivity to work and I'd have to thrash about a bit, either being redundant or struggling with ERC problems.


I don't think that will happen again.

I think I might write a separate article explaining how intersheet connectivity works in 99SE. This question has frustrated generations of designers. Troy Magennis's "Protel Advanced Schematic Survival Guide" does give a pretty thorough explanation, but I don't think this is widely available.

Anyway, from his section entitled "What Inter-Sheet Connectivity to Use":

"Each level of connectivity places less importance on the names allocated to objects, until sheet symbols / port connections where the name is irrelevant.

[This is not completely true because of complications with busses; names are still important, also, within a single sheet.]

"It would be easy to say that all multiple sheet projects should be drawn using the 'Sheet Symbols / Port Connections' net identifier scope. This would be overlooking the fact that when using this scope the schematic containing the sheet symbols has to be wired. This step can be left out if either 'Net Label and Ports Global' or 'Ports Only Global' scope is chosen, possibly saving some time.

"If a team of people are working on a project it is desireable to eliminate any chance of duplicate or misspelt names affecting connections. In this situation always use 'Sheet Symbol / Port Connections' scope."

I'd argue that even if it is only one person working with the schematic, it is still safer to use hierarchical connectivity with multisheet schematics. Top sheet wiring can be very easy to accomplish; it can be done with net labels if it is desired to save time, though sometimes wires can be easier to read quickly.



* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* To post a message: mailto:[EMAIL PROTECTED]
*
* To leave this list visit:
* http://www.techservinc.com/protelusers/leave.html
*
* Contact the list manager:
* mailto:[EMAIL PROTECTED]
*
* Forum Guidelines Rules:
* http://www.techservinc.com/protelusers/forumrules.html
*
* Browse or Search previous postings:
* http://www.mail-archive.com/[EMAIL PROTECTED]
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Reply via email to