It's been awhile since I've worked on editing schematics, and I can't seem to find the answer to a question I'm running into when editing my current schematic.

In Altium (or schematic software in general), there's the option to create a Port. The options are Input, Output, Bidirectional, or Unspecified.

Normally, I use Bidirectional, but I've reached a point where I'd like to specify a specific direction for clarity.

How should I be interpreting the direction? Is it:

  • Input: Input into the Port


  • Input: Output from the Port

2 Answers 2


In Altium, an output port is an output from the sheet. An input is an input to the sheet.

That means that within a given sheet, signals will come from some other device and go to an output port so that they can be outputs from this sheet and connect to some other sheet.

  • \$\begingroup\$ Input = Something elsewhere is connecting to the current schematic. Thank you! Basic question, but I couldn't figure out how to phrase it in my searches. \$\endgroup\$
    – Sven
    Commented Aug 8, 2016 at 2:04

I just went through this and found many of the answers such as here and here are still vague or falls back on personal preference. Here is my take on the topic with Altium.

I have worked on both flat and hierarchical designs but will keep to flat designs where we just want connections from page to page. If we look at the Altium connection matrix, we see the basic rule allow input to output ports, output to output ports, but flags input to input ports:

Altium Connection Matrix

This makes sense as a wire where it might be point to point with an input and output, or point to multi-point with one input and multiple outputs. So when we look at three ports like below and Altium flags a DRC error where the net contains multiple similar objects:

enter image description here

It is saying when you connect the ports together with an imaginary wire, there will be two drivers (inputs) that can cause contention and you, the designer, needs to resolve that decision. When the port types are flipped, Altium is satisfied a contention is unlikely:

enter image description here

It is pretty straight forward to use ports once we have this context in mind. The bi-directional and unspecified types are just another choice to make based on what the group of ports are suppose to do as an imaginary wire. This gets us to the graphical symbol of a port which I think is what confuses some people including me. Which way the port points appears at odds to the intent. The two outputs on the right looks more like when we intend a signal to go off page while the input looks like the signal is continuing from the port to the wire. But that's not the right context and the symbol shape is technically irrelevant. (1)

Some recommend bypassing or disabling DRC rules to make ports work but I don't believe it to be a good general rule. The job of DRC (Design Rules Check) is to help the designer catch potential errors, it is not the smartest system but that is why DRC exceptions is an option when reviewing DRCs. In this case, using the tool/rules as intended does serve to clearly communicate your design with others that share the same rules.

Finally, I do think the best way to avoid all this is to use off-page connectors that really don't care which way the signals are going. While you have to use ports in hierarchical blocks and spend the time to set types correctly, off-page connectors can still save time in a flat or mixed design.

(1) All ECAD tools give you enough rope to hang yourself in the name of personalizing the workflow. In Altium, you could just invert the connection matrix rules and flip the context of the port so now output to output is a DRC error and input to input is okay! But then personal preference start to conflict with a standard way to clearly communicate intent which is what a schematic intends to do.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.