Welcome to the Bartels Group of Companies make this page your Homepage... add this page to your Favorites... send this page to a friend... display printer friendly page... display sitemap... display sitemap with all page contents...
Utilities - Deutsche Version Utilities - English Version
Bartels

Bartels System GmbH
Bartels
Bartels AutoEngineer
BAE Product Info
BAE Price List
BAE Downloads
BAE Documentation
BAE Installation Guide
BAE User Manual
Preface
1 Introduction
2 Circuit Design
3 Packager
4 PCB Design
5 IC/ASIC Design
6 Rule System
7 Utilities
7.1 BAEHELP
7.2 BAESETUP, BSETUP
7.3 BICSET (IC Design)
7.4 BLDRING (IC Design)
7.5 CONCONV
7.6 COPYDDB
7.7 FONTCONV
7.8 FONTEXTR
7.9 INSTALL
7.10 LISTDDB
7.11 LOGLIB
7.12 NETCONV
7.13 REDASC
7.14 RULECOMP
7.15 ULC - User Language Compiler
7.16 User Language Interpreter
7.17 USERLIST
7.18 VALCONV
BAE Libraries
User Language Programmer's Guide
BAE Update History
BAE Next Version Release Notes Preliminary
BAE V8.0 Release Notes
BAE V7.8 Release Notes
BAE V7.6 Release Notes
BAE V7.4 Release Notes
BAE V7.2 Release Notes
BAE V7.0 Release Notes
BAE V6.8 Release Notes
BAE V6.6 Release Notes
BAE V6.4 Release Notes
BAE V6.2 Release Notes
BAE V6.0 Release Notes
BAE V5.4 Release Notes
BAE V5.0 Release Notes
BAE V4.6 Release Notes
BAE V4.4 Release Notes
BAE V4.2 Release Notes
BAE V4.0 Release Notes
BAE V3.4 Release Notes
BAE Support
BAE Contributions
BAE Development and Service Companies
Electronics Development
Bartels Sport Service
Company Profile
Corporate Info
Bartels :: Bartels AutoEngineer :: BAE Documentation :: BAE User Manual :: Utilities
Bartels AutoEngineer® - User Manual

Chapter 7
Utilities

Bartels AutoEngineer® Dokumentation

This chapter describes the utility programs of the Bartels AutoEngineer software. These utilities are additional programs that are run outside Bartels AutoEngineer, i.e., at the operating system prompt or in a batch file. With these programs useful add-on tools are supplied such as library management, DDB file contents listing, BAE software setup and configuration, ASCII net list import, etc.

 

Contents

7.1BAEHELP
7.2BAESETUP, BSETUP
7.3BICSET (IC Design)
7.4BLDRING (IC Design)
7.5CONCONV
7.6COPYDDB
7.7FONTCONV
7.8FONTEXTR
7.9INSTALL
7.10LISTDDB
7.11LOGLIB
7.12NETCONV
7.13REDASC
7.14RULECOMP
7.15ULC - User Language Compiler
7.16User Language Interpreter
7.17USERLIST
7.18VALCONV

 

7.1 BAEHELP

Name

baehelp - BAE Windows Online Documentation Access

Synopsis

baehelp [file]

Description

The baehelp utility program activates the Windows default web browsers and loads the optionally specified (HTML) file (or URL). baehelp automatically loads the BAE User Manual from the ../baedoc directory relative to the BAE programs directory if the argument is omitted.

Warnings

baehelp can only be used under Windows.

 

7.2 BAESETUP, BSETUP

Name

baesetup - Bartels AutoEngineer Setup Module
bsetup - Bartels AutoEngineer Setup Utility

Synposis

bsetup -encode <code>
bsetup setupfile

Description

Releasing BAE Software Authorizations

The bsetup command format

bsetup -encode <code>

is used for releasing BAE software updates and/or authorizations on previously delivered hardlock keys. The -encode option requires one argument specifying the authorization code for the BAE software configuration to be released. BAE authorization codes are provided by Bartels System GmbH on demand. When using the -encode option, bsetup must be called from the BAE programs directory on the machine where the hardlock key to be released is currently mounted. One BAE call is required immediately after running bsetup with the -encode option (and a valid authorization code) to release the new software authorization, i.e., to transfer the new authorization code from the BAE setup file bsetup.dat (where it has been stored to with bsetup) to the hardlock key (note message New Options : <sw-config>). Correct BAE authorization check is then ensured on subsequent BAE calls, i.e., BAE must be exited immediately after being called for releasing a new BAE authorization.

Defining and Modifying BAE Setup Data

The bsetup command format

bsetup setupfile

is used for defining user specified BAE configuration parameters and defaults, such as BAE menu color setup, layer menus, documentary layer definitions, standard library access paths, etc. bsetup accepts the setup file name setupfile as argument. This file must have an extension of .def but this extension must not be included with the command line. bsetup translates the setup file and stores the defined setup parameters to a file named bsetup.dat in the current directory. When starting the Bartels AutoEngineer or activating one of BAE's program modules the corresponding setup parameters are loaded from the bsetup.dat file in the BAE programs directory.

The Windows, Linux and Unix versions of the BAE software also provide the baesetup module for modifying the BAE system parameters. baesetup can be called using the Setup function from the BAE main menu. baesetup uses a graphical interface with dialog boxes, making it much easier to be operated than the bsetup utility which usually requires a DEF file containing the complete BAE parameter data set to be created and/or modified. baesetup also provides a function for exporting the setup data to a bsetup compatible DEF file.

Input File Format

Start Data, End Data, Comments

The setup file format must start with the keyword SETUP and must end with the keyword END.. Commentary text can be placed between /* and */.

LAYMENUTEXT Command

The LAYMENUTEXT command is used to set the names of the most used signal layers in the BAE layout system menus. The formal syntax of the LAYMENUTEXT command is

LAYMENUTEXT LINE <line> ("<text>",<layer>);

where <line> is the menu line number (in range 1 to 12), <text> is the text to be displayed in the layer selection menus, and <layer> is the signal layer to be used (range 1 to 100). A special LAYMENUTEXT command format is given by

LAYMENUTEXT TOPLAYER ("<text>");

The above command above defines the menu text for the top signal layer option of the layer selection menus.

LAYPADLAYER Command

The LAYPADLAYER command is used to enable or disable layer assignments on BAE layout library pad hierarchy level. The formal syntax of the LAYPADLAYER command is

LAYPADLAYER (ENABLE) ;

and/or

LAYPADLAYER (DISABLE) ;

The LAYPADLAYER command is historic and is used to support earlier versions of the BAE software. It is strongly recommended to use the DISABLE option when creating new layout elements. The pad layer assignment should only be enabled for updating old job files.

LAYPLTMARKLAY Command

The LAYPLTMARKLAY command defines a documentary layer to be used by the CAM Processor for film registration marks. This layer is always plotted with the All Layers mode. The formal syntax of the LAYPLTMARKLAY command is

LAYPLTMARKLAY (<layer>) ;

where <layer> is the documentary layer number (we recommend the "Plot Markers" layer).

LAYGRPDISPLAY Command

The LAYGRPDISPLAY command is applied for defining a documentary layer to be used for displaying layout groups at movement with the group Display Mode set to Display Layer Only. The formal syntax of the LAYGRPDISPLAY command is

LAYGRPDISPLAY (<layer>) ;

where <layer> is the documentary layer number.

LAYDOCLAYER Command

The LAYDOCLAYER command is used to define up to 100 documentary layers for the BAE layout system. Each documentary layer can have information relevant to either or both sides of the PCB. I.e., each documentary layer consists of three sides (sub-layers) named Side 1 (solder side, bottom layer), Side 2 (component side, top layer) and Both Sides (both component and solder side). This layer structure enables mirroring of SMT parts with all documentary text and graphic from the component side to the solder side and vice versa. When plotting Side 1 or Side 2 of a documentary layer with the All Layer mode, the Both Sides elements automatically are added to the output, i.e., they are plotted together with Side 1 and/or Side 2. The formal syntax of the LAYDOCLAYER command is

LAYDOCLAYER <layer> ("<text>",<side>,<rotate>[<,index>]) ;

where <layer> is the number of the documentary layer in a range of 1 to 100. The <text> entry is used for specifying an up to 18 character long name for the documentary layer (e.g., Silkscreen, Insertion Plan, etc.). The documentary layer name is displayed in the documentary layer selection menus of the BAE layout system. The <side> entry is used for specifying the query mode to be used with side selections when defining objects on the corresponding documentary layer. The choices for <side> are

SIDE1enables interactive input on Side 1 of the documentary layer only
SIDE2enables interactive input on Side 2 of the documentary layer only
BOTH enables interactive input on Both Sides of the documentary layer only
NONE causes the BAE layer menu functions to offer a submenu choice for selecting the documentary layer side on interactive input

The <rotate> parameter specifies the mode of text to be created on the corresponding documentary layer. The choices for <rotate> are:

LOGICAL text can be rotated and mirrored but remains readable (e.g., for silkscreen)
PHYSICALtext can be fully mirrored and rotated but cannot be moved with the Move Name and/or Move Attribute functions (e.g., for insertion plan)
NOROTATEtext with fixed mirror and rotate mode, i.e., the part can be rotated and mirrored but the text position remains fixed (e.g., for drill plan)

The <index> parameter is optional and specifies the color palette and layer menu output index for the documentary layer. Documentary layer output index numbers start at 1. Documentary layers without output index assignments are automatically assigned to free index output positions. This feature allows for frequently used documentary layers to be placed at the top of the documentary layer selection menus and/or to group documentary layer definitions within layer menus according to their functionality.

DOCMENU Command

The DOCMENU command can be used to assign frequently used docmentary layers to the top levels of the layer selection menus in the layout system. The formal syntax of the DOCMENU command is as follows:

DOCMENU <menuline> (<layer>) ;

<menuline> specifies the line and/or position for displaying the documentary layer <layer> in the top level layer menus.

USERUNITS Command

The USERUNITS command is used for setting the default units for the BAE layout system. Once set, this default is used whenever the user is prompted for size or coordinate input. The formal syntax of the USERUNITS command is

USERUNITS (METRIC) ;

and/or

USERUNITS (IMPERIAL) ;

where METRIC applies for mm units and INCH applies for inch units. Alternate units can always be used by adding either " (for inches) or mm (for mm) to the input value.

SCMDEFLIBRARY Command

The SCMDEFLIBRARY command is used to set the default SCM library path and the name of the SCM library file containing all the standard SCM symbol definitions (such as bustap, standard label, pin symbol, module port, etc.). The formal syntax of the SCMDEFLIBRARY command is

SCMDEFLIBRARY ("<libpath>/<stdlib>");

where <libpath> is the path to the directory which contains the SCM symbol library files and <stdlib> specifies the name <stdlib>.ddb of the SCM standard symbol library file in that directory. Please note the use of the slash / as directory and database hierarchy delimiter (instead of backslash \ as in DOS). With the SCM library path properly set any SCM symbol can be accessed either by selecting the library file and symbol from the Add Symbol popup menu or by specifying the symbol at the corresponding Add Symbol function prompt as in

<scmlib>/<symbolname>

where <scmlib>.ddb is the name of a SCM library file in the SCM library directory (e.g., 74ls/74ls90 for symbol 74ls90 in library 74ls.ddb, passiv/r for symbol r in library passiv.ddb, etc.). The SCM command Select Library (see menu Settings) can be used to redefine the standard SCM library path (- input resets the library, ! and/or . input restores the library path defined through SCMDEFLIBRARY).

