Chapter 6: Advanced Editing
plug
6-9: Networks
6-9-3: Bus Naming
plug


The Bus arc of the Schematics technology is a special arc that can carry multiple signals (see Section 7-5-1). When giving a network name to Bus arcs, it is possible to specify complex bus names.

When a bus is unnamed, the system determines its width from the ports that it connects. Some tools (such as simulation netlisters) need to name everything, and so use automatically-generated names. When this happens, the system must choose whether to number the bus ascending or descending. To resolve this issue, use the Network Preferences (in menu File / Preferences..., "Tools" section, "Network" tab), and choose "Ascending" or "Descending". (For information about the "Node Extraction" portion of the Network Preferences, see Section 9-10-2.)

Figure 9.12

Individual wires that connect to a bus must be named with names from that bus. As an aid in obtaining individual signals from a bus, the Rip Bus command (in menu Edit / Arc) will automatically create such wires for the selected bus arc.

To find out what signals are on a bus, select that bus and use the Object Properties... command (in the Edit / Properties menu). In the full dialog (obtained by clicking the "More" button), select "List Shows Bus Members" to see a list of networks on the selected bus arc. When a node's port is a bus, you can see the signals on that bus by selecting that port of the node and using the Object Properties... command. In the full dialog, select "Bus Members on Port" to see the signals.

Arrayed Nodes

Besides using array names on busses, you can also give array names to cell instances in a schematic. Netlisters will create multiple copies of that node, named with the individual elements of the array.

Figure 6.28
When a cell instance is arrayed, the connections to its ports can be similarly arrayed. For example, suppose that schematic cell X has wire port Y and bus port Z[1:2]. An instance of cell X is arrayed by giving it the name M[2:4]. Ports Y and Z can be connected in two ways:

Note that it is not possible to array a primitive node from the Schematic technology. Instead, you must place that node inside of a cell, and array instances of the cell.

Parameterized Bus Names

It is possible to have variable-width busses by parameterizing their names. Electric maintains a list of global parameters, and these can be manipulated with the Edit Bus Parameters... command (in menu Edit / Properties). You can create and delete parameters, and can set values for each.
Figure 6.25

To use these parameters, you must add a template to an arc, node, or export name.

Figure 6.26
This figure shows an export called "in", and an arc called "internal". Both the export name and the arc name were selected, and the command Parameterize Bus Name issued (in menu Edit / Properties).

The templates are then shown near the original names. Arrayed nodes can also have their names parameterized.

You may type any text into the template. Wherever the string $(par) appears, it will be replaced with the parameter par. In this example, the parameter x has the value 7. You can also use simple arithmetic operators (just "+", "-", "*", and "/"), for example in[0:$(x)-1] defines a bus that runs from 0 to one minus the value of "x". When parameter values change, click the "Update All Templates" button to reevaluate all node, arc, and export names.


Prev Previous     Contents Table of Contents     Next Next