Page 1 of 1

Net ports and cross-sheet signals

Posted: 08 Oct 2017, 13:28
by Exality
I'm a new DipTrace user so I may be missing something here, but using net ports for cross-sheet signals in multi-sheet or hierarchical schematics looks all wrong to me.

Net ports don't change the name of the net they connect to. Why not? Why connect cross-sheet signals by means of a net port component name, rather than the net name? Using net port component names to connect signals with some invisible unrelated net name makes no sense to me.

Using net ports with different names for each cross-sheet signal also means you have a proliferation of net port components in your design, which makes a mess of your component libraries.

Also, net ports look wrong on the schematic. Net names appear in one font and color while net port component names are quite different, so you see a mixture of the two in a design which has named nets and cross-sheet signals. I'm of the old school which believes schematics should be aesthetically pleasing, used and easily comprehended by humans in addition to being netlist generators.

I experimented with all three methods of connecting nets without wires as described in Help, and they all have their problems. I ended up with some custom components which graphically show the signal direction:
Signal Ports.png
These port components have no pattern, and their ref des is PORT. I set Main Marking = None on the first one I use and then copy/paste it for subsequent ports. I name the net connecting to the port component by the desired cross-sheet signal name. The second time I do this I am asked if I want to connect by name, which I do. This verifies that I typed the net names correctly. Then I display the net names.

This is quick, works well, and looks nice too. The only problem is when I create or update a PCB from the schematic it complains that "PORT1, PORT2, PORT3, ... have no patterns". It is easy to recognize that all the offending components are called PORTx, so I can tell that this warning is okay and move on.

If Novarm would add a component type which is not added to the netlist or layout, then the above error wouldn't occur. Altium has something like this. Does that sound like something I should request, or am I missing something already there?

(I've attached my cross-sheet port components in case anyone is interested.)

Re: Net ports and cross-sheet signals

Posted: 08 Oct 2017, 18:10
by KevinA
First you may want to select Schematic -> View/Colors and set Template: White Background to reset your color scheme, you have something going on there. NOTE: I use White/black.

Next, the Net Ports, they are a component, they act like a component except when you have two named the same name and discover the Net coming or going are the same after renaming. If I had a project with a 526 ball BGA it takes several 8X11 sheets to show the BGA, I could/would add Net Buss Ports like PA Buss or PB Buss and on the sheet where those buss were used simply add a Buss of the same name, all the Nets end up on that new page. I could also just assign a Net name to each pin and on the sheet I used the Net drop a wire and label it.

But I'm still learning, each PCB application handles things differently, Tango, Protel(Altium), Orcad, Pads, Eagle, KiCad, AutoTrax, Pulsonix and the hundred or so others.
Check out it is worth your time.

Re: Net ports and cross-sheet signals

Posted: 08 Oct 2017, 23:16
by Tomg
Using Net Ports solves the problem of the "no pattern" error message. If Net Ports weren't connected to each other by "Name", the potential for a component library mess would be eliminated. Maybe it would help if the following changes were made...
1) The field named "Value" in the Properties dialog window for Net Ports (and only Net Ports) should be replaced with a "Connect to Net" drop-down list, instead. The drop-down list should contain all of the current net names being used in the schematic, along with a default setting of "None".
2) When a Net Port has a wire (net) connected to its pin, then the "Connect to Net" drop-down list should be automatically set to that wire's net name (connected to its net).
3) If a connected Net Port's "Connect to Net" drop-down list is changed to "None" or a different net, then the Net Port is automatically disconnected from the wire, a small gap appears between that wire and the Net Port's pin, and the end of the wire (and Net Port's pin) both, once again, display small squares to indicate no connection.
4) Display of the Net Port's "Main Marking" and "Additional Marking" should always default to "None".
5) Line widths, font size and colors for drawing objects (text, arrows, bubbles, lines, etc.) should all be definable in the Component Editor with the option to be able to change them locally in the Schematic Editor.

Just a few thoughts.

Re: Net ports and cross-sheet signals

Posted: 09 Oct 2017, 09:31
by KevinA
After playing around with the View/Color the thing I noticed was the inability to set different objects foreground color or background color. I can change the wire color but it also changes the pin name color, it should ask if that is what I want, every setting but wire is global, fonts and colors.
"If Net Ports weren't connected to each other by "Name", the potential for a component library mess would be eliminated."

