The PBGA1 Example from the Command Line
The first page of this section showed how to set up and run PBGA1 from the Windows GUI.
Now we are going to show how to achieve the same results from a "calling" application that does not rely on Artwork's GUI. Let's start by defining the input files available and the various directories used.
top.gbr - top metal
btm.gbr - bottom metal
wbond.gbr - wires
pbga12.drl - drill between top and bottom
Building the JOB File
Prior to building our command line we must first build a valid .job file.The actual syntax and contents of the job file are documented here but we will go through the various sections as to how they apply to this specific example. We are naming the job file pbga1.njb.
Use of Quotes
It is not necessary to use quotes surrounding your directory paths and file names as long as there are no spaces or shell control characters in your path or filename. In a windows environment it is a good idea to always use quotes as spaces are quite common in directory and file names.
The Layer Section
B_LAYERS 1 W1 WIREBOND 0.000000 - 0x00000000 0.000000 0.000000 0.000000 2 D13 DIELECTRIC 0.000000 - 0x00000000 0.000000 0.000000 0.000000 3 M1 METAL 0.000000 - 0x00000000 0.000000 0.000000 0.000000 4 D35 DIELECTRIC 0.000000 - 0x00000000 0.000000 0.000000 0.000000 5 M2 METAL 0.000000 - 0x00000000 0.000000 0.000000 0.000000 E_LAYERS
Column 1 - the layer stackup positions are defined. Wires are assumed to be at the "top" of the stackup. Clearly you have to know the correct stackup order.
Column 2 - an arbitrary name is used here. It has no meaning or effect for GDSII output. No spaces or special characters allowed.
Column 3 - must be one of: WIREBOND, DIELECTRIC or METAL. A DIELECTRIC must be in place between WIRE and METAL or between two METAL or two WIRE layers. A DIELECTRIC must not be the first or last layer in the stackup.
Column 4 - thickness; generally for GDSII output this can be left = 0; however if you are using NETEX-G for other types of output that support a Z thickness you should enter the appropriate value here.
Column 5 - "-"; the dash is a place holder left over from a legacy application. Sorry.
Column 6 - color. The layer's color and transparency is expressed in hexidecimal (RGB Alpha). For GDSII output you can leave it all at 0x0000000
Column 7,8,9 - electrical properties; again for GDSII output this is not used so leave it all at 0.0 0.0 0.0
Layer Input Section
Tells the netexg manager where to find the input data. It also tells the manager whether the particular file is a normal polarity or reverse. Often, internal power planes are drawn in Gerber as reverse polarity. This is not something you can automatically determine from the Gerber data - normally the user views the layer and determines it by examination. However an incorrect setting will produce bad output.
B_LAYER_INPUT 3 "E:\cad_data\netexg_ex\pbga1\top.gbr" normal 5 "E:\cad_data\netexg_ex\pbga1\btm.gbr" normal E_LAYER_INPUT
Column 1 - the stackup position (see why it is necessary to generate the stackup first.
Column 2 - full path to the Gerber file. Quotes are recommended in case the path or file name has spaces in it.
Column 3 - normal or reverse. defines the layer's polarity.
If you have wires and you output to a format such as 3Di or other that supports a JEDEC model for wires then you can fill in this section. However for GDSII this section is not used so you can leave it blank.
The Gerber file used to produce the wire data is actually run through a utility to produce these endpoints. Note that the utility has a sorting routine so that in this table, the first coordinate pair always represents the die pad and the second coordinate pair always represents the bond finger or ring. If this is not implemented correctly a bad via will be created since part of the downstream process is to drop a via from the end of the wire that is over the bond finger down to M1.
B_WIRES TIER W1 1 0.030000 3 10.166500 14.841500 6.989780 17.709980 10.282500 14.787500 6.883680 17.565050 10.282500 14.679500 6.811620 17.426070 10.282500 14.571500 6.741770 17.286240 10.166500 14.517500 6.674340 17.145800 . . . 10.166500 14.329500 8.483100 15.494590 10.166500 14.625500 8.546060 15.984030 E_WIRES
Column 1 - "TIER" keyword defines a group of wires sharing a commmon model and layer
Column 2 W1 defines the name of the TIER or wire group.
Column 3 - stackup the stackup position that this tier lies on.
Column 4 - connection the stackup position that the bond finger side attaches to
Column 1,2 The X,Y coordinate of the wire on the die side
Column 3,4 The X,Y coordinate of the wire on the bond finger or ring side
Note that the NETEX-G engines are not set up to handle unusual wire situations such as finger to ring or die to die.
What If I Don't Have Wire Coordinates?
It is very likely that since the input data comes as Gerber that you don't have a properly sorted list of wire coordinates. Insted you have one or more Gerber files with the wires represented by "draw commands." The netexgmgr can do the work for you if you set up the job file correctly.
Please go to the wire setup page to see how this is done.
The drill section is used to create vias between layers. You should already have converted any drill files to Gerber (and hopefully validated the conversion). If there are multiple drill files you must also know which stackup layers they pass through. There is no way to automatically know this simply by scanning the data - it is typically a user input. In this example we have only one drill file to deal with. It runs from the top metal (stackup=3) to the bottom metal (stackup=5)
B_DRILL "E:\cad_data\netexg_ex\pbga1\pbga12.gbr" 3 5 E_DRILL
Column 1 - the full path and name of the Gerber file to use
Column 2 - the stackup position where the drill starts
Column 2 - the stackup position where the drill ends
This section is needed only when doing an extraction and when requesting the conductors in the regions near the extracted nets. For this example no information is needed here.
B_EXPANSION 0.000000 E_EXPANSION
This section is here to define the "maximum" sized via to process. Any entity whose extents are larger than this will not be treated as a via. It is primarily here for a special legacy requirement. Set it to value larger than your largest expected via. For this PBGA the via size is 0.2 mm so we set it to 1 but if you are working in mm just set it = 10.
B_VIASIZE 1.000000 E_VIASIZE
|Continued on Page 3|