Baumeister Mediasoft Engineering BME - Baumeister Mediasoft Engineering  Bartels User Language Programmer's Guide - English Version Bartels User Language Programmierhandbuch - Deutsche Version
Baumeister Mediasoft Engineering
Bartels AutoEngineerCarLogServicesResourcesCompany ProfileContact Us
Baumeister Mediasoft Engineering » Bartels AutoEngineer » BAE Documentation » User Language Programmer's Guide

Bartels AutoEngineer® Documentation

Bartels User Language
Programmer's Guide

PDF Version (2.1 MB; updated 12 November 2013)

The Bartels User Language - Programmer's Guide describes how to use the Bartels User Language in Bartels AutoEngineer, i.e., how it is integrated to the Bartels AutoEngineer EDA system and how it can be applied. The following main topics are covered by this manual:

  • Basic concepts and description of the Bartels User Language
  • The Bartels User Language programming system:
    User Language Compiler and User Language Interpreter
  • User Language example source code listings, short information on the User Language programs supplied with the Bartels AutoEngineer
  • Special data types defined for accessing Bartels AutoEngineer design data
  • User Language system function reference
 

Contents

Preface
Organization of this Documentation
Related Documentation
Problems, Questions, Suggestions
Documentation Notations
Documentation Conventions
Copyright
1Introduction
1.1What is Bartels User Language?
1.1.1Purpose
1.1.2Components
1.2Characteristics of the Bartels User Language
1.2.1Bartels User Language Compared to C
1.2.2Data Types, Constants, Variables
1.2.3Operators, Assignments
1.2.4Control Structures
1.2.5Program Flow, Functions
1.2.6Special In-Build Features
2Language Description
2.1Introducing User Language Programming
2.1.1The first User Language Program
2.1.2Variables, Arithmetic and Functions
2.1.3Arrays and Control Structures
2.2Lexical Conventions
2.2.1Spacing
2.2.2Identifiers
2.2.3Constants and Constant Expressions
2.2.4Terminal Symbols
2.3Data Types and Definitions
2.3.1Data Types
2.3.2Variables
2.3.3Functions
2.3.4Scope Rules
2.4Expressions
2.4.1Primary Expressions
2.4.2Unary Expressions
2.4.3Binary Expressions
2.4.4Expression List
2.4.5Precedence and Order of Evaluation
2.5Control Structures
2.5.1Concatenations
2.5.2Alternations
2.5.3Repetitions
2.5.4Program Flow Control
2.6Preprocessor Statements
2.6.1File Inclusion
2.6.2Constant Definition
2.6.3Conditional Compilation
2.6.4BNF Precompiler
2.6.5Program Caller Type and Undo Mechanism
2.7Syntax Definition
3Programming System
3.1Conventions
3.1.1Program Storage
3.1.2Machine Architecture
3.2Compiler
3.2.1Mode of Operation
3.2.2Compiler Call
3.2.3Error Handling
3.3Interpreter
3.3.1Mode of Operation
3.3.2Program Call
3.3.3Error Handling
4BAE User Language Programs
4.1User Language Include Files
4.1.1Standard Include Files
4.1.2Schematic Include Files
4.1.3Layout Include File
4.1.4IC Design Include Files
4.2User Language Programs
4.2.1Standard Programs
4.2.2Schematic Editor Programs
4.2.3Layout Programs
4.2.4Layout Editor Programs
4.2.5Autorouter Programs
4.2.6CAM Processor Programs
4.2.7CAM View Programs
4.2.8IC Design Programs
4.2.9Chip Editor Programs
4.3User Language Program Installation
4.3.1Program Compilation
4.3.2Menu Assignments and Key Bindings
AConventions and Definitions
A.1Conventions
A.1.1Interpreter Environment
A.1.2Caller Type
A.2Value Range Definitions
A.2.1Standard Value Ranges (STD)
A.2.2Schematic Capture Value Ranges (CAP)
A.2.3Schematic Editor Ranges (SCM)
A.2.4Layout Value Ranges (LAY)
A.2.5CAM Processor Value Ranges (CAM)
A.2.6IC Design Value Ranges (ICD)
BIndex Variable Types
B.1Index Reference
B.1.1Standard Index Variable Types (STD)
B.1.2Schematic Capture Index Variable Types (CAP)
B.1.3Layout Index Variable Types (LAY)
B.1.4CAM View Index Variable Types (CV)
B.1.5IC Design Index Variable Types (ICD)
B.2Standard Index Description (STD)
B.3Schematic Capture Index Description (CAP)
B.4Layout Index Description (LAY)
B.5CAM View Index Description (CV)
B.6IC Design Index Description (ICD)
CSystem Functions
C.1Function Reference
C.1.1Standard System Functions (STD)
C.1.2Schematic Capture System Functions (CAP)
C.1.3Schematic Editor System Functions (SCM)
C.1.4Layout System Functions (LAY)
C.1.5Layout Editor System Functions (GED)
C.1.6Autorouter System Functions (AR)
C.1.7CAM Processor System Functions (CAM)
C.1.8CAM View System Functions (CV)
C.1.9IC Design System Functions (ICD)
C.1.10Chip Editor System Functions (CED)
C.2Standard System Functions
C.3SCM System Functions
C.3.1Schematic Data Access Functions
C.3.2Schematic Editor Functions
C.4PCB Design System Functions
C.4.1Layout Data Access Functions
C.4.2Layout Editor Functions
C.4.3Autorouter Functions
C.4.4CAM Processor Functions
C.4.5CAM View Functions
C.5IC Design System Functions
C.5.1IC Design Data Access Functions
C.5.2Chip Editor Functions
Tables
2-1Character Escape Sequences
2-2Reserved Words
2-3Operators
2-4Operator Precedence and Order of Evaluation
3-1User Language Machine Instruction Set
3-2Key-driven Program Call
3-3Event-driven Program Call
A-1User Language Caller Types
A-2Compatibility Caller Type versus Caller Type
A-3Compatibility Caller Type versus Interpreter

 