Let's say I have the SDA pin (net 0) from a processor connect to a resistor and on the other side of the resistor (net 1) I place a OUT net port my intent is to label the OUT net port SDA and on the sheet where I use that signal label the IN net port SDA. On the sheet I place the IN net port and tie it to a connector (net 2) when I rename the IN net port to SDA the net 2 becomes net 1 but mean while I can see the logical name and don't care what the net is, had I named net 0 SDA I couldn't name net 1 SDA but I didn't need to since the pin was named SDA. In the Design Manager I can see my nets and trace them if I fill the need. IF I was just placing nets I would assign a net to the resistor, go to where that signal was needed and assign the new resistor net to the component, global nets, no messy net ports, I'm done, doesn't convey a lot of information but I know my intent, for now anyway, in two days who knows?
Logical names and net names are two different functions, logical names ties functions to components while nets tie components to components, I don't see how you can mix the two.
I did just find out that logical names (Net port Name) are not case sensitive, they need to be since we use Mb and MB to mean megabit and megabyte, we live in a case sensitive world.
But I am still learning, to have a drop down show me the logical names I could pick for a net port and offer me the ability to ADD a logical name would be nice, just don't show nets, that would get messy.
BUT in thinking about this you could show the net name and use it to tie the net ports together, the Net would be 0 and the logical label would be Net 0, tried it and it works just not conveying my intent of having SDA connect to J1-23....
How about a drop down that could show Logical or Net or both? That way those of us that prefer to show intent wouldn't have to weed our way through every Net name to find our logical name which on a large project could be tedious at best.

Update: I did find I could set component pins color by the etype of pin, passive, power, etc.. but it appears the color pins only exist in the Component Editor, when the component is placed in the schematic the colors are gone:
and one last thing:

Re: Net ports and cross-sheet signals

Posted: 09 Oct 2017, 11:12
by Tomg
If we look at the fundamental problem with DipTrace's NetPort implementation we will see that there is a very large fly in the ointment. Before connecting a newly-placed NetPort to a net, a NetPort needs to be renamed to keep it from merging with a different net connected to another NetPort having the same library-provided default Name. If you don't rename the new NetPort and then connect it to a net, that net will be merged with the other NetPort's net without warning. This is another example of a DipTrace usability issue (a bad thing). So we must first rename the new NetPort before connecting it to anything. However, after a NetPort has been renamed it can no longer be updated from its library of origin because the new NetPort name does not exist in that library (another bad thing). And this is why NetPorts should not be connected by Name. In short, DipTrace's practice of using a NetPort's name as a NetPort connection/label/identifier on the schematic is flawed.

A better solution would be to have DipTrace connect NetPorts by net name, not NetPort name. The name of the net that the NetPort is connected to should be made available to use as a NetPort label/identifier and be allowed to travel with that NetPort if it is moved (i.e. like component markings). Since the NetPort's original name hasn't been changed it can be updated from its library of origin at any time without affecting connections and labels. If a note of some sort needs to be added to the NetPort's markings (e.g. "to page 2"), enter the needed text in the Value field and display that instead of the reference designator. The Value marking can be moved if needed (e.g. the end of the NetPort symbol) and will travel with the NetPort if it is moved. And, finally, the NetPort name would no longer influence net connections and allow nets to be secretly merged.

Re: Net ports and cross-sheet signals

Posted: 09 Oct 2017, 11:51
by Exality
@TomG: I like your suggestion for modifying the NetPort behavior, but to me it still looks funny, puts redundant information on the schematic, and muddles the concepts of a component name and a net name. (Your posting link has disappeared now -- I think you edited your original response on this thread from yesterday?)

I think I'll make a suggestion about providing a non-netlist component type. They can be used not only for cross-sheet signals like this, but BOM-only and "cosmetic" parts too.

Re: Net ports and cross-sheet signals

Posted: 09 Oct 2017, 12:11
by Tomg
I removed the link in an attempt to simplify my post. Here it is if you need it - ... 35&p=19091 Just consider it as "food for thought".

Re: Net ports and cross-sheet signals

Posted: 09 Oct 2017, 12:38
by Exality
Thanks for your thoughts, TomG. Your suggestion is a great way to make NetPorts work for cross-sheet signals -- I just think they're a klugey way to do it in the first place! :-D

Re: Net ports and cross-sheet signals

Posted: 09 Oct 2017, 20:25
by KevinA
Tomg wrote:If we look at the fundamental problem
Just tried to update the 'library' thing and it does use the 'Name', no internal ID, the 'Name'.... Didn't know that...
It appears they created the 'Net Port' from a component but didn't finish the job.
As it stands I won't have an issue with mangling the net cause I didn't name the port since I've done that and found deleting the Net Port fixes it. And I can't see me editing a net port so that is not an issue for me.
Your suggestion on what is needed are good, let us hope they have a few minutes to look at the issues and either fix the existing component or create something like the Buss Port with options.