TopologyThis section contains information on how to represent a topology for a given net. The file formats have been designed to specify topologies which are not embedded on any routing target and topologies that are embedded on a routing target.
Topology (.topo)
Topology information for any number of nets can be specified in the .topo file. Also, each net can have multiple topologies generated by various methods. The file allows specification of arbitrary topologies (as discussed above). The format of the file is shown below:
TOPOLOGY <netname> <topology_id>
DRIVER <pin_name> <x> <y> <layed_id>
SINKS
<pin_name> <x> <y> <layed_id>
.
.
<pin_name> <x> <y> <layed_id>
END
STEINERS
<steiner_name> <x> <y> <layer_id>
.
.
<steiner_name> <x> <y> <layer_id>
END
EDGES
{buffer_name;} <start_name> <end_name> <width>
{buffer_name;} <start_name> <end_name> <width>
.
.
{buffer_name;} <start_name> <end_name> <width>
END
END
Format description
- TOPOLOGY and END mark the beginning and end of one topology instance for a given net - i.e. <topology_id> uniquely identifies a topology for a given net <netname>
- DRIVER marks the specification of a driver node for that particular topology
- SINKS marks the specification of sinks.
- <steiner_name> specifies the name of the steiner node and should be unqiue within each topology for a given net ; however, the same steiner name can occur in different topologies for the same net
- <x>,<y> specify the (x,y) location of the steiner node
- <layer_id> specifies the layer for this steiner node
- EDGES marks the beginning of an edge specification in the topology; every edge may start with a buffer, cascaded buffers are represented as cosecutive edges with zero length
- <width> gives the width of the edge in multiples of minimum wire width
- <buffer_name> specifies a buffer that is inserted at the 'start' part of the edge in the direction toward the end, if is followed by semi-colon; buffer cascading is allowed
- Note that the layer/via technology for a given edge can be inferred from the layer_id fields of its two end vertices(steiners/pins)
Format specifications- <topology_id> is a unique integer representing the topology for this net
- pin and net names should comply with the name specification declared in the .sitspins section
- names of steiners should abide by the name specification rule in .sitspins section
- <layer_id> is an integer as explained in the previous sections
- <x>,<y> are integer(long) values giving the position of the steiner in micron units
- <width> is a float representing wire width in multiples of some minimum/default width
example
example file
example file with buffers
Topology Tree (.tree)
Topology tree is one of the ways to represent nonembedded topology. Current representation uses postfix traversal of binary topology tree. Leaves represent sinks, root is the driver, all other nodes are steiners.
TOPOLOGY_TREE <netname> <topology_id>
<pin_name> <pin_name> + ......... + <pin_name>
END
Format description
- TOPOLOGY_TREE and END mark the beginning and ending of one topology tree instance of a net
- <pin_name> give the pin name of the node in the topology these should correspond to the names of pins in .sitspins file
- Each + represents a steiner.
- <netname> and <topology_id> uniquely identify a topology
Format specification
- pin and net names should comply with the name specification declared in the .sitspins section
example
example file Back to main page