Preface

The Bartels User Language - Programmer's Guide describes how to use the Bartels User Language in Bartels AutoEngineer, i.e., how it is integrated to the Bartels AutoEngineer EDA system and how it can be applied. The following main topics are covered by this manual:

  • Basic concepts and description of the Bartels User Language
  • The Bartels User Language programming system:
    User Language Compiler and User Language Interpreter
  • User Language example source code listings, short information on the User Language programs supplied with the Bartels AutoEngineer
  • Special data types defined for accessing Bartels AutoEngineer design data
  • User Language system function reference

This documentation is intended for the users of the Bartels AutoEngineer CAD software. The reader should be familiar with the use of his operating system, a text editor for generating ASCII files on his system and the Bartels AutoEngineer. Moderate experience with programming languages in general and the C programming language in particularity is recommended as well.

Those BAE users not planning to do any User Language programming should at least have a look to chapter 4 of this manual, where all User Language programs provided with the BAE software are listed with short descriptions.

Kindly note the Copyright before making use of the information provided with this documentation or applying the herein described products. The reader should also be familiar with the Notations and Conventions used throughout this documentation.

 

Organization of this Documentation

Chapter 1 introduces the basic concepts of the Bartels User Language.
Chapter 2 describes in detail the definition of the Bartels User Language and explains how to write User Language application programs.
Chapter 3 describes the Bartels User Language programming system. It explains how to compile User Language programs using the Bartels User Language Compiler, and how to run User Language programs using the Bartels User Language Interpreter.
Chapter 4 lists all of the Bartels AutoEngineer User Language include files and User Language programs with short descriptions, and provides information on how to make the programs available to the BAE software.
Appendix A describes the conventions and the valid parameter value ranges for accessing the User Language index variable types and system functions.
Appendix B describes the index variable type definitions of the Bartels User Language.
Appendix C describes the system functions included with the Bartels User Language.
 

Related Documentation

The Bartels AutoEngineer® - Installation Guide describes the Bartels AutoEngineer configurations and system requirements and provides detailed Bartels AutoEngineer installation instructions for all supported hardware and software platforms.