LAYDEFLIBRARY Command

The LAYDEFLIBRARY command is used to set the default layout library file containing the layout symbols. The formal syntax of LAYDEFLIBRARY command is

LAYDEFLIBRARY ("<libpath>");

where <libpath> is the path name of the library file <libpath>.ddb. Please note the use of the slash / directory and database hierarchies delimiting (instead of backslash \ as in DOS). With the layout library path properly set any layout symbol can be accessed by specifying the symbol with the Add Part function as in

<symbolname>

where <symbolname> is the name of the part symbol (e.g., dil16, sot23, etc.). The Layout Editorr command Select Library (see menu Settings) can be used to redefine the standard layout library path (- input resets the library, ! and/or .> input restores the library path defined through LAYDEFLIBRARY).

The LAYDEFLIBRARY also sets the standard library file name to be used for logical library definition queries with the Show Symbol Logic function of the Schematic Editor.

LAYDEFELEMENT Command

The LAYDEFELEMENT command is used to set the default element name used when the enter key only is pressed in response to the layout board Element Name ? system prompt. The formal syntax of the LAYDEFELEMENT command is

LAYDEFELEMENT ("<layout-elementname>");

where <layout-elementname> is the default layout board element name. This command considerably simplifies the work with the BAE layout modules since on corresponding user queries the default layout element name can be specified just by pressing the return key Return/Enter Key (CR).

PROJROOTDIR Command

The PROJROOTDIR command is used to set the directory root path for the optional directory selection menus of the BAE file access functions. The directory popup menus display all subdirectories of the root directory specified with the PROJROOTDIR command. The formal syntax of the PROJROOTDIR command is:

PROJROOTDIR ("<rootdir>");

where <rootdir> is the path name of the directory selection root directory. If there is no PROJROOTDIR command defined in the setup file, then the current directory is used on default. Examples for <rootdir> are / (root directory of the current drive), d: (root directory of PC drive D:), c:/cad_data (directory cad_data on PC drive C:), /pcb/projects (directory pcb/projects of the current drive), etc. The <rootdir> entry must not contain any special characters such as . or \.

WINMENUMODE Command

The Windows and Motif versions of the BAE software can be operated with either the BAE standard user interface with side menus or with the windows-like user interface with pull-down menus. The WINMENUMODE command is used to activate the desired user interface. Use the following command to activate the BAE standard user interface with side menus:

WINMENUMODE (SIDEMENU);

Use the following command to activate the BAE user interface with pull-down menus (context menus through left mouse button, function repetition through right mouse button) for Windows and/or Motif versions of the BAE software:

WINMENUMODE (PULLDOWN);

Use the following command to activate the BAE user interface with pull-down menus (context menus through right mouse button, function repetition through left mouse button) for Windows and/or Motif versions of the BAE software:

WINMENUMODE (PULLDOWN_RMB_CONTEXT);

The BAE standard user interface is activated with the DOS and/or X11 versions of the BAE software or if the WINMENUMODE command is omitted in the BAE setup file.

FRAMECOLOR Command

The FRAMECOLOR command is applied for defining the BAE menu color setup. The formal syntax of the FRAMECOLOR command is

FRAMECOLOR <screenarea> (<colornumber>);

where <screenarea> designates the workarea of the BAE user interface and <colornumber> defines the color for the corresponding workarea. The <screenarea> choices for the user interfaces of the BAE graphic program modules (BAE Shell, Schematic Editor, Layout Editor, Autorouter, CAM Processor, CAM View) are:

IdentifierWorkarea
DIALAREA status/input line
LISTAREA text output/graphic workarea
MENUHEAD menu header/info field
MENUHEAD BACK menu header/info field background
MAINMENU main menu
MAINMENU BACK main menu background
SUBMENUA menu/submenu
SUBMENUA BACK menu/submenu background
EMENMARK menu cursor enabled (system waits for input)
EFILMARK menu bar enabled (system waits for input)
DMENMARK menu cursor disabled (system is busy)
DFILMARK menu bar disabled (system is busy)
POPMTEXT popup menu text
POPMBUTT popup menu button
POPMBACK popup menu background
POPMFRAM popup menu frame
POPMFILL directory popup menu background

The <colornumber> value is an integer between 1 and 15. The following table lists the color to color number assignments.

Color NumberColor
1blue
2green
3cyan
4red
5magenta
6brown
7light gray
8dark gray
9light blue
10light green
11light cyan
12light red
13light magenta
14yellow
15white

Examples

The following listing shows the contents of the BAE standard setup file stdset.def; this file resides in the BAE programs directory and is used as template for the user defaults:

SETUP

/* Bartels AutoEngineer Standard Setup */

/* Menu Layer Texts */
LAYMENUTEXT LINE 1   ("Layer &1 (Solds.)",1);
LAYMENUTEXT LINE 2   ("Layer &2",2);
LAYMENUTEXT LINE 3   ("Layer &3",3);
LAYMENUTEXT LINE 4   ("Layer &4",4);
LAYMENUTEXT TOPLAYER ("Layer n (Par&ts.)");

/* Documentary Layer Definitions */
LAYDOCLAYER 1 ("Insertion Plan",SIDE2,LOGICAL);
LAYDOCLAYER 2 ("Solder Mask",NONE,PHYSICAL);
LAYDOCLAYER 3 ("Drill Plan",BOTH,NOROTATE);
LAYDOCLAYER 4 ("Film Markers",BOTH,PHYSICAL);
LAYDOCLAYER 5 ("Floor Plan",BOTH,LOGICAL);
LAYDOCLAYER 6 ("Part DRC",SIDE2,LOGICAL);
LAYDOCLAYER 7 ("Pin Number",SIDE2,LOGICAL);
LAYDOCLAYER 8 ("Solder Paste (SMT)",SIDE2,LOGICAL);
LAYDOCLAYER 9 ("Measure/Notes",SIDE2,LOGICAL);

/* Pad Layer Query */
LAYPADLAYER (DISABLE);

/* Film Markers Doc. Level */
LAYPLTMARKLAY (4);

/* Group Load Display Doc. Level */
LAYGRPDISPLAY (5);

/* Standard Search Paths and Names */
SCMDEFLIBRARY ("/baelib/stdsym");
LAYDEFLIBRARY ("/baelib/laylib");
LAYDEFELEMENT ("s1");

/* Default User Measure Units */
USERUNITS (METRIC);

/* Windows/Motif Menu Type */
WINMENUMODE (PULLDOWN);

/* Standard Graphic Color Setup */
FRAMECOLOR DIALAREA (11);
FRAMECOLOR LISTAREA (14);

/* Side Menu Color Setup */
FRAMECOLOR MENUHEAD (10);
FRAMECOLOR MENUHEAD BACK (8);
FRAMECOLOR MAINMENU (12);
FRAMECOLOR MAINMENU BACK (8);
FRAMECOLOR SUBMENUA (10);
FRAMECOLOR SUBMENUA BACK (8);

/* Menu Cursor Color Setup */
FRAMECOLOR EMENMARK (2);
FRAMECOLOR DMENMARK (15);
FRAMECOLOR EFILMARK (8);
FRAMECOLOR DFILMARK (4);

/* Popup Menu Color Setup */
FRAMECOLOR POPMTEXT (3);
FRAMECOLOR POPMBUTT (14);
FRAMECOLOR POPMBACK (8);
FRAMECOLOR POPMFRAM (15);
FRAMECOLOR POPMFILL (1);

/* Text Programs Color Setup */
FRAMECOLOR DIALLINE (10);
FRAMECOLOR OUTLINES (14);
FRAMECOLOR HEADLINE (12);

END.

It is recommended to change the setup.def file to define required setup parameters such as library path settings, layer assignments, etc. Then apply the bsetup utility program to convert the setup file stdset.def to the bsetup.dat file as in

>  bsetup stdset Return/Enter Key (CR)

Files

bsetup.dat -- Setup parameter file (in BAE programs directory)
stdset.def -- Setup file template

See also

BAE Shell, Schematic Editor, Layout Editor, Autorouter, CAM Processor, CAM View, Packager.

Diagnosis

The error messages issued by bsetup are intended to be self-explanatory.

 

7.3 BICSET (IC Design)

NOTE: The bicset utility program is only available in Bartels AutoEngineer IC Design!

Name

bicset - Bartels AutoEngineer IC Design Setup Utility

Synopsis

bicset setupfile

Description

The bicset utility program is used for the definition and/or configuration of Bartels AutoEngineer IC Design system parameters such as standard cell dimensions for automatic placement, layer assignments and layer menu definitions, DRC parameters, etc. bicset accepts the setup file name setupfile as argument (this file must have the extension .def, however, this file name extension should be omitted in the command line). bicset translates the setup file and stores the defined setup parameters to a file named bsetup.dat in the current directory. These parameters are loaded and/or activated from the bsetup.dat file in the BAE programs directory when starting any of the program modules of the Bartels AutoEngineer IC Design system.

Input File Format

Start Data, End Data, Comments

The setup file format must start with the keyword SETUP and must end with the keyword END.. Commentary text can be placed between /* and */.

Sorry, this information is currently being updated.

Examples

The Bartels AutoEngineer IC Design system comes with the following setup file (icset.def; see BAE programs directory):

SETUP

/* Bartels AutoEngineer IC Design Setup */

Sorry, this information is currently being updated.

END.

You can adapt the settings in icset.def to your specific requirements and use the bicset utility program to compile and activate these settings:

>  bicset icset Return/Enter Key (CR)

Files

bsetup.dat -- Setup parameter file (in BAE programs directory)
icset.def -- Setup file template

See also

BAE Shell, Chip Editor, Cell Placer, Cell Router.

Diagnosis

The error messages issued by bicset are intended to be self-explanatory.

 

7.4 BLDRING (IC Design)

NOTE: The bldring utility program is only available in Bartels AutoEngineer IC Design!

Name

bldring - Bartels AutoEngineer IC Design Build Ring Utility

Synopsis

bldring ringdescriptionfile

Description

The bldring utility program automatically creates a chip layout template from a description file. This file contains informationen about the cells used and sections for placing an outer (rectangular) ring with bonding pad cells and other arbitrary cell placements. Only the placement sequence of the bonding pad cells must be specified for each ring side. The actual bonding pad cell placement coordinates are automatically calculated from the cell macro descriptions and the ring dimensions. Ring sections which are not occupied by bonding pads are automatically filled with metal structures for carrying two power supply signals through. Fixed cell placement coordinate specifications can be relative to the ring outline, thus allowing for pre-defined structures to be used on chip layouts with different dimensions. bldring expects the ring description file ringdescriptionfile as argument (this file must have the extension .rig, however, this file name extension should be omitted in the command line). The name of the output project file and the element name of the chip layout to be created are specified in the ring description file.

Input File Format

Start Data, End Data, Comments

The setup file format must start with the keyword ring and ends when the end of the file is reached. Commentary text can be placed between /* and */.

Sorry, this information is currently being updated.

Examples

Sorry, this information is currently being updated.

Files

See also

Chip Editor.

Diagnosis

The error messages issued by bldring are intended to be self-explanatory.

 

7.5 CONCONV

Name

conconv - Connections Conversion Utility

