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.



Input Files

top.gbr - top metal

btm.gbr - bottom metal

wbond.gbr - wires

pbga12.drl - drill between top and bottom

 

Directories

Executable

c:\wcad\netex-g

Input Files

e:\cad_data\netexg_ex\pbga1

Working Directory

e:\cad_data\netexg_ex\pbga1\working

Output

e:\cad_data\netexg_ex\pbga1\output



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.




Wire Models

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.

B_WIREMODELS
E_WIREMODELS



Wire Data

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

Line 1

    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

Line 2,3,4...

    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.




Drill Section

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




Expansion

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



Via Size

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



ARTWORK CONVERSION SOFTWARE, INC.       Company Profile
417 Ingalls St., Santa Cruz, CA 95060    Tel (831) 426-6163     Fax 426-2824    email: info@artwork.com