The Bartels AutoEngineer® - User Manual describes in detail how to use the Bartels AutoEngineer CAE/CAD/CAM design system. The following main topics are covered by this manual:

  • Introduction: System Architecture, general Operating Instructions, Design Database
  • Circuit Design (CAE), Schematic Editor
  • Netlist Processing, Forward and Backward Annotation
  • PCB Design and manufacturing data processing (CAD/CAM), Layout Editor, Autoplacement, Autorouting, CAM Processor, CAM View
  • IC/ASIC Design, Chip Editor for interactive IC mask layout, Cell Placer and Cell Router for place & route, GDS and CIF import and export
  • Neural Rule System
  • Utility Programs

The Bartels AutoEngineer® - Symbol and Part Libraries documentation contains detailed information about the symbol and part libraries provided with the Bartels AutoEngineer CAE/CAD/CAM design system.


 

Problems, Questions, Suggestions

We appreciate comments from the people who use our system. In particular we are thankful for suggestions on how to improve the Bartels AutoEngineer and/or the Bartels User Language by introducing new or improving existing functions. Please do not hesitate to contact Bartels Support if you have questions or problems related to the use of the Bartels User Language. Check the Bartels Website at http://www.bartels.de for our address.

 

Documentation Notations

The reader should be familiar with the following notations used throughout the Bartels AutoEngineer documentation:

Mouse pointing device (mouse, trackball, etc.) to be used for moving the menu and graphic cursors as well as for selecting functions
Info Field menu field on the right top of the screen for displaying system status messages
Main Menu function menu permanently available in the upper right screen area used for selecting a subordinate function menu
Menu function menu in the lower right screen area currently selected from main menu
Submenu subordinate function menu in the lower right screen area activated intermediately whilst using another menu function
Graphic Workarea workarea for graphic interaction in the upper left screen area
Status Line lower left screen line used for displaying system status messages and for performing interactive user queries
Menu Cursor rectangle-shaped cursor for selecting a menu function
Graphic Cursor cross-shaped cursor in the graphic workarea (crosshairs)
Menu Prompt user query in the status line
Popup Menu menu optionally displayed on top of the graphic workarea for selecting function-specific objects or for activating menu-specific functions
Button selectable popup menu entry for choosing a certain menu element or for activating a menu-specific function
Select Function move menu cursor to a function of the currently active function menu
Activate hitting the mouse button
Pick select an object to be manipulated using the graphic cursor
Place move an element to a certain position in the graphic workarea
Select select an element to be manipulated or a function to be executed by pressing the mouse button
Confirm confirm the execution of a function verified by user query

The following acronyms are used throughout the Bartels AutoEngineer documentation:

BAE acronym for identifying the Bartels AutoEngineer EDA software
BAEICD acronym for the Bartels AutoEngineer IC/ASIC design system optionally included with workstation-based BAE configurations
SCM acronym for the Schematic Editor program module of the Bartels AutoEngineer circuit design system
GED acronym for the graphical PCB Layout Editor program module of the Bartels AutoEngineer PCB design system
AP acronym for the Autoplacement program module of the Bartels AutoEngineer PCB design system
AR acronym for the Autorouter program module of the Bartels AutoEngineer PCB design system
NAR acronym for the advanced Neural Autorouter program module of the Bartels AutoEngineer PCB design system
CAM acronym for the CAM Processor program module of the Bartels AutoEngineer PCB design system
CV acronym for the CAM View program module of the Bartels AutoEngineer PCB design system
CED acronym for the Chip Editor program module of the Bartels AutoEngineer IC/ASIC design system
CP acronym for the Cell Placement program module of the Bartels AutoEngineer IC/ASIC design system
CR acronym for the Cell Router program module of the Bartels AutoEngineer IC/ASIC design system
UL acronym for the Bartels User Language programming language
ULC acronym for the Bartels User Language Compiler
ULI acronym for the Bartels User Language Interpreter
 

Documentation Conventions

Unless otherwise mentioned, the following symbolic conventions are used throughout the Bartels AutoEngineer documentation:

LineprintLineprint font represents text output generated by the system.
BoldfaceBoldfaced words or characters in format or command descriptions represent topic definitions or syntactic terminals, i.e., commands or keywords to be inserted directly.
EmphasizeEmphasized text is used for optical accentuation.
" "Double quotes denote names and/or path names or enclose characters and/or character sequences directly to be inserted.
[ ]Square brackets enclose optional items in format or command descriptions.
{ }Braces enclose a list of items in format or command description, from which one has to be chosen.
|A vertical bar separates items in a list of choices.
< >Angle brackets enclose the logical name of a key on the keyboard. In format or command descriptions, angle brackets enclose values to be supplied.
>Boldfaced greater signs in lineprint font are used for denoting prompts on operating system level.
...Horizontal ellipsis points indicate either optional repetition of the preceding element in format or command descriptions or absence of irrelevant parts of a figure or example.
:Vertical ellipsis points indicate absence of irrelevant parts of a figure, an example or a format or command description.
any Mouse Button (MB)Any Mouse Button (MB)
Left Mouse Button (LMB)Left Mouse Button (LMB)
Middle Mouse Button (MMB)Middle Mouse Button (MMB)
Right Mouse Button (RMB)Right Mouse Button (RMB)
Return/Enter Key (CR)Keyboard (input) - Return/Enter key (CR)
a b ...Keyboard (input) - standard key(s)
F1 F2 ...Keyboard (input) - function key(s)
filenameFile or directory path name.
keywordTopic definitions or syntactic terminals, i.e., commands or keywords to be inserted directly.
messageBAE/system status or error message display.
MenuBartels AutoEngineer menu.
Menu FunctionBartels AutoEngineer menu function.
Menu OptionBartels AutoEngineer menu option.
ButtonBartels AutoEngineer (popup) menu button.
ul.ulh(Hypertext link to) Bartels User Language include file.
ulprog(Hypertext link to) Bartels User Language program description.
ul.ulc(Hypertext link to) Bartels User Language program source file.
ul_function(Hypertext link to) Bartels User Language system function description.
UL_INDEX(Hypertext link to) Bartels User Language index type description.
utilprog(Hypertext link to) Bartels AutoEngineer utility program description.
new featureNew features which are made available with regular (weekly) software updates/builds are highlighted in the online documentation.

The character sequences mentioned above may regain original meaning when used in programming languages, interpreter languages, specification languages, syntax description languages, etc.

 

Copyright

The information contained in the Bartels AutoEngineer publications as well as the products and/or programs described therein are subject to change without notice and should not be construed as a commitment by Bartels System.

Although Bartels System has gone to great effort to verify the integrity of the information provided with the Bartels AutoEngineer publications, these publications could contain technical inaccuracies or typographical errors. Bartels System shall not be liable for errors contained therein or for incidental consequential damages in connection with the furnishing, performance or use of this material. Bartels System appreciates readers' and/or users' comments in order to improve these publications and/or the products described therein. Changes are periodically made to the information therein. These changes will be incorporated in new editions of the Bartels AutoEngineer publications.

All rights reserved. No part of the Bartels AutoEngineer publications may be reproduced, stored in a retrieval system, translated, transcribed or transmitted, in any form or by any means manual, electric, electronic, electromagnetic, mechanical, chemical, optical or otherwise without prior express written permission from Bartels System.

Bartels AutoEngineer®, Bartels Router® and Bartels Autorouter® are registered trademarks of Bartels System. Bartels User Language™ and Bartels Neural Router™ are trademarks of Bartels System. All other products or services mentioned in this publication are identified by the trademarks or service marks of their respective companies or organizations.

Baumeister Mediasoft Engineering » Bartels AutoEngineer » BAE Documentation » User Language Programmer's Guide

Bartels User Language - Programmer's Guide • © 1985-2017 Oliver Bartels F+E • Updated: 19 November 2009, 18:16 [UTC]

Baumeister Mediasoft Engineering, Clontarf, Dublin 3, Ireland
© 2017 Manfred Baumeister

Bartels User Language Programmer's Guide - English Version Bartels User Language Programmierhandbuch - Deutsche Version