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

<<< Previous CBOLD Reference Home Next >>>

 

13. Engineering Change Orders

CBOLD contains no mechanisms specifically designed to implement engineering change orders. For example, there is no mechanism to support pin swapping. The design's source code must be modified to reflect any changes.

CBOLD is designed, however, to produce deterministic output, e.g., netlists. Nonetheless, the designer should understand the following:

1. Changing the order in which members are registered will change reference designators in some cases. It will also affect symbolic output such as the symbolic netlist.
2. Adding new members, especially parts, may affect output, especially reference designators.
3. It is always good practice for the user to specify a meaningful net name for every net. Changing a design may change automatically-assigned net names, but user-specified net names will not change unless changed by the user.

As described in the Designator Text Files section, CBOLD is able to output a text file listing all of the design's reference designators. This file is called a designator text file.

CBOLD can also read in a file of this same format prior to the automatic assignment of any reference designators. In this case, CBOLD assigns reference designators as specified in the file. This provides the designer with a mechanism for (1) manually assigning reference designators and/or (2) preserving existing automatically assigned reference designators. The former is typically useful when a reference designator should be compatible with some existing standard, e.g., the J1 and J2 backplane connectors in a VMEbus system. The latter is useful, for example, when a design flaw is discovered during layout and the designer needs to preserve existing reference designators while adding or removing parts.

In the CRB example design, the designer uses a designator text file to manually specify the reference designators for the "J5" and "J6" backplane connectors. If the designer had not done this, CBOLD would have automatically assigned reference designators, but these designators would have been confusing. For example, a "J5" connector might have a reference designator of R12J1 instead of R12J5 (the "J5" connector for slot 12).

The most convenient means of creating a designator text file for manually assigning reference designators is to:

1. Run the design's executable such that a "..._new_designators.txt" file is created.
2. Copy "..._new_designators.txt" to "..._old_designators.txt".
3. Remove all lines of "..._old_designators.txt" except those for parts whose reference designators are to be manually specified.
4. Edit the remaining lines of "..._old_designators.txt" to specify the desired reference designator for each part.

It is good practice for main() always to contain code to read in and write out reference designators. Such code is included in the skeleton design and is shown below.

int main( int argc, char* argv[] ) {
  ...
  Log << "Assigning reference designators";
 
// read in previously assigned designators, if any
#if 1
  ifstream DSrce;
  OpenFileI( DSrce, DESIGN_NAME "_old_designators.txt" );
  Root.ReadReferenceDesignators( DSrce );
  DSrce.close();
#endif
 
  Root.AssignReferenceDesignators();
  Root.CheckReferenceDesignators();                  // check for duplicates
 
#if 1    // >>> write out all designators before layout commences
// write out designators for possible future use
  ofstream DDest;
  OpenFileO( DDest, OUTPUT_BASE "_new_designators.txt" );
  Root.WriteReferenceDesignators( DDest );
  DDest.close();
#endif
  ...
}

If the file "..._old_designators.txt" does not exist, CBOLD proceeds as though the call to Root.ReadReferenceDesignators() had never been made.

 

<<< Previous CBOLD Reference Home Next >>>

Legal Copyright © 2007 by Coolquest, Inc. Contact