Synopsis

conconv projectname libraryfile

Description

The conconv utility program is used for transferring ASCII net list data to the Bartels AutoEngineer. Supported net list formats are BARTELS, CALAY, MARCONI, and RACAL. Net lists from other systems can often be written in one of these formats providing a convenient link between other schematic systems and the powerful BAE layout facilities.

conconv accepts the net list file name projectname as first argument. This file must have an extension of .con but this extension must not be included with the command line.

conconv accepts the layout library file name libraryfile as second argument. This file must have an extension of .ddb but this extension must not be included with the command line. The libraryfile is expected to be in BAE DDB (Design DataBase) format and must contain the layout part definitions referenced from the net list.

conconv reads the ASCII net list <projectname>.con and checks all net list layout symbols with the corresponding entries in the layout library <libraryfile>.ddb. conconv generates the design file <projectname>.ddb and a free list named <projectname>.fre. The free list contains an unconnected pins report. After successful processing, an internal physical net list will exist in the design file named <projectname>.ddb. A layout element can then be created in that design file, parts placed and traces routed.

Input File Format

Start Data, End Data, Comments

The net list file format must start with the LAYOUT command and must end with the keyword END.. Commentary text can be placed between /* and */. The formal syntax of the LAYOUT command is:

LAYOUT <elementname> ;

where <elementname> is the name of the net list and/or layout element to be created in the destination file.

Part List

The part list section is expected after the LAYOUT command and must start with the keyword PARTS. Each part is defined by a command in the form

<part> : <plname> ;

where <part> is the part name (e.g., C1, R1, IC15, etc.), and <plname> is the physical library name of the package (e.g., DIL14, SO20, etc.).

Net List

The net list section is expected after the parts list. Different net list formats are supported. A keyword preceding the net list information is used to designate the net list format type (CONNECT for Bartels AutoEngineer format, CALAY for CALAY format, RACAL for RACAL format, MARCONI for MARCONI format). Each net in the Bartels AutoEngineer format is defined by a command in the form

<part>.<pin>=<part>.<pin>=...=<part>.<pin>

and/or

/<net>/ <part>.<pin>=<part>.<pin>=...=<part>.<pin>

where <part> is the part name as defined in the part list, <pin> is the pin name of that part, and <net> is the net name. The BAE net list format supports optional net attribute definitions to be specified after the "/<net>/" command in the following form:

PRIORITY(<prior>) MINDIST(<dist>) ROUTWIDTH(<width>)

The net attributes are used for controlling the Autorouting process. <prior> is the net-specific routing priority, <dist> is the net-specific minimum distance, and <width> is the net-specific routing width. With each pin a pin-specific routing width can be defined optionally; this value must be enclosed in parentheses behind the <pin> specification. <prior> must be in positive integer units (the greater the value the higher the routing priority), all other net attribute values are assumed to be in positive mm units.

Each net in the CALAY format is defined by a command in the form

<part>(<pin>),<part>(<pin>),...,<part>(<pin>)

and/or

/<net> <part>(<pin>),<part>(<pin>),...,<part>(<pin>)

The CALAY format supports optional pin-specific routing widths (in mm units). The pin routing width specification must follow the <pin> definition and must be separated from <pin> by a comma character (,).

Each net in the RACAL format is defined by a command in the form

.ADD_TER        <part> <pin> <net>
.TER            <part> <pin>
                <part> <pin>
                :
                <part> <pin>

The RACAL net list must end with the keyword .END.

Each net in the Marconi format is defined by a command in the form

<part> <pin> <part> <pin> ... <part> <pin> ; <net> /

Examples

Net list (design.con) in Bartels AutoEngineer format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
CONNECT
        /net1/ c2.2=t1.3;
        /net2/ c1.2(0.4)=t1.2=r1.2;
        /gnd/ PRIORITY(2) MINDIST(0.4) t1.1=c1.1(0.4);
        /vcc/ PRIORITY(1) ROUTWIDTH(0.5) c2.1=r1.1;
END.

Net list (design.con) in CALAY format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
CALAY
        /net1 c2(2),t1(3);
        /net2 c1(2,0.4),t1(2),r1(2);
        /gnd t1(1),c1(1,0.4);
        /vcc c2(1,0.5),r1(1,0.5);
END.

Net list (design.con) in RACAL format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
RACAL
        .ADD_TER        c2 2 net1
        .TER            t1 3
        .ADD_TER        c1 2 net2
        .TER            t1 2
                        r1 2
        .ADD_TER        t1 1 gnd
        .TER            c1 1
        .ADD_TER        c2 1 vcc
        .TER            r1 1
.END
END.

Net list (design.con) in MARCONI format:

LAYOUT board;
PARTS
        c1 : cap50;
        c2 : cap75;
        r1 : res;
        t1 : tebc;
MARCONI
        c2 2 t1 3 ; net1 /
        c1 2 t1 2 r1 2 ; net2 /
        t1 1 c1 1 ; gnd /
        c2 1 r1 1 ; vcc /
END.

The net lists above can be transferred to BAE by applying the conconv program as in the command

>  conconv design laylib Return/Enter Key (CR)

which causes conconv to read the ASCII net list design.con, check the part list entries against the layout library definitions in laylib.ddb, and store the net list named board to the job file design.ddb. After successful processing, the Layout Editor can be started, a layout named board (same name as net list for correct connectivity access) can be createdw and the net list parts can be loaded and placed using the Place Next Part function from the Parts menu. For pin assignment correctness the same layout library as specified with the conconv call must be used for loading the parts (apply the Select Library function from the Settings menu to select the correct library file).

See also

netconv

Diagnosis

The error messages issued by conconv are intended to be self-explanatory.

Warnings

