Using Library Management System

For Designers

D. Koellhofer, M. Wilson, C. Murphy

February 11, 1996



I. A Look at the Structure of the LMS Libraries.................................................2

II. The Board Design Process with LMS................................................................5

A. Creating schematic sheets

  1. To_layout
  2. Adjusting the settings for To_layout
  3. III. Creating new parts...........................................................................................11
    1. Creating a symbol
    2. Geometry
    3. Mapping File
    4. Catalog Entry
    5. Building the Menus
    6. Parts with Multiple Symbols, Geometries, and Non-Homogeneous Parts

IV. Getting your parts released..............................................................................19

V. Notes, Tips, etc.................................................................................................21

I. A Look at the Structure of the LMS Libraries

The basic element in the LMS libraries is the catalog entry. For each part in the library, there is a catalog entry containing all necessary information about the part. Some of this information is used by the application lms_libr in taking a board through the design process. Other information is used by the menu system which categorizes parts and allows them to be chosen for instantiation in da_lms, the LMS version of Design Architect. Finally, some information is simply useful to a board designer when he/she is choosing or ordering parts. An example catalog entry is shown on the following page.

All of the LMS catalog entries are organized into catalogs, which are in turn organized into libraries. The names of the catalogs are descriptive: for example, "analog", "dig_gate", etc. There are three libraries containing such catalogs: "Physics Parts" ($PHYSICS_LIB), "Released Physics Parts" ($PHYSICS_LIB/RELparts), and "Mentor Parts" ($BPL_RLS_LIB.)

There is an important difference between the Physics Parts library and the other two libraries. The Physics Parts library contains parts which are still in the development stage, and which may not be ready to be used in board designs. It is thus termed a

Development Library, and is unique in having editable catalog entries. The other two libraries are Released Libraries, containing only parts which are complete, tested, and approved for use in board designs.

The sub-directory structure of each of the three libraries is nearly identical. It is therefore only necessary to describe one in detail. The following directory hierarchy should be sufficient for those who are familiar with the Mentor Graphics board design process. (For those who are not, a more in-depth explanation of the terms "symbol", "mapping file", etc. will be given in the section on creating new LMS library parts.)

Physics Parts (Development Library):

pathname: $PHYSICS_LIB/... (/nfs/voyager /l2/parts/...)

components - contains symbols created in Design Architect or da_lms

maps - contains mapping files for all parts

geometries - contains all geometries used by parts in the library

misc_geoms

pcb_geoms

sys

catalogs - contains the LMS library catalogs which reference a symbol, mapping file, and geometry for each part

config - contains only one of the configuration files used by lms_libr (the others are in $MGC_HOME/shared/etc/cust/lms/config)

menu_driver.config - contains the overall structure of the parts menus which appear in da_lms

menus - contains files which contain the header and contents of each of the da_lms menus

templates - contains files which determine the criteria for the inclusion of a given part in a given menu, as well as what information about each part will be displayed in the menus

qa_designs - contains test boards (in Development Library only)

Released Physics Parts (Released Library):

pathname: $PHYSICS_LIB/RELparts/... (/nfs/voyager/l2/parts/RELparts/...)

Mentor Parts (Released Library):

pathname: $BPL_RLS_LIB/... (/nfs/voyager/l2/mentor_parts/bpl_rls_lib/...)

The directories "components" and "maps" each have a set of sub-directories which correspond to the names of the catalogs in the library. This provides a clear organizational structure for all of the different kinds of files which are referenced by the catalog entries.

Upon invoking lms_libr from Design Manager, a window called "(LMS) Library Manager" appears. From the Windows menu, a "Library Browser" window can be called up for a given library. This is a navigator window which can get to any file on the computer, but which is especially set up to navigate to the various directories in the library that is active. Clicking on an entry in the left hand column provides a shortcut to these directories. Using the Library Browser window is the best way to explore the structure of the LMS libraries.

II. The Board Design Process with LMS

