Home Forums Create My Own Gates with Auto-Packaging

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #864
    NeilMackenzie
    Keymaster

    Creating Multiple Unit Packages in DesignWorks

    Purpose of This Note

    This DesignNote describes how to create a device symbol for a gate or component that has multiple units per package. The attribute fields used by the Auto-Packaging features in DesignWorks are described.

    Most of what is included here is condensed from the chapter “Advanced Schematic Editing” in the DesignWorks manual and the section “Guide to Libraries” in the Notes section of the DesignWorks manual.

    This note applies to: Windows Macintosh
    DesignWorks Professional 3.0 + 3.0 +
    DesignWorks Lite 3.2 + 3.0 +
    LogicWorks N/A N/A
    Notes: N/A – not applicable to this version. “3.0 +” indicates version 3.0 and later.  Since this note may apply to multiple versions and platforms, there may be some variation in exact configuration of menu commands and screen layouts from that shown in this note, but the same principles apply.

    Introduction

    A multiple unit package is one that has several separate functions that may be broken out of a package and placed independently in a schematic. Each component, or unit, may have the same symbol and attributes or they may be different. If each unit has the same symbol and attributes then it may be stored in a DesignWorks library as one part. If any of the units have different symbols or attributes then they must have an entry in a library for each different type of unit.

    The unit is automatically selected by the packager if Auto-Packaging is enabled. The unit may also be manually selected via the “Unit” sub-menu in the device popup menu.

    IMPORTANT NOTE: Throughout this note, attribute values are shown in quotation marks, as in: Set the field Unit.List to “a,b,c,d”.

    The quotation marks are used in the text for clarity only and should not be entered as part of the value.

    Packaging Attribute Fields

    The gate packaging operation is accomplished via these attribute fields which are stored with the library part symbol:

    Field Name Set In Description
    Unit.All Part Contains a list of all units in the package, e.g. “a,b,c,d”, even if they are not all represented by this symbol. Unit names are normally a single letter, but can be any combination of letters and numbers up to 16 characters, e.g. “Tom,Dick,Harry,Fred”.
    Unit.List Part Contains a list of all the units in the package that can be represented by this particular symbol, e.g. “a,b”. In this case (and in most standard gate devices), all the devices in the package use the same symbol, so Unit.List and Unit.All are the same.
    VisPin.List Pin Contains the list of visible pin numbers, one for each unit in Unit.List. The number of items and order of VisPin.List must match the order of Unit.List such that the first number inVisPin.List corresponds to the number of the pin for the first Unit in the package.
    Part Part Contains the part name, e.g. the name that will appear in a bill of materials. This can be any desired name, but must be exactly the same in all symbols that can be combined into a single package. The Packager will never combine two symbols with different Part values into the same package. If there is no value in the Part attribute field, the library type name will be used.

    These attributes are normally set in the part definition using the Set Part Attributes and Set Pin Attributes commands in the DevEditor tool.

    IMPORTANT NOTE: The current version of the Packager is limited to 32 units per package. I.E. It cannot be used to created, for example, a 96-pin connector device shown as individual symbols.

    Examples

    Example 1 – Multiple Gates With Same Symbol

    A Hex Inverter (e.g. 7404) has six symbols in its package. Each of these symbols is identical and has identical attributes, so they can be represented by one entry for a 7404 in the library.

    Example of Multiple Gates

     

     

     

     

     

    In the above example the packaging attributes are set as follows:

    Field Value
    Unit.List “a,b,c,d,e,f”
    Unit.All “a,b,c,d,e,f”
    VisPin.List on the first pin “1,3,4,9,11,13”
    VisPin.List on the second pin “2,4,6,8,10,12”

    Note: The quotation marks ‘”‘ are shown for clarity only and are not entered in the value field.

    Example 2 – Multiple Gates With Different Symbols

    A 7450 Dual 2-Wide 2-Input AND-OR-INVERT Gate has two units. Each unit has a different symbol and thus two entries in the library, a “7450(N)A.a” and a “7450(N)A.b”.

    If a package has more than one entry in a library, we annotate this by appending the first unit number of the package that shares the same symbol. If all units are the same then the library name does not include the unit.Multiple Gates Example 2

     

     

     

     

    The packaging of the And/Or/Invert 7450 is accomplished via these attribute fields:

    In the “a” unit:

     

    Field Value
    Unit.List “a”
    Unit.All “a,b”
    VisPin.List on the first pin “11”
    VisPin.List on the second pin “12”
    Part “7450(N)A”
    etc….

     

    In the “b” unit:

    Field Value
    Unit.List “b”
    Unit.All “a,b”
    VisPin.List on the first pin “2”
    VisPin.List on the second pin “3”
    Part “7450(N)A”
    etc….
    1.  Note: The quotation marks ‘”‘ are shown for clarity only and are not entered in the value field.

    Example 3 – Discrete SIP Package

    As a final example we could create a resistor “SIP” package based on the “RES” symbol in the Discretes library. We want to create a 9 pin device containing 8 resistors all with a common pin on one side. Pin 1 will be the common pin and pins 2 through 9 will be the 8 resistors.

    To create this we will use the DevEditor tool and edit the RES symbol.

    1. From the DevEditor’s DevEdit menu we select “Part Attributes…”, This brings up the attributes dialog. Scroll to the “Unit.List” attribute and set its value to “a,b,c,d,e,f,g,h”. You could just as easily use “1,2,3,4,5,6,7,8” or “one,two,three,four,five,six,seven,eight”.
    2. Next select “Unit.All” and make it the same as Unit.List.
    3. Exit the Part Attributes dialog and then select “Pin Attributes…” from the DevEdit menu. The attributes for pin A should be visible in the dialog. Select the “VisPin.List” attribute and set its value to “2,3,4,5,6,7,8,9”.
    4. Now press the Next Pin” button at the bottom of the pin attributes dialog. The dialog should show the attributes for pin B. Set the VisPin.List attribute to “1,1,1,1,1,1,1,1”.
    5. Giving pin B all the same pin numbers for each unit will give the other side of the SIP for each resistor a pin number of 1 so that when individual resistors are placed around a schematic the report generator will merge all the pins together.
    6. Exit the Pin Attributes dialog and use “Save As…” to save the new part to one of your custom libraries. We don’t want to change the original RES definition.

    Now the new SIP type may be placed around a schematic with each resistor automatically packaged by the packager. It is still up to you to make sure that the common pin 1 is always connected to the same signal.

    Packaging Dark Image

     

     

     

     

     

     

     

     

     

     

    To change the above example into a resistor DIP package you only need change the VisPin.List for pin A to “1,2,3,4,5,6,7,8” and VisPin.List for pin B to “16,15,14,13,12,11,10,9”.

    Packager Error Codes

    A number of error messages may be displayed when an attempt is made to package a device with incorrect package attribute data. These are summarized in the following table.

    Error Message Meaning
    An error occurred trying to get a new package name…code 1 The package name generated by this operation was too long. I.e. prefix is too long or package numbers are getting very large.
    An error occurred trying to get a new package name…code 2 Some package names in Unit.List did not appear in Unit.All.
    An error occurred trying to get a new package name…code 3 Unit.List was empty when Unit.All was non-empty, i.e. the list of allowable gates was empty.
    An error occurred trying to get a new package name…code 4 Internal error – shouldn’t occur.
    An error occurred trying to get a new package name…code 5 Internal error – memory allocation problem.
    Error in package attributes or internal packager error Unit.List or Unit.All are empty, prefix too long, package number too large, or memory error. Occurs during Rescan Design.
Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.