topology
¶
The topology
statement is a means of labeling a topology with a human-readable name. This label can be applied to complex hierarchical bundles of signals that participate in the topology system.
The topology
statement is only valid within the pcb-module
context.
Signature¶
topology <NAME> (<EXP>)
Notes:
* The <NAME>
must be a valid Symbol
that identifies this topology.
* The <EXP>
is expected to resolve to KeyValue
where the key and value are Port
objects that resolve to the endpoints of a topology.
* Each port can be a SinglePin
, Bundle
, or PortArray
.
* The endpoint ports must be of the same type. If each port is a bundle, the bundle types must also match type.
* The endpoint ports must be unique - ie, you should not pass the same port as both endpoints.
Usage¶
The topology
statement is an aid in debugging and documenting a signal integrity route defined in the topology system. The basic concept is to add a label for any topology or constraint that is bound by the provided endpoints.
Here is an excerpt from the ethernet-io project:
within [src, dst] = constrain-topology(P.MDI => conn-IF, mdi-constraint):
require prot-MDI : dual-pair[NUM_PAIRS_1000Base-T] from esd
topology MDI (src.TP => dst.TP)
for i in 0 to NUM_PAIRS_1000Base-T do:
topo-pair(src.TP[i] => prot-MDI[i].A => prot-MDI[i].B => dst.TP[i])
If we look in the issues list of the physical design tool when routing these signals, we will see messages like these when these routes have not satisfied their constraints:
This issue is telling us that the intra-differential-pair skew timing constraint is violated in the current realized routes. We would need to add a signal tuning section to add skew matching.
In this case, notice the core.
prefix on the MDI
symbol name because the topology
statement was defined in the core
module instance.
The topology
statement can come before the construction of the topology-segment
statements and other constraint constructs. What matters is that the endpoints of those topologies and constraints match with the endpoints defined for the topology
statement.