A. Creating schematic sheets

With LMS, the entire board design process can be executed from within the lms_libr application. To invoke da_lms, the LMS version of Design Architect from within lms_libr, first invoke lms_libr from the Design Manager "Tools" window. Make sure there is a Library Browser window active. Then, using the pull-down menu at the top of the (LMS) Library Manager window, select Test>Create/Edit_Data>Schematic> Schematic, and type in the file path and name of your new design. (You can also navigate to an already existing design.)

This will invoke da_lms, which looks and behaves like Design Architect, with one basic difference. A part selector window appears on the lower portion of the screen, from which you can navigate to any part in the LMS libraries. When the part selector window is active, the command palette at the right of the Design Architect screen displays commands connected with part selection. You can select a part by double-clicking on it and then placing it on your schematic.

The default library displayed is the Released Physics Parts library, from which you should always select your parts. The other two libraries described in the previous section are also available for your perusal, via the "Set Menu" button on the command palette. If you need a part from one of these libraries, however, you should first modify it in the ways described in the next section and have it transferred by the librarian to the Released Physics Parts library. It will never save you time to simply instantiate the part from one of the other two libraries, as tempting as that may seem. Parts from the Physics Parts library have not been tested, and are likely to produce errors at a later stage in your design process. Parts from the Mentor Parts library do not necessarily meet the symbol specifications of the electronics shop.

You will want to make sure that the part you select has the desired geometry. You can tell what geometry each part has because it too is displayed in the menu. If a part has multiple geometries associated with it, then after you have selected the part for placement, you can click on the "Options" button in the Place Active Part prompt bar in the lower left of your screen and select which geometry you would like to use. If a part has multiple geometries with different pin assignments, then there will be a separate menu entry for each one. If it is not available, you will need to create a new part in lms_libr with the geometry that you want. There are step by step instructions regarding part creation in the following pages.

If a symbol has multiple representations, you can switch to the next symbol by activating the Schematic Editor window and choosing the popup menu item form the Add Menu: Instance>Place Next Symbol (or by pressing control-A). If a part is non-homogeneous (This means there are different symbols which represent different functions for the same part number), then when you select it from the part menu, you should get a dialog box prompting you to select which symbol you want to use.

You can add your nets, busses, etc. to your schematic as you normally would in Design Architect. Once your design is finished, it is ready to be compiled by the application to_layout.

B. To_Layout

When turning a schematic into an actual board, you must associate certain attributes with your design. First you must associate all of the parts in your schematic with appropriate geometries. Examples of these are DIPs, PLCCs, and surface mount devices. Also, you need a mapping file for each part. This maps the pins on the schematic to the pins on the part geometry. It is only once all of your parts have been associated with geometries and mapping files that you will be able to layout your board. By using da_lms and to_layout, all of this information will be gathered and embedded for you automatically.*

To accomplish this, you must run the application to_layout. In a Library Browser window in lms_libr, navigate to your design so that its name is highlighted. Then use the pull-down menus to select Test>Process_Design>To_Layout... and wait for a dialog box to appear. You can also run to_layout from da_lms. If you do this, you can first set the output script to have more helpful messages. In the da_lms top menu bar, select Edit>Debugging Commands>Enable Verbose Mode. Then select Edit>To Layout and the dialog box will appear. To run to_layout from da_lms, close any schematic sheets and then select Edit>To Layout... The one essential piece of information which you must enter in the dialog box is the file path and name of your board geometry. In the Packaging section of the dialog box, click on the "Edit" button, and then the "Specify Board" button. You can then navigate to any of the boards in the Released Physics Parts library (/nfs/voyager/l2/parts/RELparts/geometries/pcb_geoms/boards). If you need a different board, you can test one of the Physics Parts boards or create one of your own and then have it released. The methods for doing these things are described in the next section.

Once you have selected your board, you can use the default settings for everything else in the dialog box, as shown below. (The default settings will be different if you have previously run to_layout on this design.) A detailed description of the options that you may want to adjust for your design has been included below.

