NETEX Configuration File
Most of the NETEX behavior is controlled through "directives" found in the configuration file. We'll go into detail on the various directives that apply when extracting VDD and VSS nets from a large chip design.
This directive tells NETEX the units of all measurements we are going to use. The GDSII file units must match the units in the config file. For all intents and purposes, chips are designed in um.
One of the things that NETEX can do is, after extracting a net, to also extract all conductors that fall within a user defined "expansion" distance. That is, we take the footprint of the selected net, grow it by the expansion distance and anything that falls into this new region is collected and output as the "proximity" net.
This capability is extremely useful when analyzing signal nets because it enables you to collect the nearby metal and use it to compute capacitive coupling. For extracting VDD/VSS nets it is really not used.
This directive tells NETEX to ignore any polygon on a via layer that is "larger" than the VIASIZE parameter. It was added to avoid having NETEX pick up isolation rings on via layers. When you set it, just make sure that the size is larger than your via size i.e. if your vias are 1 or 2 um square set the Via Size to 10 so nothing gets accidentally ignored.
Sometimes you don't want NETEX to trace through all your layers when building a net. You could modify the technology file and elimate those layers, but it is better to set up the technology file once and not to edit it. Instead you can use the START_ORDER directive which tells NETEX where in the stackup to start.
By default, NETEX starts at position 1 (the layer closest to the substrate in your stackup). In our particular example, we don't want to trace the VDD and VSS down to metal layers M1 and M2 because these are reserved for the macro circuits which connect to the power grid at M3. Therefore we will use a start order = 3.
Drop Order works to some extent like STOP_ORDER except that NETEX goes all the way down to the lowest level of metal to make the connectivity calculations for net tracing but then only outputs net data to the layer you specified.
This of course, is going to use more compute time but sometimes a net is only completed on M1 or M2 and if you don't actually go down to those levels you end up thinking you have more independent nets than you really do!
By the way, it doesn't make sense to have DROP_ORDER greater than or equal to STOP_ORDER in the same configuration file. In fact, you should have one directive or the other but not both in the same run.
Extraction directives are the real "meat" of the config file -- where NETEX gets its marching orders. An extraction directive tells NETEX what net or nets to pull out of the complete design.
How to Specify Which Net you Want
Depending on your input data, you can either specify a net to extract by its name (assuming you have a text layer that names your nets) or by a point somewhere on the net. Of course, if you specify a coordinate seed point for your net, you also have to specify which layer to look on.
Extracting by Name
Let's assume that your nets are named (because in the GDSII file you have a text layer whose text entities correspond to net names and whose text entities lie under the conductor that they are labeling)
You can then just ask for the net labeled VDD to be extracted as follows:
The EXTRACT BYNAME directive supports wildcards (regular expressions for UNIX wizards) and lists so if you want both VDD and VSS in the same output file you could say:
EXTRACT BYNAME mychip_vdd_vss.gds VDD,VSS ENDEXTRACT
EXTRACT BYNAME mychip_vdd_vss.gds V?? ENDEXTRACT
Of course, if you use a regular expression you had better be sure there are no undesired nets that match the expression.
In our particular example, because we are going to do some postprocessing on the data extracted by NETEX, we don't want both VDD and VSS mixed together in a single GDSII file. Instead we will combine them only after merging the vias. Therefore we will use two extraction directives - one for VDD and one for VSS.
EXTRACT BYNAME mychip_vdd.gds VDD ENDEXTRACT EXTRACT BYNAME mychip_vss.gds VSS ENDEXTRACT
This will give us two separate GDSII files out -- one with the VDD net and one with the VSS net.
What If I Don't Have Net Names?
But what if I don't have a nice text layer with my net names on it? NETEX can still sort out the nets but they will have arbitrary names such as NET1, NET2, NET3 ... In this case, I can't use EXTRACT BYNAME because I don't know what net gets what name.
But I can specify a point anywhere on the net I want to extract and use that as the "seed" for extracting out the entire net. In the case of VDD and VSS nets it is easy enough to find a bond pad or a bump pad on the top metal layer and use that as my seed point.
Extract by Coordinate
The extract by coordinate directive is similar to extract by name except that one specifies: a GDSII layer, the x and y coordinate (must be on the net), and a name for the net.
Next Up - The Command Line
|Page 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8|