>>
Home

>>
News

>>
Updates

>>
FAQ

>>
Users' Contributions

>>
User Discussion

>>
Links

>>
Photo's

>>
Contact Us






Schematic Editing

Author Thread: Assign Names to Devices and Signals in a Hierarchical Design?
AdminDW
Assign Names to Devices and Signals in a Hierarchical Design?
Posted: Thursday, September 02, 2004 1:17 PM (EST)
Device and Signal Naming in Hierarchical Designs

Purpose of This Note

This DesignNote describes the various ways of identifying objects in hierarchical designs and helps you choose the appropriate method for your application.

This note applies to: Windows Macintosh
DesignWorks Professional 3.0 + 3.0 +
DesignWorks Lite N/A N/A
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

DesignWorks Professional provides full facilities for creating hierarchical designs, i.e. designs in which a symbol on a circuit diagram can itself represent another nested circuit block.

In non-hierarchical ("flat") designs, identifying physical devices is quite simple since there is a one-to-one correspondence between symbols on the schematic and physical devices.  In flat designs, DesignWorks normally identifies devices by placing a unique "name" or "reference designator" in the Name attribute field.  This name can be automatically or manually assigned and can be used in netlists to uniquely identify the device to PCB layout or simulation packages.

In hierarchical designs, identifying objects is a bit trickier for a number of reasons:

One symbol in a subcircuit may actually represent multiple physical devices.  For more explanation of this, see the following example.
A physical board-level name (such as "U23") doesn't give the designer any idea which subcircuit block the object is located in, making navigation trickier in large designs.
The PCB layout or simulation system that is receiving netlist data from the schematic may have limitations or special requirements for naming.

The following sections describe the options available in DesignWorks for naming objects in hierarchical designs.

Example

Suppose you have created a symbol called BLOCK and defined a subcircuit for it containing a single device called GATE1 (specifically, its Name attribute contains "GATE1").  The subcircuit also has a signal that isn't connected to the outside world called ENABLE (again, this means its Name attribute is "ENABLE").

If your top level schematic contains two copies of BLOCK (call them B1 and B2), then your design physically has two GATE1's and two signals ENABLE. If you need to generate a flat netlist for PCB or simulation, you need to come up with a name that uniquely identifies each physical item.  There are two common ways of doing this:

1) You can use a "hierarchical name", i.e. a name made by concatenating the names (i.e. the Name attributes) of the nested blocks down to the individual item, in this case the physical devices would be B1/GATE1 and B2/GATE1 and the signals would be B1/ENABLE and B2/ENABLE.  The report generator will produce this kind of name using the $SIGHIERNAME and $DEVHIERNAME commands and you can change the "/" to whatever separator you want.  The advantages of using a hierarchical name are:  You don't need to run around to each physical item and assign a name, no "instance data" (i.e. InstName) needs to be stored, and the name gives you a clear path to where that item is in the design.  The disadvantages are:  The names are arbitrarily long and contain strange characters (so the PCB system may not accept them) and they bear no information about the physical location on the board (i.e. you don't get the U1, U2, etc that board and test people like).  This scheme uses only Name attributes and requires no instance data, so you can do it entirely in Pure hierarchy mode.

2) You can assign an "instance name" to each physical item.  In this case the schematic
package has to keep track of each possible path that can burrow down to a specific device and has to keep a separate copy of the instance information.  In the simple case above, the signal ENABLE has two sets of instance data associated with it.  This is what Physical hierarchy mode does.  In this case, you would typically use the Name field to provide a "logical" name for each item (like "GATE1") and then use the InstName field to assign the physical package or signal name.  Once you have assigned unique InstNames to items, you can't switch back to Pure mode, because you are telling the schematic package to keep only one set of definition data for each block and it discards the instance data.

The bottom line on all this is that it depends on what you're trying to get out the end.
For board level hierarchical designs, here is the typical scheme:

Do the initial design in Pure mode using only the Name field to assign logical names to
all items.  The logical name is something that may describe the function of each component, but does not reflect its physical location on the board.  The logical name need only be unique within its circuit block.
Switch to Physical mode and use the gate packager or manually assign package names (e.g.
U1, U2...) to each physical component.  Most board designers and test people don't find
names like B1/GATE1 to be very cool.
Use hierarchical names for signals.  Going around and assigning instance names to all
the signals is a hassle and they are less important because signal names are not usually a
big issue once the board is built.

Once instance names have been assigned, you can never go back to Pure mode or you will
lose them all.  If you want to go back to Pure mode because it makes the editing
easier, you could actually come up with a script that would write out all the instance
data to a text file and another one that would "back annotate" it back into the design
later if you wanted, however this is not a built-in function of DesignWorks and would require some development.

Note that the report generator can only produce "flattened" netlists in Physical mode.
If you have a Pure design and you want a flattened netlist, you have to switch it over
temporarily to give the report generator somewhere to keep its temporary data while it
flattens.




New Articles
  • DesignWorks Lite Mac 4.6.3b1
    Beta

  • New Release
    DesignWorks Professional for Windows Version 5.0

  •  

    New Posts

    There are no new posts

    Home   |  News   |  Updates   |  FAQ   |  Users' Contributions   |  User Discussion   |  Links   |  Photo's   |  Contact Us