Input file identifiers for part names, pin names or net names containing special characters (-, +, /, (, =, ...) must be enclosed in single-quotes or double-quotes.

 

7.6 COPYDDB

Name

copyddb - Copy Design Database Utility

Synopsis

copyddb srcfile dstfile {-ms|-md|-mr}
        {-a|-as|-al|-ac|-sp|-ss|-sl|-sm|-ll|-lp|-ls|-ld|-cl|-cc|-cp|
         -drc|-llib|-gtab|-fnt|-sct|-lct|-ict|-ulp|-ull|-rule|-recover} [pattern]

Description

The copyddb utility program copies selected database class entries and all their references from one DDB (Design DataBase) file to another. copyddb can be used as a batch mode driven tool for merging libraries or updating job design files.

copyddb accepts two filenames as arguments. srcfile and dstfile are the names of the DDB source file and the DDB destination file (these files must be available with extension .ddb unless file name extensions are explicitly included with the file name specifications). copyddb copies elements from the source file to the destination file. The merge switch is used to control whether existing destination file entries should be replaced overwritten (source file is master) or not (destination file is master) or whether only existing destination file elements should be overwritten (replace).

copyddb optionally accepts a key pattern string as argument. The pattern denotes the name(s) of the elements to be copied. Wildcards are allowed with the pattern specification. All elements of the selected class are copied if no pattern is specified. The object class of the element(s) to be copied is selected with the class switch.

Options

Merge Switch (required):

-msmerge source (source file is master)
-mdmerge destination (destination file is master)
-mrmerge replace (source file is master)

Class Switch (required):

-a all classes
-as all SCM classes (same as all -s? switches)
-al all layout classes (same as all -l? switches)
-ac all chip/IC design classes (same as all -c? switches)
-sp SCM plans (with part list and logical net list)
-ss SCM symbols (with logical library)
-sl SCM labels
-sm SCM marker
-ll layout plans (with physical net list and paths)
-lp layout parts
-ls layout padstacks
-ld layout pads
-cl chip/IC design layouts (with physical net list and paths)
-cc chip/IC design cells
-cp chip/IC design pins
-drc layout design rule check parameter blocks
-llib logical library entries
-gtab Gerber aperture tables
-fnt BAE font data
-sct SCM color tables
-lct layout color tables
-ict chip/IC design color tables
-ulp User Language programs
-ull User Language libraries
-rule Rule system definitions
-recoverall classes (recovery mode for corrupt DDB files)

Examples

To copy all layout symbols with element names matching so1* (e.g., so14, so16, ...) from newlib.ddb to laylib.ddb with laylib.ddb supposed to be the master file:

>  copyddb newlib laylib -md -lp so1* Return/Enter Key (CR)

To copy all schematic design data from design.ddb to redesign.ddb with design.ddb supposed to be the master file:

>  copyddb design redesign -ms -as Return/Enter Key (CR)

To update the padstack definitions matching finger* in design.ddb according to the definitions in laylib.ddb:

>  copyddb laylib design -ms -ls finger* Return/Enter Key (CR)

To copy all User Language libraries from ulcprog.vdb to ullibs.sav with ulcprog.vdb supposed to be the master file:

>  copyddb ulcprog.vdb ullibs.sav -ms -ulp Return/Enter Key (CR)

Replace layout parts in design.ddb with corresponding parts from library.ddb, i.e., update job-specific layout library in design.ddb:

>  copyddb library design -mr -lp Return/Enter Key (CR)

Files

bae.log -- logfile (written to current directory)

See also

listddb

The functionality for copying DDB file elements is also implemented through the ddbcopyelem User Language system function.

Diagnosis

The error messages issued by copyddb are intended to be self-explanatory.

Warnings

copyddb is a powerful tool for manipulating DDB file contents. Be aware of WHAT you are doing with copyddb. Conflicts can occur when merging SCM and/or layout plans from different design files since the part lists, net lists, part attributes, etc. are merged, too (i.e., you might run into serious Packager and/or Backannotation problems, when using copyddb inappropriately). We strongly recommend to check the destination file consistency after applying copyddb!

 

7.7 FONTCONV

Name

fontconv - Font Conversion Utility

Synopsis

fontconv fontfile libraryfile

Description

The fontconv utility program compiles standard ASCII format vector font data into a Bartels AutoEngineer font file.

fontconv accepts the font description file fontfile as first argument. This file must have an extension of .fon but this extension must not be included with the command line.

fontconv accepts the layout library file name libraryfile as second argument. This file must have an extension of .fnt but this extension must not be included with the command line. fontconv stores the translated font data to libraryfile.

The Bartels AutoEngineer standard font library file is named ged.fnt. This file is stored to the BAE programs directory and contains the font(s) used by the AutoEngineer.

Input File Format

The font description file must start with the FONT command (for defining the name of the font) and must end with the keyword END.. Commentary text can be placed between /* and */. The font description file is structured according to

FONT <fontname>;
CHAR <ord>;
        POLY (0, 0), (10, 10), (10, 0) ;
        :
:
END.

where <fontname> is the name of the font to be created, and where <ord> is the ordinal ASCII number of the character (e.g., character A would be number 65). The valid value range for <ord> is 0..255. If the font description file contains multiple character definitions for the same <ord> value, then fontconv stores only the last of these definitions. Each character (CHAR) is defined by a list of polygon lines (POLY). Each polygon definition consists of a list of polygon corner point coordinates. The coordinates must be specified in positive integer units in a 32x48 point grid area. The [0,0] coordinate refers to the left bottom corner of the grid area. The valid value range for X coordinates is 0..31, and the valid value range for Y coordinates is 0..47. Each character definition can have a maximum of up to 32 corner points.

Examples

Font description file test.fon containing definitions for ! and " (with 4 corner points and 2 polygons each):

/* Library font name */
FONT test;
/* ASCII code 33 for '!' */
CHAR 33;
        /* Lower vertical line */
        POLY (16,5),(16,9);
        /* Upper vertical line */
        POLY (16,13),(16,45);
/* ASCII code 34 for '"' */
CHAR 34;
        /* Left line */
        POLY (12,40),(4,32);
        /* Right line */
        POLY (16,32),(24,40);
END.

The font description file listed above can be transferred to the font library file ged.fnt by applying fontconv as in

>  fontconv test ged Return/Enter Key (CR)

Files

ged.fnt -- BAE font library file (in BAE programs directory)

See also

fontextr

Diagnosis

The error messages issued by fontconv are intended to be self-explanatory.

Warnings

fontconv overwrites existing fonts in the destination file without any comment.

 

7.8 FONTEXTR

Name

fontextr - Font Extraction Utility

Synopsis

fontextr fontname libraryfile

Description

The fontextr utility program analyzes BAE internal vector font data and generates an editable ASCII font description file.

fontextr accepts the font name fontname as first argument. This is the name of the font to be extracted from the font file. fontextr writes the ASCII font data to a file named <fontname>.fon.

fontextr accepts the font library file name libraryfile as second argument. This file must have an extension of .fnt but this extension must not be included with the command line. The font library file is the file from which the user wants to extract font data.

The Bartels AutoEngineer standard font library file is named ged.fnt. This file is stored to the BAE programs directory and contains the font(s) used by the AutoEngineer.

To find out which fonts are stored in a font library file apply the fontextr call with a <fontname> that does not exist in the font file and fontextr lists the fonts in the file.

Output File Format

The font description file starts with the FONT command (defining the name of the font) and ends with the keyword END.. Commentary text can be placed between /* and */. The font description file is structured according to

FONT <fontname>;
CHAR <ord>;    /* 'ASCII character' */
        POLY (0, 0), (10, 10), (10, 0) ;
        :
:
END.

where <fontname> is the name of the font and <ord> is the ordinal ASCII number of the character (e.g., character A would be number 65). The valid value range for <ord> is 0..255. Each character (CHAR) is defined by a list of polygon lines (POLY). Each polygon definition consists of a list of polygon corner point coordinates. The coordinates are specified in positive integer units in a 32x48 point grid area. The [0,0] coordinate refers to the left bottom corner of the grid area. Hence, the valid value range for X coordinates is 0..31, and the valid value range for Y coordinates is 0..47. Each character definition has a maximum of up to 32 corner points. At the end of each character definition header line a comment is printed for showing the ASCII representation of the character.

Examples

To extract the data of font standard from the font library file ged.fnt (font data output is directed to ASCII file standard.fon):

>  fontextr standard ged Return/Enter Key (CR)

Files

ged.fnt -- BAE font library file (in BAE programs directory)

See also

fontconv

Diagnosis

The error messages issued by fontextr are intended to be self-explanatory.

 

7.9 INSTALL

Name

install - Bartels AutoEngineer Installation Utility

Synopsis

install
install [-c] srcfile[pattern] dstfile[directory\*]

Description

The install utility program is applied for installing the Bartels AutoEngineer PC software (or parts of it) to the PC hard disk. install can also be used for packing (compressing) and/or unpacking (decompressing) selectable files.

The install utility program is the one and only tool feasible for performing a correct PC installation since the BAE PC software files are stored in compressed format on the disks of the BAE install media.

Modes of Operation

BAE Software Installation

The BAE PC software installation process can be started with the

install

command, where the current directory must contain the contents of the BAE install media, i.e., either floppy disk 1 of the BAE install kit or the BAE CD-ROM must be mounted, and the working directory must be set to the corresponding drive. The install program comes up with a self-explanatory dialogue, where the user (amongst other parameters) has to specify the install mode. The install mode is used to select the file set to be installed. Standard install modes copies all software files. Update install modes does not replace certain system files ending on .dat, .def and .fnt. I.e., update install mode should be selected to prevent the install program from overwriting existing user-defined setup data, color tables, font definitions, aperture tables, etc. The install program also prompts for the destination directories. The directory default names can be accepted by pressing the return key Return/Enter Key (CR). Each destination directory path name can be edited or can even be deleted to suppress installation of the corresponding component(s) of the software. Any of the destination directories not yet existing is automatically created with user verification.

Compress/Decompress Files

The formal install syntax for compressing and/or decompressing selectable files is

install [-c] srcfile[pattern] dstfile[directory\*]

where option -c activates compression and decompressing is applied by omitting that option. Wildcards (pattern) can optionally specified with the srcfile source file argument. The \* string is required at the end of the destination directory specification when selecting multiple files with wildcards.

Examples

Decompress all .ddb files from floppy/drive A and store the decompressed files to directory baelib on hard disk drive C:

>  install a:\*.ddb c:\baelib\* Return/Enter Key (CR)

Decompress the file ged.fnt from floppy drive B and store the decompressed file to directory bae on hard disk drive D:

>  install b:\ged.fnt d:\bae Return/Enter Key (CR)

Compress the file design.ddb and store the compressed file to design.cmp:

>  install -c design.ddb design.cmp Return/Enter Key (CR)

Diagnosis

The error messages issued by install are intended to be self-explanatory.

 

7.10 LISTDDB

Name

listddb - List Design Database Utility

Synopsis

listddb ddbfile listfile

Description

The listddb utility program lists the contents of a DDB (Design DataBase) file to an ASCII file.

listddb accepts the DDB file name ddbfile as first argument. This file must be available with extension .ddb unless a file name extension is explicitly included with the file name specification.

listddb accepts the listing file name listfile as second argument. This is the name of the ASCII destination file for the listing.

Examples

To list the contents of DDB file laylib.ddb to ASCII file laylib.lst:

>  listddb laylib laylib.lst Return/Enter Key (CR)

See also

copyddb

Diagnosis

The error messages issued by listddb are intended to be self-explanatory.

Warnings

The listfile argument is the name of the ASCII file to be created by listddb. listddb does not perform any file existence check, and the destination file is overwritten without any comment. It is strongly recommended to refrain from specifying existing file names unless the destination file is not needed any more.

 

7.11 LOGLIB

Name

loglib - Logical Library Maintenance

Synopsis

loglib loglibfile libraryfile

Description

The loglib utility program compiles an ASCII text file containing the relationship between logical symbols and physical parts into a Design DataBase (DDB) file. The information transferred by loglib includes assignment of SCM symbols to layout parts, logical to physical pin mapping, pin/gate swap definitions, predefined power supply pins, fixed part attributes, etc. This information is required by the Packager for translating logical net lists (generated by SCM) into physical net lists (processed by the layout system), and it is also required by Backannotation for transferring net list changes (pin/gate swap, part name changes) from the layout to the schematic circuit.

loglib accepts the loglib file name loglibfile as first argument. loglibfile is an ASCII file containing logical library part definitions. This file must have an extension of .def but this extension must not be included with the command line.

loglib accepts the layout library file name libraryfile as second argument. This file must have an extension of .ddb but this extension must not be included with the command line. The libraryfile is expected to be in BAE DDB (Design DataBase) format and should contain the layout part definitions.

Usage

The loglib utility program must be used to update the logical library whenever a new SCM symbol is added to the library or when an SCM symbol and/or a layout part definition has been modified in a way that changes the relationship between them (e.g., change of a pin name). Usually the SCM symbol is the first to be designed (or edited). Then the layout part will be defined (if not yet existing). Finally, the loglib file is created and the logical library definitions herein are translated to the layout library using the loglib program.

Input File Format

Start Data, End Data, Comments

The loglib input file format must start with the keyword LOGLIB and must end with the keyword END.. Commentary text can be placed between /* and */.

part Command

The part command is applied for assigning an SCM symbol to a layout symbol. The formal syntax of the part command is:

part <llname> : <plname>

where <llname> is the logical library name (i.e., the name of the SCM symbol) and <plname> is the physical library name (i.e., the layout package type). Keyword default can optionally be set before <plname> to enable different (non-default) layout package assignment by setting a value for the $plname attribute at the corresponding SCM symbol:

part <llname> : default <plname>

The part also supports alternate package type definitions which can be assigned during part placement in the Layout system. The part command syntax for defining alternate package types is:

part <llname> : [default] <plname>[,<plname>,...,<plname>]

where <llname> specifies the name of the SCM symbol, and the <plname> entries specify the list of valid part package types. The first <plname> entry is used as default package type. The subsequent <plname> entries define the list of alternate package types for the corresponding part. Alternate part package types can be assigned using the Alternate Part function during part placement in the Layout Editor. The sequence of the alternate package type menu entries provided by the Alternate Part function corresponds with the sequence of <plname> entries specified with the part command. Note however that any package type assignment defined with $plname attribute settings override Alternate Part assignments.

The class keyword can be used to assign the part to a part class:

part <llname> : class <partclassname> [default] <plname>

Part class assignments are used by the Packager to check whether alternate part definition assignments through the $rlname (Requested Logical Library Name) attribute are permitted.

The following part command format is used for deleting part assignments from the logical library:

delete part <llname> ;

The part command provides special format

part <llname> : virtual ;

which does not reference any physical part. This is applied to avoid errors when symbols have been used in the schematic that don't relate to parts in the PCB (e.g., company logos, drawing borders, etc.). This format is also used for setting net attributes (see below).

The part command also allows for the definition of pure logical parts by using the keyword logical as in

part <llname> : logical ...

Logical parts do not have a physical package assignment and can be used for generating logical (e.g., EDIF) net lists for PLD and/or LCA design.

Some parts have elements that require different symbols, for example relays. The symbol for the relay's coil is very different from that of the contacts and springsets and these may well need to appear on different sheets of the schematics. One symbol is chosen to be the main symbol and given a logical library name whilst the other symbols are given other logical library names. The relationship between the symbols is defined using the keywords mainpart and subpart as in

part <mainllname> : mainpart <plname>
:
part <subllname> : subpart <mainllname>

Note that the subpart definition provides a link to the logical library name of the mainpart (<mainllname>) instead of a <plname>. This feature can also be applied for providing power supply symbols.

The relationship between the pin names in the SCM symbol and the pin names in the physical part definition could be 1:1. I.e., the pin names of a resistor could be 1 and 2 and these could translate to 1 and 2 in the physical part. In this case only the relationship between the names of the SCM symbol and the physical part need to be defined as in

part <llname> : <plname> ;

where the semicolon is used to complete the part command. In most cases however additional information is required (such as pin/gate swap definitions, fixed part attributes, power supply pins, etc.) with must be provided with part <commands> as in

part <llname> : <plname> { <commands> }
net Command

The net command is used to define pins that don't appear in the symbol but need to be connected to particular signals or nets (e.g., power supply pins). The net command syntax is

net "<netname>" : ( <pinlist> ) ;

where <netname> is the signal or net name to connect and <pinlist> is a list of the physical pins (separated by commas) connected to the net. Each pin name containing special characters must be enclosed with quotes.

By preceding the net name with a dollar sign ($), the net command allows for the definition of net name attributes as in

net "$<netname>" : ( <pinlist> ) ;

With this feature it is possible to assign a part-specific power supply by assigning a variable net name attribute value (such as vcc or +5v) for the net name attribute (e.g., $powernet) to the desired SCM symbol/part of the SCM sheet.

In some cases more than one pin is connected to a particular signal but only one connection is desired in the symbol. The syntax of the net command for defining internal pin connections is:

net internal : ( <pinlist> ) ;

where <pinlist> is a list of physical pin names (separated by commas) that are to be linked together but only one of these pins needs to appear in the SCM symbol.

bus Command

The bus command allows busses to be defined directly on a symbol making multiple connections a single operation. The formal syntax of the bus command is:

bus ( <buspinlist> ) ;

where <buspinlist> defines a list of bus connection pins <buspin> (separated by commas) in the SCM symbol. Subsequently pin and/or xlat commands (see below) can be applied to define bus signals using special pin name specifications as in

"<buspin>.<bussignal>"

where <buspin> is the name of a pin in the <buspinlist> and <bussignal> is one of the signal connections on that bus pin.

pin Command

The pin command is used to define SCM symbol pin names. This command is not normally required since the pin list can be defined with the xlat command as well. It is mainly used to provide additional information in cases where 1:1 pin mapping applies, i.e., where the pin names otherwise can not be shown in the loglib file. The formal syntax of the pin command:

pin ( <pinlist> ) ;

where <pinlist> contains a list of pin names defined on the SCM symbol.

The

<startpin>-<endpin>[:<step>]

pin name range pattern can be used for specifying pin lists. This allows for definitions such as pin(a1-a4); for pin(a1,a2,a3,a4) or pin(c2-c10:2) for pin(c2,c4,c6,c8,c10). It is also possible to include multiple pin name ranges such as pin(a1-a32,b1-b2,c1-c32) within a single command. Pin name range patterns are only pin list aliases, the system still saves and displays (function Show Symbol Logic) the complete pin name lists.

The

pin none ;

suppresses automatic 1:1 assignments of symbol to layout pins for missing pin commands to allows for, e.g., the definition of mainpart symbols without pins for general use.

xlat Command

The xlat command is used to define the relationship between the logical pin names and the physical pin names. It can be used to translate one set of logical pin names to one or more sets of physical pin names, i.e., the xlat command is used to define the logical gates of a physical part. The formal syntax of the xlat command is:

xlat ( <lplist> ) to ( <pplist> )
  or ( <pplist> ) or ... or ( <pplist> ) ;

where <lplist> is a list of the logical pin names on the SCM symbol and <pplist> are the corresponding physical pin lists. The logical pin name set can translate to more than one physical pin name set to provide gate definition features. The number and sequence of the pin name definitions must match.

xlat commands with alternations (i.e. xlats with or options for gate specifications) automatically introduce cross-part gate swap definitions if no explicit swap internal command is defined with the corresponding part.

swap Command

The swap command defines the way in which pins and gates can be swapped when working in the layout system. I.e., the definitions stored with the swap command is used by the BAE layout system to check whether particular pin/gate swaps are allowed or not. The formal syntax of the swap command is:

swap <swapdefinition> ;

where <swapdefinition> defines the relationship between pins and gates. These definitions use brackets to identify the swap hierarchy as in

(      Part  Swap      )
([   Pin Group Swap   ])
([(    Gate  Swap    )])
([((    Pin Swap    ))])

where the square brackets can be omitted if no pin group exists. Optionally, the internal keyword can follow the swap keyword to forbid swaps between different parts.

newattr Command

The newattr command enables information to be included in the physical net list data that can subsequently be extracted with Bartels User Language or the userlist utility program. It sets up user-definable attributes associated with the physical part. These fixed library attributes could be for such information as cost, company part number, internal stock number, etc. The formal syntax of the newattr command is:

newattr "$<attname>" = "<attvalue>" ;

where <attname> is a user-defined attribute name and <attvalue> is the attribute value assigned to the attribute of the corresponding part. Attribute value assignments can be shown in the BAE layout system by defining the "$<attname>" text on the corresponding layout part (e.g., on a documentary layer).

The newattr command optionally allows for the definition and assignment of pin-specific attributes as in

newattr "$<attname>" = "<attvalue>" to ( <pplist> ) ;

This feature can be used for specifying arbitrary pin-specific attributes such as pin types or pin fanouts for electronic rule checks (ERC) or for generating net list interfaces to simulators such as PSpice.

The Packager evaluates $pintype pin attribute settings to perform electrical rule checks (ERC). It is recommended to assign fixed ERC pin types through the logical symbol/part definitions. The following pin type attribute value settings are supported:

$pintypePin Type
in Input Pin
out Output Pin
bidiBi-directional Pin
anl Analog Pin
sup Power Supply Pin

The ERC issues a warning message such as Net 'netname' has only inputs! if a net with one or more input pins has no (normal, bi-directional or power supply) output pin. A warning message such as Driver collision on net 'netname'! is issued if a normal output pin is connected to another output pin, a bi-directional pin or a power supply pin.

The syntax of the newattr command also allows for the assignment of variant-specific attributes by specifying a comma-separated variant number after the attribute name quotes. This allows for the assignment of different fixed attributes to different predefined project variants such as 110 Volt and 230 Volt or deutsch and english. newattr attribute values without variant number specification are assigned to the default/base variant.

The newattr command can be used to trigger automatic ID attribute value generation by the Packager through the assignment of ?id?, ?symid?extension and ?partid?extension values. ?id? creates consecutive ID values (id1, id2 etc.). The ?symid?extension and ?partid?extension values append the specified extension with underscore to the schematic symbol name and/or layout part name (?partid?diffpair1 results in ic1_diffpair1, ic2_diffpair1, etc.). Automatic ID generation is useful if a newattr command refers to multiple pins, as this allows to create a reference between pins as required for differential pair indication.

The newattr command accepts special !unique! attribute value settings which prompt the Packager to assign gates to layout parts with matching !unique! attribute values only. The swap commands adhere to such assignments and swap gates only between layout parts with matching !unique! attribute values. I.e., the !unique! setting can be used to control the packaging of gates with different attribute values without using $rpname attributes. This is useful for certain part types such as resistor arrays:

part ra_so16r : so16r {
    newattr "$val" = "!unique!";
    pin (1-16);
    swap internal (
        (( 1,16)),(( 2,15)),(( 3,14)),(( 4,13)),
        (( 5,12)),(( 6,11)),(( 7,10)),(( 8, 9))
        );
    }

The following example illustrates the application of the !unique! value in the definition of an opamp with power supply assignents through attribute values:

part op_lm324 : dil14 {
    pin (/i,i,o);
    net "$vplus" : (4);
    net "$vminus" : (11);
    newattr "$vplus" = "!unique!";
    newattr "$vminus" = "!unique!";
    xlat (/i, i, o)
      to ( 2, 3, 1)
      or ( 6, 5, 7)
      or ( 9,10, 8)
      or (13,12,14);
    swap internal ((2,3,1),(6,5,7),(9,10,8),(13,12,14));
    }
netattr Command

The netattr command can be used for the design of special SCM symbols for setting net attributes. The formal syntax of the netattr command is:

netattr <netatt> "$<attname>" : ( <pinlist> ) ;

where <netatt> is the name of the net attribute, <attname> is the name of the part attribute to be mapped to the net attribute, and <pinlist> is the list of logical pin names. Arbitrary net attribute names can be set with <netatt>, but the following keywords have special meaning for the control of the Autorouting process:

routwidthnet-specific routing width (in mm units)
powwidth pin-specific routing width (in mm units) for the signals and/or pins defined with the net command (see above)
mindist net-specific minimum clearance (in mm units)
priority net-specific routing priority (in positive integer units; the greater the value the higher the priority)

The route.ddb SCM library file is provided with the AutoEngineer. route.ddb contains virtual SCM symbols for setting net attribute values. The corresponding loglib file (route.def) includes the following definitions:

loglib
part att_rw : virtual
{
    pin (x);
    netattr routwidth "$val" : (x);
}
part att_pw : virtual
{
    pin (x);
    netattr powwidth "$val" : (x);
}
part att_md : virtual
{
    pin (x);
    netattr mindist "$val" : (x);
}
part att_pr : virtual
{
    pin (x);
    netattr priority "$val" : (x);
}
end.

With each of the above listed net attribute symbols a pin named x and a net attribute is defined. Net attribute setting then is applied by connecting the desired net to the net attribute symbol's pin and setting the corresponding attribute value.

With arbitrary user-specific net attribute definitions additional net information can be processed for special purposes. Such net attributes can be used for controlling the layout process (maximum/minimum allowed trace length, parallel routing restrictions, layer assignments, etc.) or they can be evaluated for subsequent simulator processes, run-time analysis, checking ECL/EMC rules, etc. Tools for accessing and evaluating user-specific net attributes can be provided with Bartels User Language programs.

The netattr command can be used to trigger automatic ID attribute value generation by the Packager through the assignment of ?id?, ?symid?extension and ?partid?extension values. ?id? creates consecutive ID values (id1, id2 etc.). The ?symid?extension and ?partid?extension values append the specified extension with underscore to the schematic symbol name and/or layout part name (?partid?diffpair1 results in ic1_diffpair1, ic2_diffpair1, etc.). Automatic ID generation is useful if a netattr command refers to multiple nets, as this allows to create a reference between nets as required for differential pair indication.

call Command

The call command is used for hierarchical SCM design in order to assign SCM blocks to SCM symbols for later reference on SCM sheet level. The formal syntax of the call command is:

call <blockname> ;

where <blockname> is the name of the SCM block, and the corresponding part must be defined virtual. The block symbol pins are assigned to the name-corresponding module ports of the SCM block.

architecture Command

The architecture command can be used to define virtual logical parts consisting of different arbitrarily connected SCM symbols and/or layout parts. The formal syntax of the architecture command is:

architecture { <partlist> }

<partlist> contains the list of used symbols with comma-separated pin lists in parenthesis, where each pin specification has the following format:

<pinname:connection>

<connection> can be the name of a pin of the <architecture> symbol. A connection to a global net can be established with <net netname>. <net & intnetname> or <& intnetname> specifications can be used to refer to a local net of the <architecture> symbol.

Examples

Loglib file example.def containing two part definitions:

loglib

/* Example Loglib File */
part 74ls00 : dil14, so14
{
    newattr "$partnumber" = "A-NAND-X11B82";
    newattr "$pintype" = "in" to (1,2,4,5,9,10,12,13);
    newattr "$pintype" = "out" to (3,6,8,11);
    newattr "$pintype" = "sup" to (7,14);
    pin (a,b,y);
    net "vcc" : (14);
    net "$groundnetname" : (7);
    xlat ( a, b, y)
      to ( 1, 2, 3)
      or ( 4, 5, 6)
      or (13,12,11)
      or (10, 9, 8);
    swap (((1,2),3),((4,5),6),((13,12),11),((10,9),8));
}

part tx27 : default sot23;

part tr_bc547 : class "npn-transistor" default to92
{
    pin (e,b,c);
    xlat (e,b,c)
      to (1,2,3);
}
end.

The example above shows the definition of the gate 74ls00 which can be packed up to 4 times into a single dil14 package. The logical pins (a,b,y) can be assigned to either of the pin sets (1,2,3), (4,5,6), (13,12,11) or (10,9,8). Within the layout system, this package type assignment can be changed to so14. A fixed attribute named partnumber has been assigned with attribute value A-NAND-X11B82. A fixed pin-specific attribute named pintype is assigned to each pin, thus designating the pin type to be either in (input pin), out (output pin) or sup (supply pin, i.e., power or ground). Pin 14 of the dil14 package is a pre-defined power supply pin on signal vcc, whilst pin 7 can be connected to a signal net by assigning the desired net name (such as vss) to the $groundnetname attribute of the 74ls00 symbol on SCM level. The swap command is applied to define the following pin/gate swaps:

Pin Swap: (1,2) and/or (4,5) and/or (13,12) and/or (10,9)
Gate Swap: (1,2,3) with (4,5,6) or (13,12,11) or (10,9,8)
Part Swap: (1,2,3,4,5,6,13,12,11,10,9,8)

The example loglib file above also contains the tx27 and tr_bc547 part definitions. tx27 is assigned to default sot23 package with 1:1 pin mapping. The tr_bc547 definition includes an assignment to part class npn-transistor.

To compile loglib file example.def and store the result to DDB file mylib.ddb:

>  loglib example mylib Return/Enter Key (CR)

The following example illustrates the use of mainpart and subpart for assigning different SCM symbols (relay part with two contacts and one coil) to the same package:

loglib
/* Relays part */
part rel2 : mainpart dilrel
{
    xlat (a,b) to (1,7) or (8,14);
    swap ((1,7),(8,14));
}
part rel2sub : subpart rel2
{
    xlat (p,m) to (2,6);
}
end.

The following example shows the definition of part buspart with busses b1 and b2 including the bus signals 0, 1, 2 and 3 (the corresponding SCM symbol must have pins b1 and b2 defined for connecting and tapping the bus):

loglib
/* Bus part definition */
part buspart : sot8
{
    bus (b1,b2);
    xlat (b1.0,b1.1,b1.2,b1.3) to (1,2,3,4);
    xlat (b2.0,b2.1,b2.2,b2.3) to (5,6,7,8);
}
end.

The following example illustrates how to define a virtual part for hierarchical circuit design. This applies for the assignment of SCM symbol dff to SCM block dff with pin names s, r, q and /q referring to the module ports defined on the corresponding SCM hierarchy block element/sheet:

loglib
/* Hierarchical D-Flip-Flop */
part dff : virtual
{
    pins (s,r,q,/q);
    call dff;
}
end.

The following example shows a synthetically generated symbol definition. The delay SCM symbol consists of four internally connected 74ls04 inverters.

loglib
/* Synthetically generated Inverter/Delay Circuit */
part delay : virtual
{
    pin (in,out);
    architecture
    {
        part "74ls04" (a:in,y:&connect1);
        part "74ls04" (a:&connect1,y:&connect2);
        part "74ls04" (a:&connect2,y:&connect3);
        part "74ls04" (a:&connect3,y:out);
    }
}
end.

Files

The symbol and part library directory installed with the Bartels AutoEngineer software contains the loglib(*.def) files for alle SCM library files. All loglib files of the software are already compiled into the laylib.ddb layout library file.

See also

Packager.

The functionality for compiling Logical Library definitions is also implemented through the con_compileloglib User Language system function.

Diagnosis

The error messages issued by loglib are intended to be self-explanatory.

Warnings

Input file identifiers such as part names, pin names or net names containing special characters (-, +, /, (, =, ...) must be enclosed in single-quotes or double-quotes.

The Packager copies logical library definitions from the specified layout library to the project file when first referenced. Certain SCM or layout symbol modifications from the project file such as pin name changes must be reflected by a logical library definition update. I.e., loglib must be applied to the project file if the original logical library definition has already been transferred to the project file during an earlier Packager run. The Packager issues error messages such as Part not found in library!, Part not defined! or Pin not found! loglib definitions are wrong or missing.

 

7.12 NETCONV

Name

netconv - Logical Netlist Conversion Utility

Synopsis

netconv projectfile

Description

The netconv utility program is used for transferring logical (i.e., unpacked) net list data from BAE ASCII format to internal Bartels AutoEngineer format ready for processing with the BAE Packager.

netconv accepts the net list file name projectfile as first argument. This file must have an extension of .net but this extension must not be included with the command line. netconv converts logical ASCII net list data from input file <projectfile>.net to a BAE logical net list with the name netlist in a DDB (Design DataBase) file named <projectfile>.ddb. This internal logical net list can be converted to a physical net list with the Packager, in the same way as information from the BAE schematic. It will, as a result, be possible to perform pin and gate swaps in the subsequent layout process.

Input File Format

Start Data, End Data, Comments

The net list file format must start with the keyword NETLIST; and must end with the keyword END.. Commentary text can be placed between /* and */.

Part list

The part list section is expected after the NETLIST command and must start with the keyword PARTS. Each part is defined by a command in the form

<part> : <llname> ;

where <part> is the part name (e.g., C1, R1, IC15, etc.), and <llname> is the logical library name of the part (e.g., 74LS08, OP_LM211, i80386sx, etc.).

Net List

The net list section is expected after the parts list and must start with the keyword CONNECT. Each net is defined by a command in the form

<part>.<pin>=<part>.<pin>=...=<part>.<pin>

and/or

/<net>/ <part>.<pin>=<part>.<pin>=...=<part>.<pin>

where <part> is the part name as defined in the part list, <pin> is the pin name of that part, and <net> is the net name.

Examples

ASCII net list (design.net):

NETLIST;
/* Part list */
PARTS
	ic1 : 74ls00;
	ic2 : 74ls00;
	c1 : c;
/* Net list */
CONNECT
	ic1.a = ic2.y;
	ic2.a = ic1.y;
	/vcc/ c1.1;
	/vss/ c1.2;
END.

To convert the logical ASCII net list design.net to an internal logical net list named netlist in BAE DDB file design.ddb:

>  netconv design Return/Enter Key (CR)

The command above causes netconv to read the ASCII net list design.net, and store the net list named netlist to the job file design.ddb. After successful processing, the Packager can be used to convert this net list to a physical net list ready to be processed by the BAE Layout Editor.

See also

conconv, loglib, Packager.

Diagnosis

The error messages issued by netconv are intended to be self-explanatory.

Warnings

netconv converts logical net lists to the Bartels AutoEngineer. In cases where pin/gate swap or part name change is applied in the corresponding layout the physical net list data must be backannotated to the schematics, i.e., special tools might be required for transferring the assignments file information generated by BAE Backannotation back to the original SCM system.

Input file identifiers for part names, pin names or net names containing special characters (-, +, /, (, =, ...) must be enclosed in single-quotes or double-quotes.

 

7.13 REDASC

Name

redasc - REDAC ASCII Input Interface

Synopsis

redasc projectname [libraryfile]

Description

The redasc utility program converts layout data from Redac MAXI systems. redasc transforms layout symbols, part lists, net lists, placement information, etc. from CDI format to internal BAE DDB (Design DataBase) format.

redasc accepts the CDI file name projectname as first argument. This file must have an extension of .cdi but this extension must not be included with the command line.

redasc optionally accepts the layout library file name libraryfile as second argument. This file must have an extension of .ddb but this extension must not be included with the command line. The libraryfile is expected to be in BAE DDB (Design DataBase) format and must contain the layout part definitions referenced from the net list. The required layout library symbols are expected to be defined in the CDI file if the libraryfile argument is omitted.

redasc converts the CDI file <projectname>.cdi to a BAE DDB design file with the name <projectname>.ddb. The generated layout element is named <projectname> and contains the placed parts and the net list connectivity. redasc also generates a free list named <projectname>.fre which contains an unconnected pins report.

See also

conconv

Diagnosis

The error messages issued by redasc are intended to be self-explanatory.

Warnings

redasc does not convert traces from the CDI format. Use the CAM View facility to read in routing data via Gerber format to reconstruct the PCB.

 

7.14 RULECOMP

Name

rulecomp - Bartels Rule System Compiler

Synopsis

rulecomp srcfile [-l]

Description

The rulecomp compiler is used for translating Bartels Rule Specification source code.

rulecomp accepts the rule specification source file name srcfile as first argument. This file must have an extension of .rul, but this extension must not be included with the command line. rulecomp translates the rule specification source file and stores the defined rules and/or rule sets to a file named brules.vdb in the BAE programs directory. These rules can be applied by certain in-built BAE system functions and/or customer-defined User Language programs.

Options

Command line options of the Rule System Compiler consist of the dash (-) start character followed by the option specification. Single-character option specifications optionally followed by a mode or toggle number are often known as switches or flags.

Listing Option [-l]

The -l option is used to control the listing file output. Omitting this option suppresses listing output. The -l option generates a rule compilation listing file. The listing output file name is derived from the corresponding source code file name, with the original file name extension replaced by .lst. The listing file is for user information purposes only, i.e., it is not required by system.

Examples

Compilation of the rules defined in routstd.rul; the compiled rules are stored with the name routstd to the brules.vdb file of the BAE programs directory:

>  rulecomp routstd Return/Enter Key (CR)

Compilation of the rules defined in routstd.rul with listing file output (to routstd.lst); the compiled rules are stored with the name routstd to the brules.vdb file of the BAE programs directory:

>  rulecomp routstd -l Return/Enter Key (CR)

Files

brules.vdb -- BAE rules data file (in BAE programs directory)

See also

Bartels AutoEngineer User Manual - Chapter 6

Diagnosis

The error messages issued by rulecomp are intended to be self-explanatory.

Warnings

rulecomp is a powerful software tool for implementing rules for automatically generating and/or manipulating Bartels AutoEngineer design data. It is strongly recommended to test each new rule in a non-critical environment (test software installation, test jobs, backup of real jobs, etc.) until confidence in the rule is established for unrestricted use on real designs.

 

7.15 ULC - User Language Compiler

Name

ulc - Bartels User Language Compiler

Synopsis

ulc [-wcon|-wcoff] [[-S[ource]] srcfile...]
    [-lib libname...] [-dll libname...]
    [{-cp|-cl} [dstname...]]
    [-I[nclude] includepath...] [-D[efine] macroid...]
    [-O[0|1]] [-e[0|1]] [-w[0|1|2|3|4]] [-t[0|1]]
    [-l[0|1|2|3|4|5]] [-ld listingdirectory name]
    [-dp prgname...] [-dl libname...]
    [-ulp prgfilename] [-ull libfilename]
    [-log logfilename]

Description

The Bartels User Language Compiler ulc translates User Language source code into User Language machine programs and/or User Language libraries. User Language machine programs can be executed by the User Language Interpreter. User Language libraries usually are generated from frequently used source code. User Language library machine code can be linked to other User Language machine code (programs or libraries). Library linking can be done either statically (at compile time by the User Language Compiler) or dynamically (at runtime by the User Language Interpreter). As an advantage of the User Language library concept, frequently used source code needs to be compiled just once and can subsequently be referenced through linking, which is much faster than compiling.

Options

Command line options of the User Language Compiler consist of the dash (-) or slash (/) start character followed by the option specification. Single-character option specifications optionally followed by a mode or toggle number are often known as switches or flags. Such special options can be grouped as in /l2Ow3 or -O1w3l2, which both select listing mode 2, activate the optimizer and set the warning severity level to 3.

Wildcard Option [-wcon|-wcoff]

The wildcard option is used to activate or deactivate wildcard processing at the specification of file and/or element names. On default wildcard processing is activated, i.e., omitting the wildcard option leaves wildcard processing activated. Option -wcon can be used for explicitly activating wildcard processing. With wildcard recognition activated, the character ? can be used for matching any arbitrary character, and the character * can be used for matching an arbitrary number of arbitrary characters. Option -wcoff can be used to turn off wildcard processing. Wildcard recognition must be deactivated for explicitly processing names containing wildcard characters such as scm_? or ged_*.

Source File Option [[-S[ource]] srcfile...]

This option is used for specifying the file name(s) containing the source code to be compiled. File name specifications can contain a directory path, i.e., the source file names need not reside in the current directory. Wildcards are supported with the source file name specification if wildcard recognition is activated (see option -wcon above). Source file names can be specified with or without file name extension. On source file name specifications without extension the Compiler automatically assumes and/or appends file name extension .ulc. I.e., source file names with non-default extension must be specified with their extension, respectively. It is possible to, e.g., generate User Language libraries from include files usually named with extension .ulh. The type of User Language machine code to be generated is designated with either option -cp (User Language programs; see below) or option -cl (User Language libraries; see below). The name of the machine code element to be generated is derived from the source file name by stripping the directory path and the file name extension from the source file name. Non-default destination program and/or library element names can be specified with options -cp and -cl (see below). The -Source and/or -S option keywords are not required with source file specifications where file names cannot be intermixed with other name specifications, e.g., if source file names are the first names specified on the ULC command line. However, the -Source (and/or -S) option can be used for explicit source file specification to avoid ambiguities in case where source file names are not the first name specifications on the ULC command line. At least one source file specification is required if neither option -dp nor option -dl (see below) is specified.

Static Link Option [-lib libname...]

The static link option -lib requires one or more library name specifications and at least one valid source file specification (see option -Source above). The machine code of the libraries specified with the -lib option must be available in the ulcprog.vdb file of the BAE programs directory, i.e., the required libraries must be compiled before they can be linked. The built-in linker of the User Language Compiler binds the machine code of these libraries to the machine code currently to be translated.

Dynamic Link Option [-dll libname...]

The dynamic link option -dll requires one or more library name specifications and at least one valid source file specification (see option -Source above). The machine code of the libraries specified with the -dll option must be available in the ulcprog.vdb file of the BAE programs directory, i.e., the required libraries must be compiled before they can be linked. The built-in linker of the User Language Compiler stores dynamic link request information with the machine code for the User Language Interpreter to perform dynamic linking of the requested libraries at runtime.

Create Program/Library Option [{-cp|-cl} [dstname...]]

The create option can be used to designate the type of machine code to be generated. The User Language Compiler can create either User Language programs or User Language libraries. On default program generation request is assumed, i.e., omitting both the -cp and the -cl option defaults to User Language program creation. Option -cp explicitly selects program generation whilst option -cl selects library generation; both options must not be used together. On default, the destination element name is derived from the corresponding source file name; both the directory path and the source file name extension are stripped from the source file name to generate destination element name. The -cp and -cl options allow for the specification of non-default destination program and/or library names. Only one source file specification (see option -Source) is allowed when explicitly specifying destination element name(s) with options -cp and -cl. The machine code generated by the Compiler is stored with the specified destination element name to ulcprog.vdb file of the BAE programs directory. Wildcards are not supported with destination element name specifications. Multiple destination element name specifications are supported in order to store the machine code of a single source under different names, e.g., to generate programs scm_st, ged_st, etc. from a single source file named bae_st.ulh.

Include Path Option [-I[nclude] includepath...]

The -Include (and/or -I) option is used for specifying multiple alternate include paths for include file name search. At least one include path argument is required. When encountering an #include preprocessor statement the Compiler first checks the current directory for include file access and then searches the include paths in the sequence as specified with the -Include option until the requested include file is found.

Define Option [-D[efine] macroid...]

The -Define (and/or -D) option is used for defining macros at the User Language Compiler call. At least one macro identifier is required. This option corresponds with the #define preprocessor statement, i.e., macros defined with the -Define option can be checked with the #ifdef or #ifndef preprocessor statements, thus giving more control on conditional compilation to the Compiler.

Optimizer Option [-O[0|1]]

The -O option is used to activate or deactivate the optimizer of the User Language Compiler. On default the optimizer is deactivated, i.e., omitting this option leaves the optimizer deactivated. Option -O or -O1 activates the optimizer. Option -O0 explicitly deactivates the optimizer. The optimizer frees the machine code from redundancies, and modifies it to make it more efficient. Optimizing machine code significantly reduces disk space and main memory requirements, and the resulting machine code can be loaded and executed much faster. It is strongly recommended to activate the optimizer.

Error Severity Option [-e[0|1]]

The -e option is used for setting the error severity level. On default the error severity level is set to 1, i.e., omitting this option selects error severity level 1. Option -e0 sets error severity level 0. Option -e or -e1 explicitly sets error severity level 1. Error severity level 1 compiles all specified sources; error severity level 0 causes the Compiler to stop the compilation process on any errors occurred during a single source compilation.

Warning Severity Option [-w[0|1|2|3|4]]

The -w option is used for setting the warning severity level in the range 0 to 4. On default, the warning severity level is set to 0, i.e., omitting this option selects warning severity level 0. Omitting explicit level specification with this option as with -w defaults to warning severity level 3. Each type of warning defined with the Compiler is assigned to a certain warning severity level. The Compiler only prints warnings with a warning severity level less than or equal the level selected with the -w option since higher warning severity levels denote less importance. With this option, it is possible to suppress less important warning messages.

Top Level Warnings Only Option [-t[0|1]]

The -t option controls whether warning messages related to the compilation of include files are omitted or not. On default (i.e., if this option is not specified or if its value is set to 0), warning messages related to the compilation of both top level source code files and include files are issued. Setting this option value to 1 prevents the User Language Compiler from issuing warning messages related to the compilation of include files, thus simplifying the analysis of warning messages when working with standard include files containing functions and variables which are not used by every program.

Listing Option [-l[0|1|2|3|4|5]]

The -l option is used to control the listing file output. Listing modes 0 to 5 can be specified. Mode 0 won't produce any listing output and mode 5 produces the most detailed listing. On default, listing mode 0 is selected, i.e., no listing is generated if this option is omitted. Omitting explicit listing mode specification with this option as with -l defaults to listing mode 5. The listing output file name is derived from the corresponding source code file name, where the original file name extension is replaced with extension .lst. The listing file is for user information purposes only, i.e., it is not required by system.

Listing Directory [-ld listingdirectoryname]

The -ld option allows for the specification of an alternative output directory for the listing files created with the -l option. This option is useful when applying make utilities for automatically compiling modified User Language programs as it allows to keep the source directories clean. With the BAE software, a makefile is provided in the baeulc directory. This makefile defines the dependencies between User Language programs and include files and works with listing files in a subdirectory (lst).

Delete Program Option [-dp prgname...]

The -dp option is used for deleting previously compiled programs from the ulcprog.vdb file in the BAE programs directory. At least one program element name is required. Wildcards are supported with the program element name specification if wildcard recognition is activated (see option -wcon above). Warnings are issued when trying to delete non-existent programs. Program deletion is always processed before any source code compilation in order to avoid compilation process conflicts such as deleting a program immediately after it has been compiled with the same ULC call.

Delete Library Option [-dl libname...]

The -dl option is used for deleting previously compiled libraries from the ulcprog.vdb file in the BAE programs directory. At least one library element name is required. Wildcards are supported with the library element name specification if wildcard recognition is activated (see option -wcon above). Warnings are issued when trying to delete non-existent libraries. Library deletion is always processed before any source code compilation in order to avoid compilation process conflicts such as deleting a library immediately after it has been compiled with the same ULC call.

Program Database File Name Option [-ulp prgfilename]

On default, the User Language Compiler stores User Language programs to a file named ulcprog.vdb in the Bartels AutoEngineer programs directory. The -ulp option can be used to select a different User Language program database file.

Library Database File Name Option [-ull libfilename]

On default, the User Language Compiler stores User Language libraries to a file named ulcprog.vdb in the Bartels AutoEngineer programs directory. The -ull option can be used to select a different User Language library database file.

Log File Option [-log logfilename]

The User Language Compiler prints all messages to standard output and to a log file. Log file output is generated to save long message lists which could be generated at the compilation of different sources. On default the log file name is set to ulc.log (in the current directory). The -log option can be used to specify a non-default log file name.

Examples

Compilation of the User Language program contained in ulcprog.ulc with optimization and warning message output; the produced machine program is stored with the name ulcprog to the ulcprog.vdb file of the BAE programs directory:

>  ulc ulprog -Ow Return/Enter Key (CR)

Compilation of the User Language program contained in ulcprog.ulc with listing file output (to ulcprog.lst); the produced machine program is stored with the name newprog to the ulcprog.vdb file of the BAE programs directory:

>  ulc ulprog -l -cp newprog Return/Enter Key (CR)

Deleting the User Language programs named ulcprog and newprog and all User Language libraries with names starting with test and ending on lib from the ulcprog.vdb file of the BAE programs directory:

>  ulc -dp ulprog newprog -dl test*lib Return/Enter Key (CR)

Generate User Language library libsll from source file libbae.ulh (optimizer is activated; listing output is directed to file libbae.lst):

>  ulc libbae.ulh -cl libsll -l2O Return/Enter Key (CR)

Compile all current directory files with extension .ulc and statically link the generated program machine codes with library libsll (macro USELIB is defined for controlling conditional compilation; optimizer is activated):

>  ulc *.ulc -Define USELIB -lib libsll -O Return/Enter Key (CR)

Generate libraries libstd and stdlib from source file std.ulh (optimizer is activated, warning severity level is set to 2):

>  ulc -w2 -O -cl libstd stdlib -Source std.ulh Return/Enter Key (CR)

Generate library liblay from source file \baeulc\lay.ulh with library libstd dynamically linked (optimizer is activated, warning severity level is set to 3, Compiler messages are directed to log file genlib.rep instead of ulc.log):

>  ulc /wO -cl liblay -S \baeulc\lay.ulh -dll libstd -log genlib.rep Return/Enter Key (CR)

Generate programs laypcr and tracerep from source files laypcr.old and tracerep.ulc with library liblay dynamically linked (optimizer is activated):

>  ulc laypcr.old /dll liblay /cp -O /S tracerep Return/Enter Key (CR)

Files

ulcprog.vdb -- BAE User Language database (in BAE programs directory)

See also

userlist, User Language Interpreter, Bartels User Language Programmer's Guide

Diagnose

The error messages issued by ulc are intended to be self-explanatory.

Warnings

ulc is a powerful software tool for implementing programs for the manipulation of DDB file contents and for generating CAM data. Even the BAE user interface can be considerably changed and/or extended with User Language programs. It is advisable to test each new User Language program in a non-critical environment (test software installation, test jobs, backup of real jobs, etc.) until confidence in the program is established for unrestricted use on real jobs. It is also strongly recommended to ensure security, e.g., to prevent foreign persons from implanting destructive User Language programs to ulcprog.vdb.

 

7.16 User Language Interpreter

Description

The Bartels User Language Interpreter is used for executing Bartels User Language programs which have been compiled with the Bartels User Language Compiler. The Bartels User Language Interpreter is integrated in most of Bartels AutoEngineer modules. I.e., Bartels User Language programs can be called from each of these BAE modules.

Starting User Language Programs

When calling a User Language program, the name of the program to be executed must be specified, and this program must be available in the ulcprog.vdb file of the BAE programs directory. The program name can be specified either explicitly or implicitly. An explicit User Language program call is applied with the BAE menu item Run User Script from the File menu of one of the interpreter environments Schematic Editor, Layout Editor, Autorouter, CAM Processor, CAM View or Chip Editor. After activating the Run User Script function the name of the required program must be typed in; on empty string or question mark (?) input or on mouse-click to the program name query a popup menu with the available User Language programs is displayed for selecting the required program with mouse-pick.

User Language programs can also be called by keystrokes, i.e., by pressing a standard key (0, 1, ..., 9, a, b, c, ...) or a function key (F1, F2, ..., F12). This implicit program call facility is available with the BAE function menu active, i.e., this type of program call is possible at any time unless another interactive keyboard input currently is requested. The keystroke program name is build from the currently active User Language Interpreter environment (scm for Schematic Editor, ged for Layout Editor, ar for Autorouter, cam for CAM Processor, cv for CAM View, ced for Chip Editor), an underscore and the name of the pressed key. E.g., the program named scm_f4 is called when pressing function key F4 in the Schematic Editor, cam_8 is called when pressing digit key 8 in the CAM Processor, ged_r is called when pressing standard key r in the Layout Editor, ar_# is called when pressing standard key # in the Autorouter. The User Language Interpreter only performs an automatic keystroke program calls if the corresponding program is available in ulcprog.vdb.

A special method of implicit User Language program call is provided with the startup sequence of the interpreter environment. This feature automatically executes a User Language program with a predefined name when starting an interpreter environment (scm_st in Schematic Editor, ged_st in Layout Editor, ar_st in Autorouter, cam_st in CAM Processor, cv_st in CAM View), thus, e.g., allowing for automatic system parameter setup.

Bartels User Language also provides system functions for performing key programming and menu assignments. Using these functions (e.g., in User Language startup programs) provides a convenient way of dynamically changing the Bartels AutoEngineer user interface. Another special User Language system function is provided for calling User Language programs from other User Language programs.

Examples

Call the User Language program named ulprog:

FileLeft Mouse Button (LMB)
Run User ScriptLeft Mouse Button (LMB)
Program Name ?ulprog Return/Enter Key (CR)

Files

ulcprog.vdb -- BAE User Language database in BAE programs directory

See also

User Language Compiler, Schematic Editor, Layout Editor, Autorouter, CAM Processor, CAM View, userlist, Bartels User Language - Programmer's Guide

Diagnosis

The error messages issued by the User Language Interpreter are intended to be self-explanatory.

Warnings

The Bartels User Language Interpreter is a powerful tool for starting programs for the manipulation of DDB file contents and for generating CAM data. Even the BAE user interface can be considerably changed and/or extended with User Language programs. It is advisable to test each new User Language program in a non-critical environment (test software installation, test jobs, backup of real jobs, etc.) until confidence in the program is established for unrestricted use on real jobs. It is also strongly recommended to ensure security, e.g., to prevent foreign persons from implanting destructive User Language programs to ulcprog.vdb.

 

7.17 USERLIST

Name

userlist - User Programmable List Generator

Synopsis

userlist scriptfile projectfile jobname

Description

The userlist utility program is a user-programmable ASCII list generator. userlist interprets the user-defined userlist script <scriptfile>.usf, analyzes the net list named <jobname> from the requested job file <projectfile>.ddb, and produces a text output listing file named <projectfile>.<ext>. The listing file extension <ext>, the output format and the type of net list information to be extracted are defined in the <scriptfile>.usf userlist script.

Input File Format

Start Data, End Data, Comments

The userlist script file must start with the definition of the output file name extension which is defined with the command

EXTENSION = "<ext>";

where <ext> is the file name extension (a maximum length of up to three characters is allowed). The userlist script must end with the ENDSPEC keyword. Commentary text can be placed between /* and */.

FOR Command

The FOR command is used for selecting elements of a certain class. The formal syntax of the FOR command is:

FOR (ALL <class> ) { <commands> }

where <class> specifies the class of the objects to be scanned. Valid classes can be selected with the keywords NETS, PARTS, PINS, ATTRIBUTES or <attname>. NETS iterates the net list object class, PARTS iterates the part list object class, PINS iterates pin lists and ATTRIBUTES iterates attribute lists. <attname> is used for scanning the attribute value list of the attributes named <attname>. The command list <commands> is processed once for each element of the specified object class. FOR commands can be nested to give more control. The nested FOR loop in

FOR (ALL NETS) { FOR (ALL PINS) {...}}

would for example find the first net, and then for all pins of that net perform <commands>. It would then repeat the operation on the second net and so on until it has completed processing of all nets.

Output Commands

The output commands are PRINT and PRINTFOR. The formal syntax of the PRINT command is:

PRINT(<parameters>);

where <parameters> specify the list of output items separated by commas. Output items enclosed in quotation marks are printed as literal text. QUOTES keyword can be used to print quotation marks. The TAB keyword prints a tab character. The CR keyword prints a newline. Other output items can be specified with attribute names (as listed below) followed by

:<length>:<decimals>

where <length> is the output length and <decimals> is the output precision for the corresponding number and/or string value. Negative <length> values apply for left-aligned output, and

%<length>:<decimals>

will include leading zeros. Default values are 3 for <decimals> and output item length for the <length> value. The <length> value is adjusted to the output item length if necessary. Distance values can be converted to mm or inch units by appending " MM" or " INCH", respectively. The PRINT command can be applied as in

PRINT(QUOTES,PINWIDTH:7:3,QUOTES);	/* output: "  3.756" */
PRINT(QUOTES,PINWIDTH%7:3,QUOTES);	/* output: "003.756" */
PRINT(QUOTES,PINWIDTH:-7:3,QUOTES);     /* output: "3.756  " */

The PRINT command syntax allows for uppercase and/or lowercase name and/or attribute value outputs by adding blank-separated UPPER or LOWER keywords after name or attribute specifications.

The PRINTFOR command is used to scan through a particular object class and print a list of elements with a defined separator. The formal syntax of the PRINTFOR command is:

PRINTFOR (ALL <class>) SEPERATOR(<sep>),ELEMENTS(<elements>);

where <class> is the object class to be scanned (as defined in the FOR command), <sep> is the separator to be used (e.g., ",", "CR", etc.), and <elements> are the elements to be listed. The syntax of the parameter lists in <sep> and <elements> is the same as for the PRINT parameter list. If PRINTFOR is nested in a FOR loop, then the output is automatically restricted to the current element of the FOR loop.

IF Command

The IF command allows commands to operate conditionally. The formal syntax of the IF command is:

IF (<expr>) { <commands> }

and/or

IF (<expr>) { <commands> } ELSE { <commands> }

The formal syntax of the IF expression <expr> is given either by

? <attr>

or by the comparison expression

<attr> <operator> <attr|constant>

The ? <attr> expression is used to check whether the attribute specified by <attr> is available. Available operators for comparison expression are = (equal), <> (not equal), < (less than), > (greater than), <= (less than or equal), >= (greater than or equal).

Counter

The commands

CLEARCOUNTER;

and

COUNTUP;

are used for controlling an internal counter. CLEARCOUNTER sets the counter value to zero. COUNTUP increments the counter value. The current counter value can be accessed via the COUNTVALUE attribute (see also below).

Attributes

The following attributes can be accessed:

Net DataNETNAME Net Name
NETPINCOUNT Number of Pins connected to Net
PRIORITY Net Priority (for the Router)
MINDIST Net Minimum Clearance (for the Router)
NETNUMBER Net Number
Part DataPARTNAME Part Name
PINCOUNT Number of Pins defined on Part
FREEPINS Number of unconnected Pins in the Part
PARTATTRIBCOUNT Number of Attributes in the Part
$attributname Value of selected Attribute in the Part
Pin DataPINNAME Pin Name
PINWIDTH Pin Routing Width
General DataPROJECTNAME Project and/or Design Name
ATTRIBCOUNT Number of Attributes matching current Name/Value Combination
ATTRIBNAME Name of selected Attribute
ATTRIBVALUE Value of selected Attribute
COUNTVALUE Current Counter Value

Examples

Net list generator conconv.usf:

/* Connection List Generator */
EXTENSION = ".con";
PRINT ("LAYOUT ", PROJECTNAME, ";", CR);
PRINT ("PARTS",CR);
FOR (ALL PARTS)
{
    PRINT ("  ",PARTNAME," : ",$plname,";",CR);
}
PRINT ("CONNECT",CR);
FOR (ALL NETS)
{
    PRINT ("  /", NETNAME,"/ ");
    PRINTFOR (ALL PINS)
        SEPERATOR ("="), ELEMENTS (PARTNAME,".",PINNAME);
    PRINT (";",CR);
}
PRINT ("END.",CR);
ENDSPEC

The userlist script conconv.usf can be applied as in

>  userlist conconv design board Return/Enter Key (CR)

where net list board of the job file design.ddb is analyzed, and the output net list file design.con with the following contents is produced:

LAYOUT board;
PARTS
        ic1 : dil14;
        ic2 : dil14;
        ic3 : dil16;
CONNECT
        /gnd/ ic1.1=ic2.2=ic3.9;
        /vcc/ ic1.11=ic2.5=ic3.7;
END.

The part list generator partlist.usf

EXTENSION = ".ptl";
FOR (ALL $plname)
{
    PRINT (ATTRIBCOUNT," ",ATTRIBVALUE,CR);
}
ENDSPEC

would create output file <job>.ptl with the following contents:

3 cap50
4 dil14
2 dil16
1 r75

Diagnosis

The error messages issued by userlist are intended to be self-explanatory.

 

7.18 VALCONV

Name

valconv - VALID to Bartels Conversion

Synopsis

valconv projectname

Description

The valconv utility program converts part lists and net lists from VALID format (i.e., VALID schematic output) to a BAE DDB (Design DataBase) file.

valconv accepts the BAE DDB destination file name projectname as first argument. This file is created with extension .ddb, but this extension must not be included with the command line.

valconv reads the VALID part list file pstxprt and the VALID net list file pstxnet. These files are generated by the VALID system and must reside in the current directory when calling valconv.

After successful processing, a logical (unpacked) net list will exist in the BAE DDB file named <projectname>.ddb. This internal logical net list can be converted to a physical net list with the Packager, in the same way as information from the BAE schematic. A layout element can then be created in that design file, parts placed and traces routed, and it will also be possible to perform pin and gate swaps.

Files

pstxprt -- VALID part list
pstxnet -- VALID net list

See also

netconv, Packager, loglib

Diagnosis

The error messages issued by valconv are intended to be self-explanatory.

Warnings

Input file identifiers for part names, pin names or net names containing special characters (-, +, /, (, =, ...) must be enclosed in single-quotes or double-quotes. Please contact our technical support for guidance if you want to transfer a net list format different from the description herein .

Bartels :: Bartels AutoEngineer :: BAE Documentation :: BAE User Manual :: Utilities

Utilities
© 1985-2025 Oliver Bartels F+E • Updated: 26 January 2007, 17:23 [UTC]

© 1985-2025 Oliver Bartels F+E Bartels Homepage Contact and Corporate Info

Web Development by Baumeister Mediasoft Engineering

make this page your Homepage... add this page to your Favorites... send this page to a friend... display printer friendly page... display sitemap... display sitemap with all page contents... Utilities - Deutsche Version Utilities - English Version