To_layout will build all of the necessary files so that your design will be ready to be laid out. It will also create a text file called 'to_layout_log" which contains a step-by-step account of what happened in the to_layout process, including any errors or warnings that you should know about. You should examine this file closely after running to_layout.

C. Adjusting the settings for to_layout

You may want to change the settings in the To Layout dialog box to accommodate your design needs. For instance, you may want to open Package and edit your design, or

stop to_layout before it invokes Layout. The dialog box is divided into three areas: design preparation, packaging, and post-packaging.

First time running to_layout on a particular design:

III. Creating New Parts

A. Symbol Creation

If the parts you need for your design are not available in the Released Physics Library, you will need to create the needed parts yourself. Although this job may at first seem tedious, it has several advantages over the design process used prior to LMS. First, it automatically introduces a logical, organized structure into your design. (Insert here your favorite snide comment about physicists and organization.) Furthermore, it provides a way for you to test your parts individually before attempting to compile your entire board. It is thus advantageous to you, the designer, to take your new parts through this process even if you think they will never be used again. And it is of course advantageous to any other designers who want to use your parts in the future. The following pages contain a step-by-step tutorial on how to enter new parts. Unless otherwise specified, everything should be done in the "(LMS) Library Manager" window which appears upon invoking lms_libr. If you have a part with multiple symbols, multiple geometries, or a non-homogeneous part (multiple symbols that don't have identical pins) then you will need to see section III, F.

Your ultimate aim is to end up with a new part in the Released Physics Parts library. However, the library in which you must create all new parts is a development library, the Physics Library ($PHYSICS_LIB.) You will therefore want to open a Library Browser window on this library.

Your task is to find or create a symbol, geometry, and mapping file for the part. The symbol is the representation of the part in Design Architect (or da_lms) which appears on the schematic sheets. The term "symbol" should be used carefully. The actual symbol is usually in a directory of the same name along with a file called "part". The directory is called the "component container". See figure, next page.

If the symbol already exists, you should copy it to the appropriate directory in the Physics Parts library (under $PHYSICS_LIB/components) if it is not already there. (This holds true even if you are starting with a Mentor part which you eventually want to add to the Released Physics Parts library.) Then you should navigate to the symbol in the Library Browser window and, using the pulldown menus, select Edit>Symbol. If the symbol does not yet exist, activate the Library Browser window and then select Create>Symbol. Either selection will invoke da_lms, where you can edit or create the symbol. Be sure that your symbol meets the e-shop symbol specifications (Included in Appendix A).

Some additional symbol notes:

B. The Geometry

The geometry file tells Layout the part's exact outline and pin layout so it can be placed correctly on the board.

Just as with the symbol, you can modify or create a geometry. Your geometry should be copied to the Physics Parts library (/nfs/voyager/l2/parts...) as well, if it is not already there. You can create a geometry by activating the Library Browser window and selecting Create>Geometry>Librarian from the pulldown menu. You can edit an existing geometry by selecting it in the Library Browser window and then selecting Edit>Geometry>Librarian from the pulldown menu. Either procedure invokes Librarian, where you can perfect your geometry. If you are creating a geometry type which already exists, you can copy an existing geometry and edit it. For example, when creating an soic28, you could copy the soic20 and add eight more pins. In any case, take a look at existing geometries and make yours the same. If you are creating a surface mount geometry, follow the IPC land pattern manual that is in the shop. Be very cautious when assigning a surface mount geometry to your part. There are many variations in geometries. If the data book says soic16 - don't assume that the geometry of the same name will work, you will regret it later!

C. The Mapping File

If you are familiar with mapping files, you may want to edit yours using the command Edit>Mapping_File>Notepad. This command, or Edit>ASCII_Data, invokes a simple text editor.

If you have never created a mapping file, one option is to use the menu-driven system in Librarian (Create>Mapping File>Librarian). However, it may be easier to simply write your mapping file "from scratch" in a text editor. The following paragraphs describe the creation of a mapping file in detail using the text method.

A mapping file is made of four types of lines. The symbol lines keep count of the number of symbols on the chip. For example, the mapping file below contains two symbols, numbered "1" and "2". The second number on the symbol line, either a "1" or a "0", tells Layout whether the symbols are swappable. Using "1" for the swap code tells Layout to switch the location of the symbols on the chip if it is more efficient to route the signals that way. (You should only do this if the symbols are identical.)

symbol 1 1

PIN "IN1" "1" 1

PIN "IN2" "2" 1

PIN "OUT" "3" 0

symbol 2 1

PIN "IN1" "4" 1

PIN "IN2" "5" 1

PIN "OUT" "6" 0

POWER "VCC" "7"

POWER "GROUND" "8"

The PIN lines give the names of the signals (the PIN property on the symbol), and then the corresponding pin number (the PIN_NO property on the symbol; also the pin number on the geometry.) They too have a swap code of either "1" or "0" which lets Layout know if it can swap pins within a symbol. The POWER lines tell Layout what pins get hooked up to the board's internal power planes. (POWER pins do not appear on the symbol.) You should keep track of the names you give to your power nets (e.g. "vee", "vcc", etc.) This will facilitate your future task of aliasing power nets, described in the footnote on p. 5). The final type of line is used when a chip is composed of multiple symbols which share a common pin. In this case, at the very beginning of the mapping file you would put a COMMON statement. An example of a mapping file with a common pin is shown below.

Common "C*" "9"

symbol 1 1

PIN "Ain" "5" 0

PIN "Aout" "2" 0

PIN "C*" "9" 0

symbol 2 1

PIN "Ain" "6" 0

PIN "Aout" "3" 0

PIN "C*" "9" 0

POWER "VCC" "7"

POWER "GROUND" "8"

D. Creating a catalog entry in the Physics Parts library

Once your symbol, geometry, and mapping file are correct and correctly stored in the Physics Parts library, you can proceed to enter the part into an LMS catalog. With the Library Browser window active in lms_libr, select Create>Cataolg Entry>Physical Catalog Entry>Homogeneous from the pulldown menus. (The only time you would select "Logical Catalog Entry" would be for a part in the "schematic" catalog such as a ground or vcc symbol. NOTE: Logical parts do not require geometries or mapping files!)

Fill out the dialog box with the appropriate path names for your catalog, component (the component container with your symbol's name), and mapping file. (These should all begin with /nfs/voyager/l2/parts! Fill out the name of your geometry. You don't need to enter a path for the geometry since lms_libr does a geometry search within the library. Fill out the PART_NO and mgc_comps properties, which should both match the COMP property on the symbol. Finally, enter the symbol count under SYMB_CNT. This should equal the number of symbols you listed in the mapping file. (The parameterization of properties is not discussed in the section on parts with multiple symbols or geometries and there is also information about it in the LMS manual. You can leave the parameterization options at the default settings.)

Once you have finished filling out the dialog box, click on "OK". A window containing your new catalog entry should pop up. You will need to add more properties to your part, some for the benefit of future designers, others for the inclusion of the part in the appropriate menus in da_lms. At the left of the catalog entry window is a menu which is very useful in adding properties. Click on "General Properties", and you will see a list of many of the properties you may want to add. You can add a property by clicking on it and then clicking on or entering the property value. (You also have the option of creating your own properties, using "Create Property" in the popup menu.) Be sure to include the manufacturer, which will appear in the catalog entry as "mfg." If the manufacturer is not one of those listed, choose any one and then double click on it in the catalog entry to change it. You may even want to list a few different manufacturers. Also be sure to include a description, e.g. "Quad Line Driver".

Below are listed the properties that should be added to your catalog entry with brief explanations. For more specific information, you can look in the Mentor documentation. Some properties are simply required for an entry, others are used to sort the menus, and some are simply for informational purposes. Be sure to add all properties that are appropriate for your symbol. When you have finished entering properties, close the catalog entry window and the catalog window, making sure to "keep" your changes each time.

mgc_index Unique identification for LMS tracking

mgc_refine_level Whether a part is physical or logical

mgc_comps Required component name

mgc_component_path Path to the symbol component container

mgc_map_path Path to the mapping file

mgc_geoms Geometry name

mgc_symbols Symbol name

PART_NO Part Number property

COMP Component property

GEOM mgc_geoms

SYMB_CNT Number of symbols in one physical component

part_class Digital, analog, passive, conn, electromech, optical

part_type More specific breakdown

function_type Part category by function

family If you have the TECH property, choose a family

TECH If a digital part, the type of digital chip

Manufacturer Manufacturer, more than one OK

Description Brief part description

E. Building the Menus

Once you have created your new catalog entry, you must rebuild the da_lms menus in which your part should appear. From the "Windows" pulldown menu, select "Open Menu Builder..." and in the ensuing dialog box navigate to "/nfs/voyager/l2/parts/sys/config/menu_driver.config." Once you "OK" this, another window should appear, which lists all of the menus in the Physics Parts library. If you know which of the menus will contain your part, you can select only those. Otherwise, highlight all of the menus. In either case, use the popup menu to select "Build Menus." If you run into any difficulties building the menus, see the Librarian.

F. Parts with Multiple Symbols, Geometries, and Non-homogeneous Parts

If you are creating a part with multiple symbols or geometries, you will need to make sure your catalog entry has uses the mgc_symbols or mgc_geoms properties. If your part has different symbols, (for example, an AND and a negative logic OR), then you would name these symbols say, 10104.pos and 10104.neg. In your catalog entry, you would set the component path to the component container that holds both symbols, and set the mgc_symbols property to "10104.pos, 10104.neg". The first symbol listed is the symbol that will show up by default when the part is selected.

For a part with multiple geometries, you have to assign multiple values to the mgc_geoms property, for example "soic16, dip16". You will also want to make sure you have a GEOM property. The value for this should be mgc_geoms and the GEOM property should be parameterized. This means that when you place this symbol and select a geometry, the value of mgc_geoms that you select will be sent to the GEOM property on the symbol. You must also parameterize the PART_NO property. The part number will not change if you use the default geometry, but if you select one of the optional ones, the geometry value is appended to the PART_NO property. If your part has multiple geometries that have different pin assignments (e.g. you need different mapping files) then you will have to make a completely separate component for each geometry.

If you have a part that needs two symbols with different functions (and different pins), then welcome to the world of non-homogeneous part design. The first task is to create the symbols for your part. As an example, if we had two symbols for a 74ls123- an AND gate and an OR gate, we would make two symbols inside the component container. When you are saving the symbols, use Save Symbol As... and set the component name to that of the container (74ls123). Select Options and name your symbol (74ls123a). If this is to be the default symbol for your part, set the Default Symbol option to yes. Continue to make all of the different symbols for this part (..b, ..c, ...).

When creating the mapping file, if you have any common pins in the symbols, use a COMMON statement first. Then you list the symbols and pins just as for a regular chip with one exception. At the end of the SYMBOL line, put the name of the symbol in quotes separated by a space from the swap code. For example;

SYMBOL 1 0 "74ls123a"

Next you need to make a catalog entry for your part. Select Create>Physical Catalog Entry>Non-Homogeneous... You fill in the table the same way you would for a homogeneous part, except you are going to enter a component name and a symbol which represents that particular component on your part. So for our example, you would set one mgc_symbol line to 74ls123a and its respective mgc_comp to 74ls123a and the next symbol line to 74ls123b and mgc_comp to 74ls123b. Since we do not deal with the model parameter, you can turn the parameterization off so that unnecessary information is not passed on to to_layout. Enter your part's geometry and the path to the mapping file and symbol count. That's it. Then you continue to enter the regular required catalog properties. Save your catalog entry and re-build the menus.

You will need to make a test schematic for your part. Select Test>Create/Edit Data>Schematic>Schematic... Set the name of the new test sheet to: /nfs/voyager/l2/parts/ qa_designs/<APROPRIATE SUBDIRECTORY>/test_ckt_<PART_NO>. You should see the part selector window on the bottom. You will need to change the library to the physics development library. Find your part and place multiple instances on your schematic sheet. You should see a beige pop-up menu ask you which symbol you would like to place. Make sure you place all of the different symbols on your schematic and also place enough to get more than one package on a board. Save your sheet and follow the steps for running to_layout.

IV. Getting your part Released

Once the appropriate menus have been rebuilt, your part has been created in the Physics Parts library. The next step is to test your part so that it can be released. This entails creating a test board for your part. From the pulldown menus select Test>Create/Edit Data/Schematic/Schematic. Navigate to the appropriate directory inside the "qa_designs" directory. Then type in the name of your board, which should be "test_ckt_<symbol name>." After you "OK" this, da_lms will be invoked. In the part selector window, navigate to your part (Go to the Set Menu icon and click Physics Parts.) Instantiate your part at least two or three times on the schematic (to test whether it is being packaged correctly). Then check and save your sheet. The check should reveal that your part is not "approved" - but you can ignore this message.

Close da_lms and then navigate to your test board in the Library Browser window. You are now ready for the acid test - to_layout. Invoke to_layout on your board using Test>Process Design>To Layout.... A pop menu will appear and then choose Specify Board. In the "To Layout" dialog box you must provide a path to a board geometry (any Released Physics Parts board will do), but you can leave the rest of the options at their default settings. To do this in the geometry section navigate to Relparts/geometries/pcb/pci board.

To_layout will provide you with a text file called "to_layout_log" inside your design directory. Even if it runs successfully, look over the to_layout_log to make sure there are no errors or warnings you should know about. If to_layout does not run successfully the first time, the to_layout_log can be extremely helpful in diagnosing the problem. (NOTE: See V. Notes, tips if you have error problems.)

To_layout will terminate if it finds errors which keep it from proceeding further. It will tell you this, and will normally shut down any applications it has invoked. However, it has also been known to crash, i.e. get "stuck" without terminating cleanly. If for any reason to_layout should crash, it is imperative that you do the following. In a Unix shell type the command "ps -ef" and wait for a list of all the processes currently running on your computer. Find all of the processes with your name on them, and make sure that none of the processes called by to_layout are still hanging around. If they are, type "kill" and then the process number (which is in the first column of numbers.) If you do not do this, to_layout will be likely to crash again because it will run out of process space, which is limited.

Once to_layout has run successfully, lay out your board. Save your design as you close Layout. Before you move on to releasing your part, double-check the to_layout_log to make sure everything went the way you wanted it to. Also double-check the catalog entry once more to make sure it has all of the properties that you want included.

The last steps in getting your part to the released library are to gather documentation on your part and put the part information in the right place. (Your symbol, mapping file, and geometry should be copied into the appropriate directories in the RELpart area only after it has been check by authorized personnel. If a geometry already exists in the RELpart area, be careful not to overwrite it). The geometries in that area have been meticulously checked. You will then need to bring the following information to a LMS Part meeting. If everything is in order, the Librarian will release your part. The items to document your part are the following:

  1. A print out of your symbol (located in Design Architect)
  2. A copy of the mapping file
    1. A print out of the geometry from Librarian. Make sure you have the pads loaded in and the View Style for Polygons set to Outline (Go to lms library open geometries then highlight the specific name. Click the right mouse button and Go to Edit, Geometry, Librarian : Note the order of the last three commands may not be in this specific order.
  3. A copy of the catalog entry (not right now since there isn't a way to do this)
  4. A copy of the data book sheet showing pin out

6. A copy of the data book sheet showing geometry specifics- this means the actual package dimensions

V. Notes, tips, etc....