1.3.1 Database Concept
The key feature of the Bartels AutoEngineer design system is its powerful design database. It is a genuine object-oriented database since this has been proven to be optimum for accessing and processing the complex data types of different size used throughout the AutoEngineer. Powerful search algorithms are implemented for fast access to the database objects, and a high-sophisticated library management program provides simultaneous access to different symbol libraries. The user is able to define both standard libraries and job-specific libraries for particular projects. These libraries can be stored with the job and completely and/or partially transferred to or from a central standard system library.
Object Classes, Hierarchy
Each database entry is assigned to a predefined database class and is identified by an element name which is unique in this database class. Each element contains the data defined on that element, i.e., graphic items, texts, pin positions and pin designators on SCM and/or layout symbols, etc. Higher level database entries can refer elements of subordinate database hierarchy levels. Such a reference consists of the element placement coordinates, a name referring the subordinate database symbol, and the name of the placed element if it is a named reference. E.g., a layout contains the named references of the part symbols placed on the layout, the parts contain the named references to the padstack symbols defined on the part, and the padstacks contain the unnamed references to the pad symbols used on these padstack. All references of a certain element are transparent throughout the corresponding DDB file. When loading or copying that element, all pertinent references are automatically be loaded and/or copied.
All database classes are subject to general file and database management functions. I.e., the Schematic Editor is suitable for creating and manipulating SCM plans as well as for editing SCM library elements such as symbols, labels, and pins. The same is true for the Layout Editor concerning the creation and manipulation of layouts, parts, padstacks and pads. All functions are automatically adjusted to the current environment and database hierarchy level. Corresponding menus and functions from the Schematic Editor and the Layout Editor are quite similar. I.e., the SCM function is equivalent to the Layout Editor function, and the Layout Editor function is used for placing parts on layouts, for placing padstacks on parts or for placing pads on padstacks, whichever is appropriate for the currently loaded element. This concept creates far-reaching analogies for the processing of objects of different database classes and makes it fairly easy to learn how to use the BAE design system.
All program modules of the
Bartels AutoEngineer are working with the same database and file format. This file format is called Design DataBase (DDB) format. The
Each element is constructed dynamically during load. E.g., when loading a layout element to the Layout Editor, first the data pertinent to the layout is read and then the referenced part elements are loaded from the same project file; with each part element the referenced padstack symbols are loaded, etc. This dynamic load process presupposes that all required elements are available in the project file. The system will automatically check on missing library symbols, and requested elements not available are copied and loaded from the currently selected library. With this process, consistent construction of job-specific libraries without the need of storing redundant library elements in a job file is always ensured. This concept introduces considerable advantages with regard to project archiving or independence from master library availability. Modifications in a certain DDB file are reflected up the library hierarchy levels of that file without affecting any other DDB file, and the functions for deleting library elements prevent from erasing DDB file elements which are referenced by other elements from the same DDB file. I.e., data consistency throughout any particular DDB file is automatically ensured. Nevertheless, BAE provides powerful features for transferring library data between different DDB files such as the function from the menu which can be used for correlating job-specific libraries with master library contents.
Manufacturing Process Control
A further advantage of the BAE database concept is the possibility of adapting project-specific libraries to special manufacturing processes. For this purpose, so-called technology parts containing special pin and/or padstack definitions can be defined in technology-specific library files. With a technology part a complete set of technology-dependent pin definitions can be defined (e.g., SMD pad definitions for a special SMT soldering process or annular pad shapes for manual drilling). Functions such asor can be utilized for copying a technology part to a certain project file in order to include pin and/or pad definitions requested for a special manufacturing process.
Creating Library Elements
The Schematic Editor and the Layout Editor for creating new BAE library (and design) elements. After specifying the new element library hierarchy level the user is asked for the name of the DDB file where the element is to be stored, the name of the element to be created and the element boundaries. Subsequently, the element is defined by placing elements from subordinate library hierarchy levels and by creating additional objects such as documentary graphic, text, drill holes, contact areas, keepout areas, etc. (whichever is permissible on the currently edited library hierarchy level).function from the menu is used in both the
SQL Functions, Relational Databases
Bartels User Language provides SQL (Structured Query Language) functions for maintaining relational databases, thus introducing powerful software tools for programming database management systems. These tools e.g., can be utilized for integrating a component database to the Bartels AutoEngineer to perform stock and cost expenditure analysis on different variants of a layout including facilities for choosing components with controlled case selection and part value assignment. This however is just one example from the wide range of possible database applications; utilizing database systems could be worthwhile also in the fields of project and version management, address list maintenance, production planning and inventory control, supplier and customer registers management, etc. See the Bartels User Language Programmer's Guide for a detailed description of Bartels User Language and its integrated SQL functions.
1.3.2 SCM Database Hierarchy
Figure 1-4 shows the structure of the database hierarchy supported throughout the Bartels AutoEngineer SCM system.
The SCM sheet level is the top hierarchy level of the BAE SCM design system database. On SCM sheet level, the circuit diagram of a particular design is defined by generating SCM sheets, placing symbols and creating connections and busses. Labels, bus taps and module ports can be placed for defining signal names and for connecting different sheets. Graphic and text can be created for documentation purposes such as creating SCM sheet frames, including commentary text, etc. Part and net attribute values can be assigned for setting variable component properties and/or for controlling subsequent design processes such as Autorouting or CAM data output.
On SCM symbol level the schematic part symbols are defined (and stored to SCM symbol libraries). A schematic symbol is usually defined by placing elements from the subordinate marker level, thus creating the logical pins of the corresponding part. Graphic and text can be created on symbol level for including symbol outlines, part name references, attribute definitions, commentary text, etc.
Special symbols for signal naming purposes are defined on SCM label level. These symbols can be utilized on SCM sheet level for assigning signal names or signal levels to connections and/or busses, for tapping busses, for connecting different SCM sheets, etc.
Pin symbols are created by defining a contact area on SCM marker level. Marker symbols can be placed on SCM symbol and/or label level to determine the positions of the corresponding part pins. The contact area is required for connecting the corresponding pin on SCM sheet level. A reference designator text can be defined on marker level for showing pin names on symbol level. Marker symbols with a normal graphic area instead of a contact area can be utilized on SCM sheet level for creating and displaying T-connections.
1.3.3 Layout Database Hierarchy
Figure 1-5 shows the structure of the database hierarchy supported throughout the Bartels AutoEngineer PCB design system.
The layout level is the top hierarchy level of the BAE PCB design system database. On layout level the PCB contour is defined, the parts (from the subordinate layout part level) are placed, keepout areas, power planes and copper areas are defined, the traces are routed, and, finally, the CAM output is generated. Drawing items and text can be created on layout level for such things as plot registration markers, measurement, project identification, etc.
On layout part level the layout part symbols (i.e., the part package types) are defined (and stored to a layout part library). A particular layout part symbol is usually defined by placing elements from the subordinate padstack level in order to define the types and positions of the physical pins of the corresponding part. Traces and vias (e.g., for printed inductors), keepout areas (for part clearance check, defining via keepout areas, etc.), copper areas, drawing information (component outline on insertion plan) and text (for part name reference, insertion data pick point, attribute value display, etc.) can be created optionally.
On layout padstack level the layout pin symbols and vias are defined by placing symbols from the subordinate pad level. Each pad can be assigned to a signal and/or documentary layer thus designating contact areas for the routing or defining pad shapes for solder resist, SMD masks, etc. A drill hole and drill plan info can be created optionally for the definition of vias or drilled pins. Keepout areas can be utilized for controlling the pin contact mode. Documentary lines or areas can serve as pin designators on the silk screen or insertion plan and reference texts can be used for displaying pin names on part and/or layout level.
On layout pad level the pad shapes (i.e., the pin contact areas) are defined by creating passive copper areas. Different pad symbols can be assigned to different layers on a single padstack symbol thus defining a particular layout pin type.
1.3.4 Logical Library
The Bartels AutoEngineer logical library provides the link between the SCM library and the layout library. The logical library contains information about the assignment of SCM symbols to layout packages including gate definitions and pin mapping, pin/gate swap rules, predefined power supply pins, fixed part attributes, etc. All these definitions can be entered to an ASCII file to be subsequently transferred to a BAE DDB file using the loglib utility program (see chapter 7.11 of this manual for a description of the loglib utility program). The logical library definitions are required by the Packager for compiling logical net list data created by the Schematic Editor to physical net list data which can be processed by the BAE layout system (see chapter 3.2 of this manual for a more detailed description of the BAE Packager). During a Packager run, the logical library entries are checked against the corresponding layout library symbols for ensuring correct pin mappings. Please note that the Packager can evaluate only one library file at the same time, i.e., both the required logical library data and the requested layout library data must be stored to the same DDB file.
The following sequence of operations is recommended for the definition of a new part:
Once the above tasks are completed, the new SCM symbol can be used for circuit drawing, the Packager is able to assign this SCM symbol to the correct layout package, and the corresponding layout part is available for placement in the layout. For less-experienced users it is a good idea to use a test file for new definitions, and to perform a Packager test run before releasing new library parts for real projects. This should prevent from unintentionally introducing erroneous library definitions to BAE library and/or project files.