Published by Khalid Teama – Latest update on 08/10/2021
Relevant product(s): S-Edit
Operating systems: Linux or Windows
Versions affected: Tanner tools 2019.2 and above
Relevant area(s): Usage
Inherited connections allow power routing to propagate from top to lower levels in the design hierarchy, allowing for power management to be configured from the top level, including the ability to define different power levels. For example, a design can have a global supply of 1.2v, except for some blocks that must have a supply of 1.0v, inherited connections allow power configuration per instance.
This note will show the following areas on inherited connections in S-Edit:
- Example (Also attached)
- Special case: Propagating inherited connections to primitive devices
- Representation in Tanner’s standard libraries
- Command line for inherited connections
Only two requirements are needed for inherited connections:
- NetExpression = [@property name:%:port name]
A regular string property called “NetExpression” must be set on the power port itself. The value of the property must follow this format:
[@property name:%:port name]
- @Property name is the name of the property that will be created on the instances to tell S-Edit the name of their power supply
- Port name is the default name of the global port that S-Edit will fallback to if the instance does not have the above property
NetExpression = [@power_port:%:vdd!]
Will look for a property called “power_port” on the instances, and will use the value of that property will be used as the port’s name. If that property was absent from the instance, the used name will fallback to “vdd!”.
- On the instances, create a property of type “NetSet”, matching the property name above
The example explained here is attached in the attachments section below.
The top level of the example, “top” consists of 2 DC sources (1.2v and 1.0v), the 1.2v source is connected to a global VDD port called “Vdd_inherit”. The other port is connected to a netlabel called “vdd_1v”. There are 3 instances of an inverter.
The inverter instances need to be setup such that “inv_1” and “inv_2” must be connected to global supply (1.2v), however “inv_3” must be connected to “1v”.
Examining the design:
- Select the instance “inv_3” and observe its properties. It shows a property called “my_power_port” of type “NetSet” is created on it. However, “inv_1” and “inv_2” don’t have that property
- Open the symbol view of the “Vdd_inherit” cell and select the global port “vdd!”. You will see it has a property called “NetExpression” whose value is:
- Export the netlist of the top level, you can do that using the (T) button in S-Edit. Examining the netlist, we should see that only “inv_3” has the power port is connect to “vdd_1v”, the other instances are connected to “vdd!”
- Examine the subckt definition of the “inv” block in the netlist, notice the definition now has the name of the power port, prepended with “inh_”
Special case: Propagating inherited connections to primitive devices
Some primitive devices, such as 3-terminal mosfets, may require the specification of their Bulk terminal through the properties pane in S-Edit. To connect those mosfets to the inherited connection, please use the name of the port generated in the subckt definition.
As shown below the port name is “my_power_port” which was prepended with “inh_”.
Setting the “inh_my_power_port” into the Bulk terminal setting of the PMOS above corrects the problem as it maps to the subckt definition, and therefore to the top level:
Representation in Tanner’s standard libraries
The “Misc” library shipped with the Tanner tools provides supply elements that are pre-configured to help with inherited connections. These devices are:
- Vdd_inherit -> controlling property is vdd
- Vss_inherit -> controlling property is vss
Command line for inherited connections
The design database can be queries for inherited connection in the design and their assignments. Tanner S-Edit User’s Manual show what commands are available and how to use them.
|database virtualports||Returns list of virtual ports in the specified context.|
|database assignments||Returns list of overriding assignments for the connection definitions in specified context.|
|database connectdefs||Returns list of connection definitions on net or terminal objects and connection definitions, which are propagated from a lower level of hierarchy.|
 Tanner S-Edit User’s Manual, Inherited connections: https://docs.sw.siemens.com/en-US/product/862138555/doc/DC202103016.docs.sedit_user.en_us/html/idfea98c22-a892-4442-896b-accc59951c18
 Tanner S-Edit’s User Manual, Inherited Connections Commands: https://docs.sw.siemens.com/en-US/product/862138555/doc/DC202103016.docs.sedit_user.en_us/html/id6599a293-7290-4f4a-b6c3-60f5244ec6cc
Inherited connections example design: https://we.tl/t-8T5I4rymHf