Coolquest, Inc. Home Products Support About Contact
cbold_logo_gif C++BOLD Reference Manual cbold_logo_gif

<<< Previous CBOLD Reference Home Next >>>

 

7. Connections

Section Contents

7.1. Overview
7.2. Practical Guide to Connecting
7.2.1. Simple Connections Between Port Ranges
7.2.2. Named Connections
7.2.3. Connections to Bundles
7.2.4. Connections to Two-Port Parts
7.2.5. Compound Connections
7.2.6. The merge() Function
7.2.7. The wireall() Function
7.2.8. The wire() Function
7.2.9. Bundles and the wire() Function
7.2.10. Using the bus() Function
7.3. Connecting Functions and Operators
7.3.1. << operator
7.3.2. ^ operator
7.3.3. merge()
7.3.4. wire() and wireall()
7.3.5. bus()
7.4. Net and Subbus Naming Conventions
7.5. Subbusses and Nets
7.6. Netlist Extraction
7.7. Additional Processing in Connect()

7.1. Overview

The designer codes electrical connections in the Connect() function of each module. In general, the connections are confined to the module whose Connect() is being called, though global connections are also supported.

The Connect pass is initiated by the Root.ConnectAll() call in the design's main():

int main(int argc, char* argv[]) {
  ...
  Log << "Connecting";
  Root.ConnectAll();   // wire up hierarchy
  ...
}

ConnectAll() is a pre-coded CBOLD function. In contrast, the designer codes the Connect() function for each module. The single call of Root.ConnectAll() in main() results in the call of every registered module's Connect().

Within Connect(), connections are made using the connection operators and functions:

<< This is the most commonly used connection operator. It is overloaded several times, so its meaning depends on its operand types (e.g., char*, TPortRange, TBundle).
^ This operator can be used to make connections to one port of a two-port part. Like <<, this operator's meaning depends on its operand types. At least one operand must be a two-port parts. The advantages of this operator are concise expression of connections and convenience. The user does not specify ports of the two-port part operand(s) when using the ^ operator. Instead, CBOLD finds the ports based on the position (left or right) of the ^ operator relative to the two-port part.
merge() This function connects all of the pins of a port range to a single net. This function is most commonly used when several pins of a port need to be tied high or low or when they need to be tied to the global no-connect net.
wire(), wireall() These functions automate otherwise tedious connection tasks. E.g., wireall( GND ); connects this module's port named GND to the port named GND (if any) of each member module/part. Like <<, these functions have meanings that depend on their operand types.
bus() This function returns a port range that represents the entire range of a new or existing subbus. There is seldom a need to use bus().

The following sections discuss the functions and operators above in detail.

 

<<< Previous CBOLD Reference Home Next >>>

Legal Copyright © 2007 by Coolquest, Inc. Contact