     Next: Tap Wires Up: Electrical Schematic Editing Previous: Vectored Instances   Contents   Index

## Connection Rules

The following rules are applied when connecting by location.

1. Any named scalar net can connect to any other named (or unnamed) scalar net. A scalar net can have any number of associated names, each of which is a valid target for connect by name.

2. If a scalar net connects to a non-scalar net, the scalar bit will connect to each bit of the non-scalar net.

3. A net connecting to a vectored instance terminal must have a width equal to one of the following:

• The total connection width, given by the pin width multiplied by the vector instance width. For example, suppose that the instance is arrayed [0:3] and the pin is A[0:1]. Suppose that the connecting net is net[7:0]. Then, all is well as the widths match, and connections will be as shown.

net = XA
net = XA
net = XA
net = XA
net = XA
net = XA
net = XA
net = XA

If the widths do not match, a warning will be issued. Xic will connect what it can, in an order like that above, but some bits will remain unconnected.

• The pin width. In this case, a virtual multiplier prefix is applied to the net. For the example above, but with net[1:0] that matches the width of A[0:1], the connections would be

net = XA, XA, XA, XA
net = XA, XA, XA, XA

• The width is one (scalar net). In this case, all of the instance pin bits would connect to the same scalar net.

4. Named multi-contact nets cannot connect to incompatible nets. Two named nets are ``compatible'' if one is a ``tap'' of the other. This will be described in the next section. Violations generate an error message and no connection is made.     Next: Tap Wires Up: Electrical Schematic Editing Previous: Vectored Instances   Contents   Index
Stephen R. Whiteley 2019-03-16