ODB Format Description v7 PDF
ODB Format Description v7 PDF
ODB Format Description v7 PDF
Version 7.0
This document is for information purposes. Mentor Graphics reserves the right to make changes in
specifications and other information contained in this document without prior notice, and the user should, in all
cases, consult www.odb-sa.com to determine whether any changes have been made.
ODB++ Format and the ODB++ Specification are the sole property of Mentor Graphics or its licensors. Mentor
Graphics does not authorize any unapproved derivative versions of the ODB++ Format. In obtaining this
document, the user shall not harm Mentor Graphics interest in the ODB++ Format in any way, including but not
limited to: (i) renaming the ODB++ Format; (ii) communicating that the ODB++ Format is owned by anyone other
than Mentor Graphics; (iii) associating the ODB++ Format with data that does not conform to the ODB++
Format; or (iv) modifying the graphical logo representing the ODB++ Format.
Download of the ODB++ Specification does not grant a license to develop software interfaces based on the
format specification. We openly encourage users to apply for a license to develop ODB++-based software as a
Solutions Development Partner within the ODB++ Solutions Alliance at www.odb-sa.com. No representation or
other affirmation of fact contained in this publication shall be deemed to be a warranty or give rise to any liability
of Mentor Graphics whatsoever.
MENTOR GRAPHICS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A
PARTICULAR PURPOSE, OR NON-INFRINGEMENT OF INTELLECTUAL PROPERTY.
MENTOR GRAPHICS SHALL NOT BE LIABLE FOR ANY DIRECT, INCIDENTAL, INDIRECT, SPECIAL, OR
CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOST PROFITS)
ARISING OUT OF OR RELATED TO THIS PUBLICATION OR THE INFORMATION CONTAINED IN IT, EVEN
IF MENTOR GRAPHICS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
U.S. GOVERNMENT LICENSE RIGHTS: The documentation was developed entirely at private expense and is
commercial computer software documentation within the meaning of the applicable acquisition regulations.
Accordingly, pursuant to FAR 48 CFR 12.212 and DFARS 48 CFR 227.7202, use, duplication and disclosure by
or for the U.S. Government or a U.S. Government subcontractor is subject solely to the terms and conditions set
forth in the license agreement provided with the documentation, except for provisions which are contrary to
applicable mandatory federal laws.
TRADEMARKS: The trademarks, logos and service marks ("Marks") used herein are the property of Mentor
Graphics Corporation or other parties. No one is permitted to use these Marks without the prior written consent
of Mentor Graphics or the owner of the Mark, as applicable. The use herein of a third-party Mark is not an
attempt to indicate Mentor Graphics as a source of a product, but is intended to indicate a product from, or
associated with, a particular third party. A current list of Mentor Graphics trademarks may be viewed at:
www.mentor.com/trademarks.
Mentor Graphics Corporation
8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777
Telephone: 503.685.7000
Toll-Free Telephone: 800.592.2210
Website: www.mentor.com
ODB++ Specification
Table of Contents
Chapter 1
Overview
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Intended Readers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
November 2007 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
September 2007 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
August-December 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
September 2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
July 2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
February 2004 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
November 2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
June 2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
March 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
September 2001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
August 2001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
September 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
February 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Conventions and Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 2
Design Principles
File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Mandatory / Optional Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Legal Entity Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Readable ASCII files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Units of Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Large File Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Sum File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Structured Text files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Line Record Text files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Rotation / Mirroring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Standard Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Special (User-Defined) Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
ODB++ Specification
Symbol Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Rounded/Chamfered Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Shapelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Order of Holes/Islands in Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Chapter 3
Job Tree
Job Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Chapter 4
ODB++ Specification
input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
snapshot (Measurement Information)) . . . . . . . . . . . . . . . . . . . . . . . . 68
user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Chapter 5
Job>steps Entity
Required for GenFlex 6.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Layer Profiles File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Layer Profiles File (Encrypted File) . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Footprint Description File (GenFlex 6.4) . . . . . . . . . . . . . . . . . . . . . . 70
Footprint Description File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
stephdr (Step Header) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
attrlist (Attribute List) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
layers (See Chapter 6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Netlists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Required for GenFlex 6.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
cadnet / netlist (CADnet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
refnet / netlist (Reference) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
curnet /netlist (Current) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
profile (Outline Shape of Step) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
bom (Bill of Materials) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
bom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
files (Source Files) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
eda (Electronic Design Automation) . . . . . . . . . . . . . . . . . . . . . . . . . . 83
data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
vpl_pkgs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
net_prp (Net Type) Clearances Records . . . . . . . . . . . . . . . . . . . . . . . 92
chk (Checklists) (See Chapter 9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
et (See Chapter 10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
cdrsr (AOI Panelization) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
reps (Reports) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
ODB++ Specification
Chapter 6
Job>steps>layers Entity
Requiring Implementation for GenFlex 6.4 . . . . . . . . . . . . . . . . . . . . 103
Partial S&R Data File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Partial S&R Data File & Layer Profile Reference Number (Encrypted
Files) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Scaling per Step Data File (Implemented in Genesis v9.3b also) . . . . 103
Scaling per Step Data File (Encrypted File) . . . . . . . . . . . . . . . . . . . 104
Dimension File (Encrypted File) . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
ODB++ Specification
Chapter 7
NCD Entity
Required for GenFlex 6.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
New fields in NCD files (Implemented in Genesis v9.3b also) . . . . . . 164
header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
drill file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
NC File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Chapter 8
NCR Entity
NCR header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
rout file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
NC File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Chapter 9
Job>steps>chk (Checklists)
Required for GenFlex 6.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Header File for each checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Encrypted Checklists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
def/hdr_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
res/hdr_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
report/tags_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
report/text_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
disp_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
meas_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Chapter 10
ODB++ Specification
Chapter 11
Symbol Definitions
Standard Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Square . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Rounded Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Chamfered Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Oval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Diamond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Octagon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Round Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Square Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Square/Round Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Rounded Square Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Rectangle Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Rounded Rectangle Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Oval Donut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Horizontal Hexagon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Vertical Hexagon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Butterfly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Square Butterfly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Half Oval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Round Thermal (Rounded) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Round Thermal (Squared) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Square Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Square Thermal (Open Corners) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Square-Round Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Rectangular Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Rectangular Thermal (Open Corners) . . . . . . . . . . . . . . . . . . . . . . . . 211
Rounded Square Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Rounded Square Thermal (Open Corners) . . . . . . . . . . . . . . . . . . . . 212
Rounded Rectangle Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Rounded Rectangle Thermal (Open Corners) . . . . . . . . . . . . . . . . . . 213
Oval Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Oval Thermal (Open Corners) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Moire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Hole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
ODB++ Specification
Null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Rotated Standard Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
ODB++ Specification
ODB++ Specification
Chapter 1
Overview
Introduction
This book contains the full description of the ODB++ CAD/CAM/DFM data
exchange format. ODB++ is widely accepted within the electronics industry as an
efficient way to move printed circuit bare-board, assembly and test data on the
manufacturing-engineering level within design/manufacturing supply chains. It is
designed as a simple yet comprehensive description of all entities needed in the
manufacturing of a printed circuit board.
Intended Readers
This book is intended for those interested in implementing the ODB++ format, for
CAD/CAM applications and for interfacing to logistical supply-chain processes.
Versioning
This specification describes the latest version of ODB++. Subsequent updates to
the specification will follow sequentially, independent of software program
versions. The following tables describe Valor/Frontline products/releases and the
ODB++ versions supported.
Product
Release
Trilogy/vSure
9.0
7.0
Trilogy/Enterprise
8.2
7.0
Trilogy/Enterprise
8.1
7.0
Trilogy/Enterprise
8.0
7.0
Trilogy/Enterprise
7.6
6.5
Trilogy/Enterprise
7.5
6.51
Trilogy/Enterprise
7.3
6.51
Trilogy/Enterprise
7.2
6.2
Trilogy/Enterprise
7.1
6.2
Trilogy/Enterprise
7.0
6.2
Trilogy/Enterprise
6.3
6.1
Trilogy/Enterprise
6.2
6.1
Trilogy/Enterprise
6.1
6.1
Trilogy/Enterprise
6.0
6.0
ODB++ Specification
10
Chapter 1 Overview
Versioning
Product
Release
Trilogy/Enterprise
5.3
5.3
Trilogy/Enterprise
5.2
5.2
ODB++ version 6.4 and 6.5 files generated from the Frontline GenFlex product may
contain a layer type MASK not presently supported by Enterprise / Trilogy version. A
dialog box appears informing the user that the unknown layer will be changed to
DOCUMENT and the context of the layer changed to MISC. Data contained in ADD_TYPE
and COLOR is lost.
As of ODB++ version 7.0, the layer type MASK is fully supported along with user-defined
layer subtypes.
Product
Release
inCAM
2.0
7.0
inCAM
1.2
7.0
GenFlex
2.6
6.4
GenFlex
2.5
6.4
GenFlex
2.3
6.4
GenFlex
2.2
6.4
GenFlex
2.1a
6.4
GenFlex
2.1
6.4
GenFlex
2.0c
6.4
GenFlex
2.0b
6.4
GenFlex
2.0
6.4
GenFlex
1.7
6.4
GenFlex
1.6b
6.4
GenFlex
1.6
6.4
GenFlex
1.5c
6.4
GenFlex
1.5b
6.4
GenFlex
1.5
6.4
GenFlex
1.4
6.4
Genesis
9.6
Genesis
9.5
Genesis
9.3
Genesis
9.2
Genesis
9.1d
Genesis
9.1c
Genesis
9.2b
ODB++ Specification
11
Chapter 1 Overview
Updates
Product
Release
Genesis
9.12
Genesis
9.02
Genesis
9.0
Genesis
8.2c
Genesis
8.2b
6.1
Genesis
8.2
6.1
Genesis
8.1b
6.1
Genesis
8.1
6.1
Genesis
8.0b
6.1
Genesis
8.0
6.1
Genesis
7.2c
6.1
Genesis
7.2b
6.1
Genesis
7.2
6.1
Genesis
7.1c
6.1
Genesis
7.1b
6.1
Genesis
7.1
6.1
2 Genesis versions 9.0 and earlier convert the MASK layer type to SIGNAL. Subsequent
versions convert the MASK layer type to DOCUMENT, as does Trilogy / vSure.
Updates
This section lists the changes made to ODB++ and to the documentation since
February 2000.
ODB++ V.7.0
November 2007
(Released as V.7.1 for documentation purposes only.)
Entity names must not begin with the characters hyphen (-) or plus (+). This is
in addition to the previously not allowed character, dot (.).
System attributes are no longer considered core entities, and may differ
between Trilogy / Enterprise and Genesis applications. For a current list of
supported attributes, see System Attributes and System Attributes for Genesis,
respectively.
ODB++ V.7.0
September 2007
<job_name>/steps/<step_name>/stephdr, STEP-REPEAT array
Steps rotated at any angle are supported. See the STEP-REPEAT array, ANGLE
parameter.
Flipped steps are supported. See the STEP-REPEAT array, FLIP parameter.
ODB++ Specification
12
Chapter 1 Overview
Updates
<job_name>/steps/<step_name>/layers/<layer_name>/features
Feature transformation functionality allows for any angle rotation for pad and
text features, including barcode; and the resizing of features, instead of
creating special symbols. See the orient_def parameter for pad, text and
barcode features.
Features and coordinates are saved in the units in which they were created to
eliminate the loss of precision due to rounding. See the example under
features.
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/
<action_num>/res/sres/<layer_name>/meas_p
Checklists can be read in both inches and millimeters. See the example under
meas_p.
<job_name>/matrix/matrix
ODB++ V.6.5
Square/Round Donut
Rectangle Donut
Oval
August-December 2005
Layer Production Data parameters have been updated for the LPD file and an
inclusive LPD_MULTIPLE file has been added. See lpd (Layer Production Data)
on page 145.
Supplementary files added to support Orbotech DI machines. Used by Frontline
applications only. See DI (Orbotech Direct Imaging Interface) on page 156.
ODB++ V.6.4
September 2004
Layer type MASK has been added to the job matrix to accommodate the Frontline
GenFlex product along with the two layer fields: ADD_TYPE and COLOR. See MASK,
ADD_TYPE and COLOR in Job Matrix.
ODB++ V.6.3
July 2004
CNSA_NET_TYPE_CLEARANCES dependent upon area constraints have been greatly
expanded to facilitate those clearances used by Cadence Allegro. In order to
maintain backward compatibility and reduce the number of redundant records
which could result, CNSA_KEY_NET_TYPE_CLEARANCES has been added to assign
a name, main_set_name = <set name> to an existing record of net type
ODB++ Specification
13
Chapter 1 Overview
Updates
clearances with the same key values (i.e. constr_area, net_type1, net_type2,
and layers). This <set name> is used to create new clearance records with the
same specified clearances as those found in main_set_name. See Dependent
Upon Constraint Area on page 93 and CNSA_KEY_NET_TYPE_CLEARANCES.
ODB++ V.6.2
February 2004
Two record types added to the net_prp file:
NET_ELECTRICAL_PARAMETERS contains the electrical parameters of a net
designated by set_name read from Cadence Allegro.
NET_ECSET_ENTRY links a specific CAD net to an electrical parameter set.
See Net Type Electrical Parameter Set on page 96 and Electrical Set Entry
Record on page 97.
November 2003
Description Aliases, added to the BOM entity to enable 10 descriptive CPN fields
and 10 descriptive MPN fields to be replaced with user-defined fields in any of the
possible languages of Environment Variable GENESIS_LANG. See # Description
Aliases on page 79.
NET_TYPE_CLEARANCES as well as NET_TYPE_PHYSICAL_PARAMS can now be
dependent upon constraint areas. See Dependent Upon Constraint Area on
page 93.
ODB++V.6.1
(B.06)
June 2003
The following ODB++ entities have been affected by encryption:
<job_name>/steps/<step_name>/eda/vpl_pkgs
ODB++ Specification
14
Chapter 1 Overview
Updates
ODB++ V.6.0
March 2002
<job_name>/stackups/<stackup_name>/stackup
ODB++ V.6.0
(B.04)
September 2001
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/cdrhdr2
ODB++ Specification
15
Chapter 1 Overview
Updates
August 2001
To save the new types of results (Scalar and Text) generated from the two DFM
functions ODB_LAYER_GET_SHAPE_COMP and ODB_RES_SET_MEAS_ID_TEXT with
the rest of the results of a checklist, letters that indicate these types have been
added to the job file:
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/
<action_num>/res/sres/<layer_name>/meas
ODB++ V.5.3
<meas_num>
<cat_num>
<disp_num>
The display record number (0 and up) which must refer to a valid
category in the res/sres/<layer_name>/disp file.
<alarm>
<ftype>
<fsym>
September 2000
<job_name>/steps/<step_name>/chk/<checklist_name>/ actions/<action_num>/res/
sres/<layer_name>/meas
New symbols for <ftype> and <fsym>. See meas_p on page 189.
<job_name>/steps/<step_name>/eda/data
ODB++ Specification
16
Chapter 1 Overview
Conventions and Terminology
ODB++ V.5.2
February 2000
<job_name>/steps/<step_name>/stephdr
Two new fields added to the PIN Record Structure (<etype> & <mtype>).
See Job>Steps>et (Electrical Test) on page 190.
<job_name>/steps/<step_name>/netlists/cadnet/netlist
New parameters added to the Netlist (x, e, & by). See Netlists on page 73.
<job_name>/steps/<step_name>/layers/<layer_name>/components2
New Job Entity. The components file describes the original EDA data for a
component, while the components2 file represents component data after
processing with Assembly Merge (BOM Merge, Library Merge and Board
Merge).
C Core
Data entities marked as "core" contain data that form an essential part of modelling
the Printed Circuit Assembly (including all aspects of the PCB bare-board). In
essence, "core" entities contain all the information necessary for CAM systems to
prepare PCB fabrication and assembly operations.
S Supplementary
Non-core entities (supplementary) are included in the ODB++ format to support
certain CAM and DFM functions specific to certain solution vendors. These
supplementary entities are open to all, and are maintained in accordance with the
specification, in the same way as the "core" entities.
Hyperlinks
TheCharts on page 29 are tree-charts that describe the structure of each entity in
a job. Blue nodes, usually at the end-nodes of the trees, are hyperlinked. Click to
jump to the detailed description of the entity/element.
ODB++ Specification
17
Design Principles
Chapter 2
File System
Hierarchy
ODB++ uses a standard file system structure. A job in ODB++ is represented by a
stand-alone directory tree that can be transferred between systems without any loss
of data.
The advantages of a directory tree compared to one large file are apparent when a
job is being read from disk or saved to disk. The flexible tree structure allows only
a small part of the job to be read/saved, avoiding the overhead of reading and
writing a large file.
When a job tree has to be transferred to another system, standard tar and
compression utilities can be used to convert a directory tree into one flat file.
There are also links between files that are implicitly defined in the ODB++
definition which create dependencies between one file and another. For example,.
the /<step_name>/layers/comp_+_top/components file contains links to
/stepname/eda/data.
Layer name
Symbol name
Attribute name
Attribute string
ODB++ Specification
18
The length of any name should not exceed 64 characters. However, user
attribute strings (not names) are determined by the MAX_LEN, MIN_LEN fields
in the <job_name>/misc/userattr Job File (see <job_name>/misc/
userattr)
Use only the following:
lower case letters ('a' through 'z')
digits ('0' through '9')
punctuation - dash (-), underscore (_), dot (.) and plus (+)
Names must not start with dot (.), hyphen (-), or plus (+) with the exception of
attributes which can start with (.).
Units of Measurement
All units are either imperial units (inches, mils) or metric (mm, micron), depending
upon the units directive placed at the beginning of the file. If not defined, the
default is imperial.
System resolution is 1/10160 mil or 1/400 of a micron. As a result, minimum line
width is 1/400 of a micron wide. Minimum measurable distance, or placement
tolerance for any feature is also 1/400 of a micron.
ODB++ Specification
19
Sum File
Many of the files in ODB++ have an attached hidden file which provides
information about them. The name of the attached file is:
.<name>.sum
The main advantages of this structure is readability. The user can open a file and
understand its contents without having to refer to external sources.
Example (from the stephdr file):
X_DATUM=0.3
ODB++ Specification
20
This element will appear a number of times, each time defining an element of the
array.
Example (from the matrix file):
LAYER {
ROW=1
CONTEXT=BOARD
TYPE=COMPONENT
NAME=COMP_+_TOP
POLARITY=POSITIVE
START_NAME=
END_NAME=
OLD_NAME=
ADD_TYPE=MICRO_VIA
COLOR=606090
}
ODB++ Specification
21
L
L
L
L
-0.4
-0.4
-0.4
-0.4
Note
-3.6
-4 0
-1.4
-1 0
-0.4
-4 0
-0.4
-1 0
-4 0 P 0;0=0
P 0;0=0
-1 0 P 0;0=0
P 0;0=0
Angles
Angles are mainly used to position spokes of thermals and to rotate SMDs. The
following rules apply:
Angle values are expressed as integers within the range 0-359, with angle 0
due East with positive values measured counter-clockwise.
Angles for rectangular thermals can be in 45 degree increments only, whereas
they can be other than multiples of 45 degrees in square/round thermals (when
not in 45 degrees, the spoke gap will lie along a line extending from the
center).
When the start and end-point of an arc coincide, it is considered a 360 degree
arc. There are no single-point arcs in ODB++.
Rotation / Mirroring
Feature pads are oriented at 90 degree increments, rotated clockwise.
Mirroring is only on the X axis (left to right, changing X coordinates).
Diagonal square lines look like rotated rectangles; the endpoints are also
rotated (they are not orthogonal).
Coordinates
Coordinate units in feature and symbol files are given in inches with a decimal
point. Coordinates are always expressed in inches; but symbol sizes are
expressed in microns.
When you specify an x,y location for a text string the bottom left of the first
character is positioned at the coordinates.
Point coordinates in a netlist file represent the center of pads.
Symbols
Symbols define a wide variety of shapes (see below) that are mostly used to draw
pads. A symbol is an ODB++ entity that is defined once and used many times in
order not to repeat the definition of a group of features in a layer. A symbol
contains a features file that has a number of primitive features (such as pad, line,
surface, arc, etc.) that compose the symbol in a layer.
ODB++ Specification
22
Layer-1
Standard Symbols
Standard symbols are generated dynamically by the system from their names. They
do not require a special graphic symbol entity to be saved in the database. They are
round, square or parametric shapes.
For lines, symmetric symbols (where width=height) draw lines with width equal to
the width of the symbol, as in figure below:
Width of a line is the width of the symmetric symbol used to draw it.
Roundcapped line is
drawn by a
round symbol.
Squarecapped line
is drawn by
a square
symbol.
Line drawn
by a donut same result
as a round
symbol.
ODB++ Specification
23
For example to define a round capped line of width 10 mils, use the symbol r10.
To define the same type line but with a width of 20 mils, specify r20. To define a
square capped line with a width of 10 mils, use s10.
Drawing a line with an asymmetric symbol generates a one-pixel line ending with
the symbol at both ends.
Standard symbols are all positive filled shapes. Holes in symbols are see-through
by definition. The internal implementation of complex symbols uses arcs or
contour data with cutouts.
When inserting
this symbol, the
insertion point is
at 0,0. This
means it is a left
arrow
ODB++ Specification
24
Symbol Characteristics
Asymmetric
vs.
Symmetric
When asymmetric symbols (such as rectangles) are used to draw diagonal lines,
the lines are single-pixel lines whose end-points are the symbols used to draw the
lines (see figure below).
When drawn orthogonally (horizontal: y_start= y_end, or vertical: x_start=x_end)
the output line has the height/width of the asymmetric shape from start point to end
point (the line is created by dragging the symbol from one end of the line to the
other in the same orientation as it was placed).
For example, if the symbol in the figure is dragged vertically, the
width of the line will be the width of the symbol. If dragged
horizontally, the width will be the height of the symbol.
Note
Single-pixel line width is expressed in the internal software
resolution of 10160 pixels = 1 mil, or 400 Pixels = 1 micron,
meaning that single-pixel lines are 1/400 of a micron wide.
If the symbol used to draw a line is symmetrical (square or round) the
generated line is the side or diameter of the symbol. A round symbol
(whose name starts with r) generates round line ends, a square symbol (s) generates
square line ends.
For arcs, only round symbols can be used.
Holes in surface features are transparent (empty).
Dimensions of standard symbols can be in non-integers with resolutions up to
1/100 mils
Symbol r0 is a legal entity represented by a single pixel width.
The standard Octagon symbol
corner size is the distance between
the bounding box corner and the
vertex.
ODB++ Specification
25
Rounded/Chamfered Rectangles
The corners of rounded/chamfered rectangles can be specified in ascending order
counter-clockwise, starting from the top-right corner, as in the following figure:
Corner-2
Corner-3
Corner-1
Corner-4
Shape
An internal geometrical entity (that may consist of a number of features) used by
the system during algorithmic operations. Shapes are always positive. They
include points, segments, curves, lines, arcs, squares, rectangles and contours(g).
For example, a shape can be a contourized(g) shaved pad that consists of a pad and
a feature that shaves it.
Shapelist
An internal data structure which, during analysis, is created for a layer upon
demand. The shapelist simplifies the representation of a layer within the system by
dealing with multiple polarities, odd shape symbols, etc. A Shapelist can be
deleted to improve memory usage; it will be rebuilt by the system automatically
when needed.
ODB++ Specification
26
contained in them. Holes precede islands that are contained in them. Take, for
example, the following containment order:
Island A
Island C
Island D
Hole B
Hole E
Natural Order:
A B C D E
Island D is separate from Island A
ODB++ Specification
27
Chapter 3
Job Tree
Job Overview
An ODB++ job can include a number of entities, accessed by a specified editor
represented by icons in the Engineering Toolkit. (All entities, including those not
supported by the Graphic User Interface (GUI), are discussed in Charts on
page 29.) The following are currently supported in the GUI:
Steps, which are multi-layer entities (e.g. a single image, a sub panel array, a production panel
or a multi layer coupon). Each step contains a collection of layers. Layers are two-dimensional
sheets, containing graphics, attributes and annotation. Layers express physical board layers,
mask layers, NC drill and rout layers and miscellaneous drawings. All steps in one job have the
same list of layers, albeit the contents may be totally different.
A Matrix, in which the rows are the job layers and the columns are the job steps. The matrix
contains for each row additional information such as the type, polarity and context. The matrix is
also crucial in defining the physical order of the layers and the relation of drill layers (through,
blind, buried, etc.).
Symbols, single layer graphic entities which can be referenced from within any graphical layer
in a step.
Work Forms, user defined collection of fields (textual and graphical) and buttons.
Input, automatically identifies the format type of the incoming data (Gerber, Excellon drill, etc.)
and interprets the Gerber wheel based on predefined wheel templates.
Output, multiple format translators to choose the output device.
ODB++ Specification
28
Stackups
and Work Flows
may appear if the job contains legacy
data.
Each Step entity contains, in addition to general information and the list of layers,
several other important subentries:
Step & repeat information (in the stephdr file), specifying any previous
steps which are included in this one and their relative location and
orientation.
Up to three netlists of the step (CAD netlist, reference netlist and current
netlist).
An EDA object, containing data regarding the component packages and
pins. It also contains information about the relation of features in the board
layers to specific design nets and properties imported from the EDA
system.
An unlimited number of checklists, each one is composed of analysis or
DFM actions. An action contains the definitions (parameters to run with)
and the results (measurements) of the last successful run.
A profile which is a schematic border around the step.
Charts
An ODB++ job is a directory, containing a large number of sub-directories. The
following charts describe all main- and sub-directories in chart form. Click on blue
nodes to jump to a full description of that entity. Users can create additional
directories for example, xml, whltemps, etc.as long as they do not conflict
with ODB++ standard directories. Directories, no longer supported, may appear in
ODB++ jobs containing legacy data. This is noted in the specification.
indicates a Core entity that contains data essential to modelling a PCB.
ODB++ Specification
29
Job Chart
Blue boxes are
hyperlinked to the
description of the
entity.
<step_name>
steps
...
<symbol_name>
symbols
matrix
...
Red C
diamonds indicate
a Core entity.
matrix
attrlist
misc
last_save
userattr
<wheel_name>
wheels
S Green S
ellipses indicate a
Supplementary
entity
...
<job_name>
<form_name>
forms
...
<flow_name>
flows
...
fonts
standard
<stackup_name>
stackups
...
input
output
user
ext
ODB++ Specification
30
Job>steps
stephdr
attrlist
<layer_name>
layers
...
cdrsr
cadnet
netlist
refnet
netlist
curnet
netlist
netlists
<step_name>
profile
bom
eda
files
vpl_pkgs
data
<checklist_name>
chk
...
et
reps
bom
<etset_name>
Job>steps>layers
attrlist
features
components
components2
tools
<layer_name>
camtek
attrlist
cdr14
cdr_sets
lpd
mania
notes
relation
relation
ncr
ncd
relations
ODB++ Specification
31
Job>steps>chk (Checklist)
def
<checklist_
name>
actions
<action_
number>
hdr
hdr
res
...
text
tags
report
sres
<layer_
name>
meas
disp
...
*
<etset_name>
hdr
netlist*
<split_name>
See below
...
Job>steps>et>split_name
hdr
mapping
net_ext
pin_rules
S
desc
<split_name>
adapter_top
const_drill
desc
adapter_bot
<layer_name>*
<pin_name>
const_drill
pins
output
<layer_name>*
ODB++ Specification
32
Stackup
<stackup_name>
attrlist
fill_table
material
stackup
imp
Flows
def
hdr
dat
hdr
<flow_name>
Forms
hdr
S
<pixmaps_names>
pixmaps
...
def
<form_name>
<callback_files>
cb
...
<help_files>
help
...
hdr
dat
files
S
<file_name>
...
Wheels
attrlist
dcodes
<wheel_name>
ODB++ Specification
33
ncr - ncd
ncr
rout
<ncr_set name>
<layer_name>
ncd
ncf
header
order
table
ncf
<split number>.
<stage number>
drill
<split number>.
<stage number>
<ncd_set name>
S
header
order.<split number>
table
cdr14 - cdr_sets
cdrhdr
cdr14
steps
S
cdr14_stp_main
cdr14_stp_pos
cdr14_stp_neg
clone_<step_name>
user_def_<step_name>
S
S
<layer_name>
cdrhdr
S
cdr14_stp_main
cdrhdr2
cdr_sets
<set name>
cdr14_stp_pos
steps
cdr14_stp_neg
clone_<step_name>
user_def_<step_name>
clone_<step_name>_pos
user_def_<step_name>_pos
cdr14_stp_on_clones
S
S
S
S
ODB++ Specification
34
Chapter 4
This chapter describes in detail each element of the Job Entity database.
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/symbols/<symbol_name>/attrlist
This file contains the values for attributes (system and user) of a symbol.
For a list of symbols, see Symbol
<symbol_name>
Symbols
Definitions on page 202.
Example
.out_break = no
.out_scale = no
.break_away = no
.fill_dx = 0.100000
.fill_dy = 0.100000
.image_dx = -1.000000
.image_dy = -1.000000
connector = no
target = no
component =
comment =
hole_type = plated
serial_number = 15
attrlist
<job_name>
ODB++ Specification
35
Type:
Compression:
Yes
Sum file:
Yes
Path
<job_name>/symbols/<symbol_name>/features
Symbols
<symbol_name>
features
<job_name>
See <job_name>/steps/
<step_name>/layers/
<layer_name>/features
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/matrix/matrix
Matrix
matrix
<job_name>
Example
STEP {
COL=1
NAME=PCB
}
STEP {
COL=2
NAME=PANEL
}
ODB++ Specification
36
...
LAYER {
ROW=1
CONTEXT=BOARD
TYPE=COMPONENT
NAME=COMP_+_TOP
POLARITY=POSITIVE
START_NAME=
END_NAME=
OLD_NAME=
ADD_TYPE=
COLOR=606090
}
LAYER {
ROW=2
CONTEXT=BOARD
TYPE=SILK_SCREEN
NAME=SST
OLD_NAME =
POLARITY=POSITIVE
START_NAME=
END_NAME=
OLD_NAME=
ADD_TYPE=
COLOR=606090
}
...
NAME
CONTEXT
ODB++ Specification
37
TYPE
NAME
OLD_NAME
The previous name of the layer. When this field has a value it
means that a matrix layer has been renamed and this value is its
old name. If the field is blank it means the layer has not been
renamed.
POLARITY
START_NAME,
END_NAME
These fields are only active for drill and rout layers. They specify
the span of the drill or rout, in case it is partial (e.g. blind or buried
via layers). Each field must be a valid board layer name.
When the fields are empty, START_NAME is assumed to be the
first board layer (which is not a drill or rout layer) and END_NAME is
assumed to be the last board layer (which is not a drill or rout
layer).
ADD_TYPE
in 7.0
COLOR
The layers should be ordered according to the stackup of the board, such as:
ODB++ Specification
38
comp_+_top
sigt ... sigb
comp_+_bot
dril
Coverlay
Covercoat
Punch
Stiffener
Bend Area
PSA (Pressure Sensitive Adhesive) - (Base type: mask) Shapes and locations where
PSA material will be placed
on the PCB
Area
Exposed Area
Signal Flex
Mixed Flex
Drawing
Plating_mask (Base type: Mask) Defines which features in the adjacent copper layer
should be plated
Immersion_mask (Base type: Mask) Defines which features are to be covered during
immersion gold process
Osp_mask (Base type: Mask) Defines which features are to be covered with osp finish
ODB++ Specification
39
Silver_mask (Base type: Mask) Defines the silver mask of the adjacent copper layer.
misc (Miscellaneous)
C
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/misc/attrlist
Misc
attrlist
<job_name>
.customer = abc
connector = no
target = no
ODB++ Specification
40
S
Type:
Compression:
None
Sum file:
No
<job_name>/misc/last_save
<job_name>
Type:
Compression:
None
Sum file:
last_save
Yes
<job_name>/misc/info
<job_name>
Misc
info
Example
JOB_NAME=k10025_cd2
ODB_VERSION_MAJOR=6
ODB_VERSION_MINOR=2
ODB_SOURCE=Zuken BD
CREATION_DATE=20030727.091213
SAVE_DATE=20030727.091230
SAVE_APP=Trilogy 5000 7.0
SAVE_USER=mikel
ODB++ Specification
41
where:
JOB_NAME is the name of the job.
ODB_VERSION_MAJOR is the major version designation such as 6 in Version 6.2.
ODB_VERSION_MINOR is the minor version designation such as .2 in Version 6.2.
ODB_SOURCE is the source of data, typically a CAD/EDA system name.
CREATION_DATE and SAVE_DATE follow the format yyyymmdd.hhmmss.
SAVE_APP is the name and number of the application in which the job was saved
Type:
Structured Text
Compression:
None
Sum file:
Yes
<job_name>/misc/userattr
<job_name>
Example
BOOLEAN {
NAME=CONNECTOR
PROMPT=CONNECTOR :
ENTITY=ALL
DEF=NO
}
Description
Misc
userattr
The file contains several arrays. Each array corresponds to one type of attribute:
BOOLEAN
TEXT
OPTION
INTEGER
FLOAT
PROMPT
ENTITY
DEF
ODB++ Specification
42
PROMPT
MIN_LEN
MAX_LEN
ENTITY
DEF
Default value
PROMPT
OPTIONS
DELETED
A semi colon (;) separated list of the values YES and NO.This
corresponds to the list of options, possibly causing an option to be
deleted (YES value)
ENTITY
DEF
Default value
PROMPT
MIN_VAL
MAX_VAL
ENTITY
DEF
Default value
PROMPT
MIN_VAL
MAX_VAL
ENTITY
DEF
Default value
UNITS
ODB++ Specification
43
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/wheels/<wheel_name>/attrlist
<job_name>
attrlist
Wheels
<wheel_name>
Type:
Compression:
None
Sum file:
Yes
Path
<job_name>/wheels/<wheel_name>/dcodes
<job_name>
dcodes
Wheels
<wheel_name>
0 no_mirror
0 no_mirror
0 no_mirror
ODB++ Specification
44
Where:
n
Dcode number
sym_name
Symbol name
angle
mirror
Type:
XPM or TIFF
Compression:
None
Sum file:
No
Path
<job_name>/forms/<form_name>/dat/files/<file_name>
<file_name>
<job_name>
files
dat
Example
Forms
<form_name>
/* XPM */
static char * gnsgenesis186d4.1071 [] =
{
/* width height ncolors cpp [x_hot y_hot] */
"181 172 3 1 0 0",
/* colors */
" c #EBEBF0F0CFCF",
"! c #FCFC00000000",
"# c #00000000FCFC",
/* pixels */
"
!!!!!!!!!!!!!!!!!!!!!!!!!",
"
!!!!!!!!
!!!!!!!!!!!",
"
!!!!!!!!
!!!!!!!!!!!",
....
"
!!!!!!!!!!!!!!!!!!!!!!!!!"};
Full
Description
ODB++ Specification
45
XPM
TIFF
Type:
Compression:
None
Sum file:
No
Path
<job_name>/forms/<form_name>/dat/hdr
Example
STEP=pcb
LAYER_1=L1
1_MIN_P2P=3
1_TYP_P2P=5
1_MIN_P2C=3
1_TYP_P2C=5
1_MIN_C2C=4
1_TYP_C2C=6
hdr
dat
Forms
<form_name>
Where:
<field>
The internal (not displayed) name of the form field. This name
must exist inside the definition portion of the form.
<value>
Type:
Structured Text
Compression:
None
Sum file:
No
Path
<job_name>/forms/<form_name>/def/hdr
ODB++ Specification
46
<job_name>
hdr
def
Forms
<form_name>
The file consists of multiple objects, each one representing one field in the form.
The first object contains definitions about the form itself. Its structure is:
form {
<field> = <value>
....
}
ODB++ Specification
47
LABEL
UNITS
ACT
CLOSE_ACT
AUTO_UPDATE
Each following object has the following structure (note that not all substructure
appear for each object):
<type> <name> {
g {
<field> = <value>
....
}
cb {
<field> = <value>
....
}
te {
<field> = <value>
....
}
ce {
<field> = <value>
....
}
se {
<field> = <value>
....
}
}
<type> can be one of the following values:
sep
A separator object
label
A label object
textf
choice
picture
A graphical image
drawing
A graphical image
scale
A slider field
button
ODB++ Specification
48
The following table represents the mapping between object types and the
substructures which appear in its definition:
g
cb
te
choice
picture
sep
label
textf
drawing
scale
button
ce
se
x
x
x
The fields which are available inside each structure are described below.
The g (geometry) fields:
X
BW
BG
READABLE
EDITABLE
LTYPE
FONT
The font used for the label. A string of the type xyznn where:
x t(imes), h(elvetica) or c(ourier)
y b(old) or m(edium)
z r(egular) or i(talic)
nn number of points (10,12,14,18 or 24).
1 point = 1/72.
LABEL
JUSTIFY
PIXMAP
OR
ODB++ Specification
49
The name of the help file for the field (inside the def/help
directory)
ACT
NUMROWS
Number of rows in the field (1 for single line, 2 for multi line)
NUMCOLS
TYPE
MIN
MIN_DATE_TIME
MAX
MAX_DATE_TIME
TEXT_FORMAT
DATE_FORMAT
TIME_FORMAT
HH:MM:SS
MODE
OR
NUMCOLS
MAX
RADIX
ODB++ Specification
50
Type:
Free Text
Compression:
None
Sum file:
No
Path
<job_name>/forms/<form_name>/def/help/<help_name>
help_name
<job_name>
help
Example
def
Forms
<form_name>
Type:
XPM format.
Compression:
None
Sum file:
No
Path
<job_name>/forms/<form_name>/def/pixmaps/<pixmap_name>
<pixmap_name>
<job_name>
pixmaps
def
Forms
<form_name>
white",
blue",
red",
magenta",
ODB++ Specification
51
" ....................
",
" .XXX.XXXXXXXXXXXXXX.
",
" .XXX.XXXXXXXXXXXXXX.
",
" .XX...XXX...XXX...X.
",
" .X.....X.....X......
",
...
"
"};
o
ooooooo
OOOO O
++++
++++
Type:
Compression:
None
Sum file:
No
Path
<job_name>/flows/<flow_name>/dat/hdr
<job_name>
hdr
dat
Example
Flows
S0 = START-837427680john END-837427684-john
S1 = START-837427689john END-837427693-john
S2 = START-837427698-john END-837427703-john
S3 = Y
S9 = START-837427713-james END-837427717-james
S5 =
S6 = START-837427722-james END-837427727-james
S10 = START-837427731-mary END-837427736-mary
S4 = START-837427740-mary
S7 = Minor
S11 = 61
<flow_name>
ODB++ Specification
52
S12 =
S8 =
Where:
<stage>
The internal (not displayed) name of the flow stage. This name
must exist inside the definition portion of the flow.
<value>
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/flows/<flow_name>/def/hdr
<job_name>
hdr
def
Flows
<flow_name>
ODB++ Specification
53
Example
flow 0 {
VER=0
LABEL=producibility_flow
AUTO_UPDATE=NO
MAX_SUBFLOW_LEVEL_ID=1
}
stage 2 {
LEVEL_ID=1
NAME=S0
LABEL=
TEXT=EDA Input
FORM=
GATE=OR
HELP=
PRE0=1
STAGE_ACT=
OPEN_ACT=
CLOSE_ACT=
NEW_LEVEL_ID=0
}
...
switch 11 {
LEVEL_ID=1
NAME=S7
LABEL=
TEXT=Determine Action
FORM=
GATE=OR
HELP=
PRE0=8
PRE1=9
PRE2=10
PRE3=
STAGE_ACT=
OPEN_ACT=
CLOSE_ACT=
NEW_LEVEL_ID=0
}
ODB++ Specification
54
flow
stage
cond
switch
subflow
LABEL
AUTO_UPDATE
MAX_SUBFLOW_LEVEL_ID
Example
LEVEL_ID
0 for the first structure (which represents the flow) 1 for all other
stages.
NAME
Internal name of the stage. Used for references from the data
section of the Work Flow.
LABEL
Only for subflow stages. The name of the lower level flow which
represents this stage.
TEXT
The actual text which is displayed on the screen for this stage
FORM
GATE
HELP
PRE<n>
switch 11 {
...
ODB++ Specification
55
}
stage 12 {
...
PRE0 = 11 OK
...
}
STAGE_ACT
OPEN_ACT
CLOSE_ACT
NEW_LEVEL_ID
For internal use. Must be 1 for the first stage structure and 0 for
the rest.
Type:
Compression:
None
Sum file:
No
Path
<job_name>/fonts/standard
<job_name>
Example
XSIZE 0.302000
Fonts
standard
YSIZE 0.302000
OFFSET 0.000000
CHAR!
LINE 0.000000 0.000000 0.000000 0.200000 P R 0.012000
LINE 0.000000 -0.100000 0.000000 -0.100000 P R 0.012000
ECHAR
...
ODB++ Specification
56
CHAR ~
LINE -0.100000 0.150000 -0.050000 0.200000 P R 0.012000
LINE -0.050000 0.200000 0.050000 0.100000 P R 0.012000
LINE 0.050000 0.100000 0.100000 0.150000 P R 0.012000
ECHAR
YSIZE <size>
OFFSET <size>
ECHAR
Note
The origin of each character is at the lower left corner. For best results,
font definition should include all ASCII characters.
stackups
No longer supported. However this entity may appear in jobs containing legacy
data.
S
Type:
Structured Text
Compression:
None
ODB++ Specification
57
Sum file:
Yes
Path
<job_name>/stackups/<stackup_name>/attrlist
<job_name>
<stackup_name>
Type:
Compression:
Yes
Sum file:
No
Path
<job_name>/stackups/<stackup_name>/fill_table
<job_name>
fill_table
Stackups
<stackup_name>
# A - ounce range for
first facing copper
# B - Copper area for
first facing copper (percentage)
# C - Position of first layer (Inner, Outer, Any)
# D - ounce range for second facing copper
# E - Copper area for second facing copper (percentage)
# F - Position of second layer (Inner, Outer, Any)
# G - Thickness of fill
# H - Positive tolerance on width of fill
# I - Negative tolerance on width of fill
# J - ordered list of names of sheets in fill
#
#
A
B
C
D
E
F
G H
I
J
begin_fill
fill ((0-10oz 0-100 any)
(0-10oz 0-100 any)
(2 0.5 0.5)
(1080))
fill ((1-1oz 0-100 out)
(0.5-1oz 0-100 inner) (7 1
1)
(113 116))
ODB++ Specification
58
(1-1oz
0-100 inner) (7
1)
(1-1oz
1)
(1-1oz
0-100 inner) (8
1)
(1-2oz
0-100 any)
(21 2
2)
(3-4oz
0-100 any)
(20 2
2)
(1-2oz
0-100 any)
(17 2
2)
(1-2oz
0-100 any)
(10 2
2)
(1-2oz
2)
(0-10oz
0-100 any)
(2 0.5 0.5)
0-100 out)
1)
(D E F)
(G H I) (J))
ODB++ Specification
59
General rules
The prepregs which appear in column J must also appear in the 'material' file.
There must also be a material of this kind in the bill file of the construct. The foils
described in columns A, B, C may be placed either over or under the prepreg sheet
combination. The ounce range and the copper area range should be complete as
possible.
Actual copper area calculations are not made on the panels (this allows stackups to
be designed prior to panelization).
Instead, the following copper area percentage values are automatically assigned to
foils, according to the layer type:
Layer type
signal
20%
mixed
50%
80%
Type:
Compression:
None
Sum file:
No
Path
<job_name>/stackups/<stackup_name>/material
<job_name>
material
Stackups
<stackup_name>
pile_begin
#
# Description of foil records
#
# A - Name of foil
# B - Thickness (in ounces) & +/- tolerances
# C - Color in Genesis display
# D - Ductility (HTE or STD)
# E - Resistance (in ohms)
ODB++ Specification
60
#
#
A
B
C
D
E
elem (Simple (Foil (1oz
(1
0 0) 856700 STD
0)))
elem (Simple (Foil (2oz
(2
0 0) 856700 STD
0)))
elem (Simple (Foil (1/2oz (0.5 0 0) 856700 STD
0)))
#
# Description of prepreg & laminate records
#
# A - Prepreg or Laminate
# B - Name
# C - Thickness (in mils) & +/- tolerances
# D - Color in Genesis display
# E - Dry permittivity
# F - Resin percentage (by weight)
# G - Dry weight
# H - Conductivity
#
#
A
B
C
D
E
F G H
elem (Simple (Prepreg (7628
(7
0.5 0.8)
9900 4.2 20 10 0)))
elem (Simple (Prepreg (108
(1.8 0.2 0.2)
9900 4.2 20 8 0)))
elem (Simple (Prepreg (106
(1.6 0.2 0.2)
9900 4.3 20 6 0)))
elem (Simple (Laminate (Lam/40 (40 0
0 ) 505050 4.6 0 30 0)))
elem (Simple (Laminate (Lam/32 (32 0
0 ) 505050 4.6 0 26 0)))
#
# Description of core records
#
# A - Name
# B - Total Thickness (in mils) & +/- tolerances
# C - Type of top layer
# D - Name of top layer
# E - Type of middle layer
# F - Name of middle layer
# G - Type of bottom layer
# H - Name of bottom layer
# Note: the (G H) Expression is omitted for single sided clad cores.
#
A
B
C
D
E
F
G
H
elem (Compound (Core fr4/40_1/1 (42.8 0 0) (Foil 1oz) (Lam Lam/40) (Foil 1oz))
elem (Compound (Core fr4/32_1/1 (34.8 0 0) (Foil 1oz) (Lam Lam/32) (Foil 1oz))
pile_end
Foil Record
(1
0 0) 856700 STD)))
Prepreg
Record
(7628
(7
0.5 0.8)
9900 4.2 20 10
ODB++ Specification
61
It is 7 mils thick, with a positive tolerance of 0.5 mils and a negative tolerance
of 0.8 mils
It will be displayed in a color whose Genesis number is 009900
It has a dry permittivity value of 4.2
It has 20% resin content (by weight)
It has a dry weight value of 10
It has a conductivity value of 0 (zero)
Laminate
Record
) 505050 4.6 0
30
Core Record
RCC Record
The name of the record is 1825. It is 1.4 mils thick with positive and negative
tolerances of zero mils. It is constructed of the two following layers:
A layer of a foil material
A layer of a resin material
File Structure
ODB++ Specification
62
(C) D E)))
Name of foil
(B (C) D E F G H)))
Prepreg or Laminate
Name
Dry permittivity
Dry weight
Conductivity
or
elem (Compound (RCC A (B) (C D) (E F)())
A
Name
The (G H) expression is omitted for single sided clad cores and RCC.
General rules:
The first line of the file and the last line of the file open and close a block.
ODB++ Specification
63
RCC Record
stackup (Build)
Type:
Compression:
None
Sum file:
No
Path
<job_name>/stackups/<stackup_name>/stackup
stackup
Stackups
<stackup_name>
ODB++ Specification
64
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
FR-4
No)
No)
No)
No)
No)
No)
No)
No)
Yes)
Yes)
Yes)
Yes)
Yes)
Yes)
Yes)
(drill3 Sheet
Explanation
A sub_lam record describes the lamination type of each layer from the sequential
lamination list.
A layer record of the form (layer lamination top_lamination):
Layer - drill or rout layer from the sequential lamination list
Lamination - lamination type of the subassembly. Options are: Auto, Foil, Sheet,
Mixed.
Top_lamination - when the lamination is Mixed, top_lamination defines the
lamination type of the top layer. Options are: Foil, Sheet
The stackup file contains the following records:
A target record of the form target <target thickness> <positive
tolerance> <negative tolerance> where all units are in mils.
A stk_info record of the form:
stk_info <width> <height> <unused value> <plate_thick>
<mask_thick> <thick_type> <vendor> <layer_match>
Where the width and height values are the width and eight of the sheets the
stackup is made of.
The unused value is a numeric value reserved for future use.
ODB++ Specification
65
The thick_type indicates the method used for measuring stackup thickness.
vendor is a vendor name if materials in the stackup are from a particular
vendor, or any if materials may come from any vendor.
lyr match indicates whether there is a one to one correspondence between
foil board layers and stackup foil layers.
Sequential lamination layers are drill and rout layers that generate sequential
lamination requirements.
A pile record which is delimited by lines of begin_pile and end_pile.
Containing the subrecords:
pile_info which is a record of the form:
pile_info (<thickness>) <is_mirror> <construct> <cost> <resin
Er> <copper loss>
Where:
thickness
is_mirror
construct
cost
resin Er
copper_loss
width
height
cost
vendor
construct
ODB++ Specification
66
Note
imp (Impedance)
Type:
Compression:
None
Sum file:
No
Path
<job_name>/stackups/<stackup_name>/imp
<job_name>
# A - Allowed change to
line width
imp
# B - Units of allowed
change (``Inch''
Stackups
<stackup_name>
indicated English. -i.e. mils)
# C - Width variation
of lines
# D - Units of width variation of lines (``Inch'' indicated
English. -- i.e. mils)
# E - Etch factor (Trapezoidal factor of lines due to etch
process) in mils
# F - Relative Permittivity of soldermask
# G - Impedance frequency (in MHZ)
#
A B
C D
E F G H I
imp_info 1 Inch
1 Inch
1 1 1 3 100
imp_begin
# A - Impedance model
# B - Reference layer
# C - Impedance layer
# D - Second Impedance layer (For broadside differential
models)
# E - Second Reference layer (For Microstrip models)
# F - Original line width (in mils)
# G - Current Line width (in mils)
# H - Calculated impedance with tolerances (in ohms)
# I - Desired impedance with tolerances
(in ohms)
# J - Original spacing
(in mils) - for differential models
# K - Current spacing
(in mils)
# L - Tolerance of current width (in mils)
#
A
B
C
D E
F G H
I
J KL
imp (Surface_Microstrip (l2) (l1) () ()
6 6 (98.3 4.9 4.9)
(90 0 0) 0 02)
imp (Dual_Stripline
(l3) (l4) () (l6) 6 6 (138.8 13.8
ODB++ Specification
67
(l3)
(l5)
() (l6)
(l7)
(l8)
(l7)
(l9)
(l11) (l12) () ()
6 6 (138.8 13.8
Impedance model
Reference layer
Impedance layer
Original spacing
Current spacing
(in mils)
(in ohms)
input
Location of input files when saved to a job.
output
snapshot (Measurement Information))
Path
<job_name>/output/snapshots/<snapshot_name>
ODB++ Specification
68
user
Location to store user files.
extension
ODB++ Specification
69
Chapter 5
Job>steps Entity
ODB++ Specification
70
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/stephdr
Steps
<step_name>
stephdr
Example
X_DATUM=0
Y_DATUM=0
<job_name>
STEP-REPEAT {
NAME=1UP
X=1.5
Y=1.6
DX=1.2
DY=1.2
NX=6
NY=6
ANGLE=0
FLIP=NO
MIRROR=NO
}
TOP_ACTIVE=1
BOTTOM_ACTIVE=1
RIGHT_ACTIVE=1
LEFT_ACTIVE=1
ONLINE_DRC_NAME=
ONLINE_DRC_MODE=DISABLED
ONLINE_DRC_STAT=RED
ONLINE_DRC_TIME=0
ONLINE_DRC_BEEP_VOL=2
ONLINE_DRC_BEEP_TONE=500
ONLINE_NET_MODE=DISABLED
ONLINE_NET_STAT=RED
ONLINE_NET_TIME=0
ONLINE_NET_BEEP_VOL=2
ONLINE_NET_BEEP_TONE=1000
AFFECTING_BOM=
AFFECTING_BOM_CHANGED=0
ODB++ Specification
71
The file consists of several fields and an array of STEP-REPEAT records.The fields
are:
X_DATUM
Y_DATUM
X_ORIGIN
x origin point
Y_ORIGIN
y origin point
TOP_ACTIVE
active area for step & repeat (positive distance from the
top edge)
BOTTOM_ACTIVE
active area for step & repeat (positive distance from the
bottom edge)
RIGHT_ACTIVE
active area for step & repeat (positive distance from the
right edge)
LEFT_ACTIVE
active area for step & repeat (positive distance from the
left edge)
ONLINE_DRC_NAME
The name of the checklist (if any) used for on-line DRC
ONLINE_DRC_MODE
ONLINE_DRC_STAT
ONLINE_DRC_TIME
The last time check all was done for on-line DRC
ONLINE_DRC_BEEP_VOL
ONLINE_DRC_BEEP_TONE
ONLINE_NET_MODE
ONLINE_NET_STAT
ONLINE_NET_TIME
The last time check all was done for on-line netlist
ONLINE_NET_BEEP_VOL
ONLINE_NET_BEEP_TONE
AFFECTING_BOM
AFFECTING_BOM_CHANGED
DX
DY
ODB++ Specification
72
NX
NY
ANGLE
FLIP
MIRROR
in 7.0
Any angle rotation is expressed in the Info Command Interface for Data type: REPEAT
and SR for the Step entity and in the Info output file, -t <step> -d REPEAT and
-t <step> -d SR, respectively.
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/attrlist
Steps
attrlist
<job_name>
ODB++ Specification
73
Type:
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/netlists/cadnet/netlist
ODB++ Specification
74
Steps
netlists
cadnet
Definitions
netlist
<job_name>
When a feature does not have a net defined it is assigned to NET $NONE$.
All non-assigned features are defined as NET $NONE (see NET Electrical Net Record on page 86).
ODB++ Specification
75
Where:
<serial_num>
<net_name>
Net names are for reference only. Every <serial_num> net is considered a
different electrical net, and should be electrically isolated from all different
<serial_num> nets. Ideally, each and every <serial_num> net should have a
different <net_name>.
The last section contains the net points. Each one has the following format:
<net_num> <radius> <x> <y> <side> [ <w> <h> ] <epoint> <exp> [ <c> ]
[staggerred <sx> <sy> <sr>] [v] [f] [t] [m][<x>] [<e>] [<by>]
Where:
net_num
radius
x,y
side
T for top
D for bottom
B for both
w,h
epoint
exp
Comment point
sx,sy
sr
Fiducial point
Test point
ODB++ Specification
76
by
{ c s b n }
c - test from component side
s - test from solder side
b - test from both sides
a - test from any one side.
n - side not defined
(if <by> value not defined, n is assumed)
arsize_top
arsize_bot
is_shrink
A net point description for an extended point does not have to be grouped together
in the netlist file.
Type:
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/netlists/refnet/netlist
Steps
netlists
refnet
netlist
<job_name>
ODB++ Specification
77
Type:
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/netlists/curnet/netlist
Steps
netlists
curnet
netlist
<job_name>
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/profile
Steps
<step_name>
profile
Example
#
#Layer features
#
S P 0
OB 0 0 I
OS 0 10
OS 10 10
OS 10 0
OS 0 0
OE
SE
<job_name>
The profile consists of one positive surface feature. Refer to the description of
surface features inside the description of <job_name>/steps/<step_name>/
layers/<layer_name>/features (features on page 108).
ODB++ Specification
78
bom
Type:
Compression:
None
Sum file:
No
Path
<job_name>/steps/<step_name>/boms/<bom_name>/bom
Example
# Header Parameters
HEADER
BRD
REV
HEADER_END
Steps
boms
<bom_name>
bom
<job_name>
# Description Aliases
DESC_ALIASES
LANG fr
INDEX 1
CPN Cout
CPN Cost
INDEX 1
MPN Benefice
MPN Profit Margin
DESC_ALIASES_END
maximum of 10 entries
maximum of 10 entries
RD_CPN_END
# Customer Parts and matching Manufacturer Parts
CPN_MPN
CPN 004-020-101
LNFILE 5 Rev14.v1
VPL_MPN
VPL_VND TOYOCOM
ODB++ Specification
79
MPN TQC-216C-6R
LNFILE 5 Rev14.v1
VND TOYOCOM
LNFILE 5 Rev14.v1
QLF 0
CHS 1
CPN 004-020-101
LNFILE 5 Rev14.v1
VPL_MPN
VPL_VND VF
MPN VM6S-20.0000-16PF
LNFILE 6 Rev14.v1
VND VALPEY-FISHER
LNFILE 6 Rev14.v1
QLF 0
CHS 0
CPN_MPN_END
# Customer Parts and description
CP
CPN 004-020-101
LNFILE 5 Rev14.v1
IPN
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
PKG
LNFILE 0 Rev14.v1
QNT 1
ITEM 0
CPN 004-040-101
LNFILE 7 Rev14.v1
IPN
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
DSC
ODB++ Specification
80
LNFILE 0 Rev14.v1
DSC
LNFILE 0 Rev14.v1
PKG
LNFILE 0 Rev14.v1
QNT 1
ITEM 0
CP_END
FILE_END
Description
The file is divided into four sections. Each section starts with a header (equivalent
to section name) and ends with name_END.
HEADER section
Description
BRD
Board number
REV
Revision
Source information for those parameters indicated in each section are saved in the
corresponding files sub-directory (for example, LNFILE 5 Rev14.v1 (where
Rev14.v1 is the source file and 5 is the source line number).
DESC_ALIASES section
Description
LANG
INDEX
CPN
The alias for the CPN field in the BOM in the selected language.
CPN
INDEX
MPN
The alias for the MPN field in the BOM in the selected language.
MPN
ODB++ Specification
81
RD_CPN section
Description
REF
CPN
Description
CPN
VPL_MPN
VPL_VND
MPN
VND
QLF
CHS
Chosen - if this part is chosen from among the alternate parts for
the CPN. Only one can be Chosen.
Description
CPN
IPN
DSC
Up to 5 descriptions
PKG
Package name
QNT
ITEM
Item number
ODB++ Specification
82
C
Type:
Directory
Compression:
None
Sum file:
No
Path
<job_name>/steps/<step_name>/boms/<bom_name>/files
Steps
boms
<bom_name>
files
<job_name>
data
Type:
Compression:
Yes
Sum file:
No
Path
<job_name>/steps/<step_name>/eda/data
<job_name>
Example
#
HDR Mentor Boardstation database
LYR sst sst+1 sigt sig2 sig3
sig4 sig7 sig8 sig9 sigb smt smb
drill spt ssb spb ssb+1 pg6 pg5
#
PRP MILLING_ORIGIN 'MILLING 0 0.0 0' 0 0
PRP DRILL_ORIGIN '' 0 0
PRP FIXED_COMPONENT_LOCATION 'M3,m1' 1
....
#
#Net attribute names
data
Steps
eda
ODB++ Specification
83
#
#@0 .critical_net
#@1 .diff_pair
#@2 .net_type
#@3 .electrical_class
#@4 .dpair_gap
#@5 .eclass_rise_time
#@6 .eclass_max_stub_length
#
#
#Net attribute text strings
#
#&0 DEFAULT
#&1 clocks
#&2 EC_PUA
#&3 local
...
# NET 0
NET /D_CL_TX_CLK ;0,2=1,3=2,5=1.500000
SNT TOP T 16 0
FID C 2 33
FID C 10 33
FID C 13 30
...
# PKG 1
PKG *PDXC-L10/HX-L127W51T97 0.1 -0.25 -0.145 0.25 0.145
RC -0.25 -0.1 0.5 0.2
PIN 1 T -0.2 -0.1105 0 E S
RC -0.2125 -0.145 0.025 0.069
PIN 3 T -0.1 -0.1105 0 E S
RC -0.1125 -0.145 0.025 0.069
PIN 5 T 0 -0.1105 0 E S
RC -0.0125 -0.145 0.025 0.069
PIN 7 T 0.1 -0.1105 0 E S
RC 0.0875 -0.145 0.025 0.069
PIN 9 T 0.2 -0.1105 0 E S
RC 0.1875 -0.145 0.025 0.069
PIN 2 T -0.2 0.1105 0 E S
RC -0.2125 0.076 0.025 0.069
PIN 4 T -0.1 0.1105 0 E S
RC -0.1125 0.076 0.025 0.069
PIN 6 T 0 0.1105 0 E S
RC -0.0125 0.076 0.025 0.069
PIN 8 T 0.1 0.1105 0 E S
RC 0.0875 0.076 0.025 0.069
PIN 10 T 0.2 0.1105 0 E S
RC 0.1875 0.076 0.025 0.069
#
# PKG 2
PKG *MBCY-T2/XC-L80W80T115 0.1377953 -0.1574803 -0.1574803
0.1574803
0.1574803
ODB++ Specification
84
CR 0 0 0.1574803
PIN P T 0.0688976 0 0 E T
CR 0.0688976 0 0.011811
PIN N T -0.0688976 0 0 E T
CR -0.0688976 0 0.011811
# FGR 1907
FGR TEXT
PRP string '030'
FID C 14 11018
FID C 14 11018
File Header
LYR
Layer Names
NET
SNT
Subnet Record
PKG
Package Record
PIN
Pin Record
FGR
FID
Feature ID record
PRP
Property record
This header contains a table of net attribute names as well as a table of all net
attribute values that are strings. The structure of the net attributes header is the
same as that for features and components, except that each line begins with #.
#Net attribute names
#@<num1> <attribute_name>
#@<num2> <attribute_name>
#Net attribute text strings
#&<num3> <string>
Usage: <num1>,<num2>=<num3>
Outline Records:
CR
Circle record
SQ
Square Record
RC
Rectangle record
Contour record
This record contains the EDA system which was the source of the data.
ODB++ Specification
85
Structure:
HDR <source>
Where:
<source> can be:
LYR - Layer
Names
This record contains the names of the layers which are referenced in FID records
later.
LYR
Where:
A legal name of a layer listed in the job matrix
<namex>
This record contains a start record of an electrical net. Each net consists of one
NET line and 0 or more SNT records
NET
<name>
Where:
<name>
<attributes>
Note: n must match a @ record in the attribute header s must match a &
record in the attribute header.
Net names are for reference only. Every NET record is considered a different
electrical net, and should be electrically isolated from all NET records. Ideally, the
<name> should be unique across all NET records.
When a feature does not have a net defined it is assigned to NET $NONE$. All unassigned outer layer pads are defined as NET $NONE$. With more than one $NONE$
net, each is disconnected from the other. Any two points of a $NONE$ net can be
connected or disconnected, depending on the design.
In the Compare function of the Netlist Analyzer, disconnected $NONE$ nets are not
reported as opens. Shorts between $NONE$ nets and other nets are reported. If no
special treatment is done on the Xpert then if a $NONE$ net points form more than
one net typically they will all be reported as a large $NONE$ net broken into
subnets.
ODB++ Specification
86
SNT - Subnet
Record
via
trace
plane
Each subnet record is followed by zero or more FID records mapped to the board
features which are part of this subnet.
Structure for
toeprint:
<side>
<comp_num>
<pin_num>
SNT VIA
Structure for
trace
SNT TRC
Where:
<fill_type>
S for solid
H for hatched
O for outline
<cutout_type>
C for circle
R for rect
O for octagon
E for exact
<fill_size>
Note
PKG Package
Record
Structure:
<pin_num>
Where:
Structure for
via
Structure for
plane
<comp_num>
The values for SNT PLN must appear with legal values, but the software
does not consider them internally.
ODB++ Specification
87
Where:
<name>
<pitch>
<xmin>,<ymin>,<xmax>,<ymax>
Note
PIN - Pin
Record
Structure:
Where:
<name>
<type>
T for thru-hole
(top--->bottom)
B for blind
(<top--->inner or inner--->bottom)
S for surface
(<top--->top or bottom-->bottom)
<xc> <yc>
<fhs>
<etype>
<mtype>
ODB++ Specification
88
FGR Feature
Group
Record
This record contains the definition of a group of related features (e.g. the strokes of
a text record).
Each FGR line is followed by zero or more FID records mapped to the board
features which are part of this subnet.
FGR <type>
Where:
<type>
FID - Feature
ID Record
This record contains a link to a feature in the board. The record is used to connect
subnets and feature groups to the board features which are part of them.
FID <type> <lyr_num> <f_num>
Where:
<type>
C - copper
L - laminate
H - hole
<lyr_num>
<f_num>
PRP Property
Record
=
=
=
=
0
1
2
3
This record represents a property of the board, a net, a package or a feature group.
A property consists of a name, a string value and 0 or more floating numbers.
Where:
Outline
Records
<name>
<value>
n1,n2,...
Outline records must follow a PKG or PIN record. They describe the shape of the
package/pin.
ODB++ Specification
89
Note
A PKG record must have an outline record as the immediate next entry
(an outline record can be more than one line). A PIN record does require
an outline record but not immediately after.
The structure of a contour record is the same as a surface feature in the features
file and is restricted by the same limitations.
A contour consists of one or more polygons.
- Intersection is not allowed between edges of the same polygon
- Intersection is not allowed between edges of different polygons
- The polygons must form a closed shape
- Holes must be graphically contained inside island polygons
- The curves must be consistent (the start, end, and center point must
construct a legal curve).
A polygon starts with OB command, contains OS (segment) or OC (curve)
commands and ends with an OE command.
OB <start_x> <start_y>
I/H
(I=island, H=hole)
OS <end_x> <end_y>
OC <end_x> <end_y>
N)
OE
Net
Attributes
The net attributes are found in the file data, under the EDA directory of the job.
Each net can have attributes in the same way it is done for features and
components. That is, each net name may be followed by a semi-colon followed by
net attribute values, i.e., NET <net_name> ; <net attributes>
Also, in the EDA data file, the net attributes header is found. This header contains
a table of net attribute names as well as a table of all net attribute values that are
strings. The structure of the net attributes header is exactly like the one used for
features and components. The only difference is that for net attributes the header is
commented (with #), in order to be read by Enterprise versions prior to v5.3. The
header is located before the first net record.
For example:
ODB++ Specification
90
NET /D_CL_TX_CLK;0,2=1,3=2,5=1.500000
S
Type:
vpl_pkgs
Encrypted
Compression:
No
Sum file:
No
Path
<job_name>/steps/<step_name>/eda/vpl_pkgs
vpl_pkgs
Steps
eda
ODB++ Specification
91
Type:
Compression:
Sum file:
Path
<job_name>/steps/<step_name>/eda/net_prp
<job_name>
net_prp
Steps
eda
Independent
of Constraint
Area
NET_TYPE_CLEARANCES {
net_type1 = <net type 1>
net_type2 = <net type 2>
layers = <layer names>
via2via = <clearance>
trace2trace = <clearance>
via2trace = <clearance>
pin2pin = <clearance>
via2pin = <clearance>
trace2pin = <clearance>
plane2plane = <clearance>
via2plane = <clearance>
trace2plane = <clearance>
pin2plane = <clearance>
}
<net type 1> and <net type 2> are either net types that are supposed to be
;) or an asterisk *.
The 10 clearances that come after are optional. If exist, they are given in inches.
Examples:
NET_TYPE_CLEARANCES {
net_type1 = local
net_type2 = clock
layers = sigt;sig4
via2via = 0.005000
trace2trace = 0.005000
ODB++ Specification
92
...
}
NET_TYPE_CLEARANCES {
net_type1 = local
net_type2 = *
layers = *
via2via = 0.005000
trace2trace = 0.005000
...
}
Dependent
Upon
Constraint
Area
CNSA_NET_TYPE_CLEARANCES {
constr_area = <area name>
net_type1 = <net type 1>
net_type2 = <net type 2>
layers = <layer names>
via2via = <clearance>
trace2trace = <clearance>
via2trace = <clearance>
pin2pin = <clearance>
via2pin = <clearance>
trace2pin = <clearance>
plane2plane = <clearance>
via2plane = <clearance>
trace2plane = <clearance>
pin2plane = <clearance>
bb_via2bb_via = <clearance>
bb_via2line = <clearance>
bb_via2smd_pin = <clearance>
bb_via2shape = <clearance>
bb_via2tst_pin = <clearance>
bb_via2tst_via = <clearance>
bb_via2thru_pin = <clearance>
bb_via2thru_via = <clearance>
line2line = <clearance>
line2smd_pin = <clearance>
line2shape = <clearance>
line2tst_pin = <clearance>
line2tst_via = <clearance>
line2thru_pin = <clearance>
line2thru_via = <clearance>
shape2smd_pin = <clearance>
shape2shape = <clearance>
shape2tst_pin = <clearance>
shape2tst_via = <clearance>
shape2thru_pin = <clearance>
shape2thru_via = <clearance>
smd_pin2smd_pin = <clearance>
smd_pin2tst_pin = <clearance>
smd_pin2tst_via = <clearance>
smd_pin2thru_pin = <clearance>
Clearances from
bb_via2bb_via to
tst_via2bond_pad are for
Cadences jobs from V7.3.
ODB++ Specification
93
smd_pin2thru_via = <clearance>
tst_pin2tst_pin = <clearance>
tst_pin2tst_via = <clearance>
tst_pin2thru_pin = <clearance>
tst_pin2thru_via = <clearance>
tst_via2tst_via = <clearance>
tst_via2thru_pin = <clearance>
tst_via2thru_via = <clearance>
thru_pin2thru_pin = <clearance>
thru_pin2thru_via = <clearance>
thru_via2thru_via = <clearance>
hole2hole = <clearance>
hole2owire = <clearance>
owire2owire = <clearance>
dwire2hole = <clearance>
dwire2owire = <clearance>
thru_pin2bond_pad = <clearance>
smd_pin2bond_pad = <clearance>
thru_via2bond_pad = <clearance>
bond_pad2bond_pad = <clearance>
bond_pad2line = <clearance>
bond_pad2shape = <clearance>
bb_via2bond_pad = <clearance>
tst_pin2bond_pad = <clearance>
tst_via2bond_pad = <clearance>
dpair_sep_prim = <clearance>
dpair_spe_scnd = <clearance>
}
<area_name> is the name of the constraint area (an arbitrary string of less than 65
characters or an asterisk *).
<dpair_sep_prim> and <dpair_sep_scnd> are determining clearances for
differential pair nets, regardless of feature type. These fields are optional. When
they exist, they are expressed in inches.
Other fields are the same as in NET_TYPE_CLEARANCES.
Examples:
CNSA_NET_TYPE_CLEARANCES {
constr_area = AGP-EDGE-AREA
net_type1 = NO-TYPE
net_type2 = NO-TYPE
layers = top
tst_via2tst_via = 0.010000
line2line = 0.010000
tst_via2line = 0.008000
smd_pin2smd_pin = 0.025000
smd_pin2tst_via = 0.025000
line2smd_pin = 0.009700
shape2shape = 0.010000
shape2tst_via = 0.006000
line2shape = 0.010000
shape2tst_pin = 0.010000
dpair_sep_prim = 0.005000
ODB++ Specification
94
dpair_sep_scnd = 0.050000
}
CNSA_NET_TYPE_CLEARANCES {
constr_area = *
net_type1 = *
net_type2 = *
layers = int4
tst_via2tst_via = 0.005000
line2line = 0.010000
bb_via2line = 0.007000
thru_pin2thru_via = 0.005000
smd_pin2thru_via = 0.005000
line2smd_pin = 0.007000
shape2shape = 0.010000
shape2tst_via = 0.008000
line2shape = 0.010000
shape2smd_pin = 0.010000
dpair_sep_prim = 0.005000
dpair_sep_scnd = 0.050000
}
CNSA_KEY_NET_TYPE_CLEARANCES {
constr_area = <area name>
net_type1 = <net type1>
net_type2 = <net type2>
layers = <layer names>
main_set_name = <set name>
}
<set_name> is the name of the new set with the same clearances as the one named
main_set_name.
CNSA_NET_TYPE_PHYSICAL_PARAMS {
constr_area = <area name>
net_type = <net type>
layers = <layer names>
min_line_width = <parameter value>
min_neck_width = <parameter value>
max_line_length = <parameter value>
}
ODB++ Specification
95
<area_name> is the name of the constraint area (an arbitrary string of less than 65
characters or an asterisk *).
<net type> is either the net type that is supposed to be defined in the data file, or
an asterisk *.
<layer names> is either a list of the job layer names (separated by semi-colons
;) or an asterisk *.
The three parameter values are optional. If they exist, they are given in inches.
Note
The net type physical parameters record is ignored by software versions
prior to V7.1.
Examples:
CNSA_NET_TYPE_PHYSICAL_PARAMS {
constr_area = BGA-080-AREA
net_type = 36MIL-TRACE
layers = bottom
min_line_width = 0.005000
min_neck_width = 0.004000
max_line_length = 0.100000
}
CNSA_NET_TYPE_PHYSICAL_PARAMS {
constr_area = *
net_type = *
layers = top
min_line_width = 0.005000
min_neck_width = 0.004000
max_line_length = 0.100000
}
Net Type
Electrical
Parameter
Set
NET_ELECTRICAL_PARAMS {
ecset_name = <set name >
dpair_prim_gap = <parameter value>
dpair_line_width = <parameter value>
dpair_neck_gap = <parameter value>
dpair_neck_width = <parameter value>
dpair_coupled_tol_min = <parameter value>
dpair_coupled_tol_pl = <parameter value>
dpair_minimum_spacing = <parameter value>
dpair_gather_control = <parameter value>
dpair_max_uncoupled_len = <parameter value>
dpair_phase_control = <parameter value>
dpair_phase_tolerance_min = <parameter value>
dpair_phase_tolerance_pl = <parameter value>
}
<set name> is the name of the electrical parameters set as read from Cadence
Allegro. All parameter values are optional. If they exist, they are expressed in
inches.
ODB++ Specification
96
Example:
NET_ELECTRICAL_PARAMS {
ecset_name = DP-IBM-6GAP
dpair_prim_gap = 0.006000
dpair_line_width = 0.004000
dpair_neck_gap = 0.000000
dpair_neck_width = 0.004000
dpair_coupled_tol_min = 0.000100
dpair_coupled_tol_pl = 0.000100
dpair_minimum_spacing = 0.005800
dpair_gather_control = 0.000000
dpair_max_uncoupled_len = 0.100000
dpair_phase_control = 0.000000
dpair_phase_tolerance_min = 0.000000
dpair_phase_tolerance_pl = 0.000000
}
Electrical Set
Entry Record
Electrical set entry record is intended to link CAD net and electrical parameter set.
The record has the following structure:
NET_ECSET_ENTRY {
net_name = <net name>
ecset_name = <set name >
}
<net name> is the name of the CAD net (not a type as for other records in the file)
<set name> is the name of the electrical parameters set (the same name as
mentioned in the ecset_name field of NET_ELECTRICAL_PARAMS)
Example:
NET_ECSET_ENTRY {
net_name = SC_D_SCSI_SEL_N
ecset_name = DP-IBM-6GAP
}
ODB++ Specification
97
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/cdrsr
<job_name>
Example:
PANELIZATION=USER_DEFINE
D
cdrsr
Steps
<step_name>
PCB {
X_DATUM=3.219249311023622
Y_DATUM=3.702147440944882
X_MIN=1.797249606299212
Y_MIN=2.280147834645669
X_MAX=4.568325787401575
Y_MAX=5.561685433070866
SNAP=0
INSPECT=0
NAME=1
STEP=
STEP-REPEAT {
NAME=
X=3.219249311023622
Y=3.702147440944882
DX=4.995229330708661
DY=-0.0364615157480315
NX=2
NY=1
ANGLE=0
MIRROR=NO
}
}
USE_STEPS=
GENESIS_VERSION=
ODB++ Specification
98
Description
PCB Array
Structure
STEPREPEAT
Array
Structure
Parameter
Description
PANELIZATION
USER_DEFINED
PCB
USE_STEPS
GENESIS_VERSION
Parameter
Description
X_DATUM
Y_DATUM
X_MIN
Y_MIN
X_MAX
Y_MAX
SNAP
INSPECT
NAME
STEP
STEP-REPEAT
Array defining the step&repeat of the PCB in the panel. Similar to the
STEP-REPEAT array in <job_name>/steps/<step_name>/stephdr.
Parameter
Description
NAME
Field not in use. The NAME field as it appears in the PCB array is used
instead.
DX
DY
NX
NY
ANGLE
MIRROR
ODB++ Specification
99
reps (Reports)
Type:
Compression:
None
Sum file:
No
Path
<job_name>/steps/<step_name>/reps/<rep_name>
Example
TTL Library Merge Report
MSV 0
CAT No package in
library
CAT No part in library
<job_name>
CAT Ambiguous package
CAT No pin 1
CAT No BOM data
CAT No vendor name
Steps
CAT No vendor code
CAT Placement mismatch
(one)
CAT Placement mismatch (all)
CAT Inconsistent package rotation
CAT CAD/VPL pin count mismatch
CAT Package found
CAT Placement successful
_END_CAT
ITM 2 1
TXT VCODE: DALE, MPN: HAZ470MBABRAK
VAL S C388
LYR comp_+_top
AUX art.3
LIM 25222200 6146800 25831800 6553200
SHP S RC 2.4825 0.605 0.06 0.04
ITM 2 1
TXT VCODE: DALE, MPN: HAZ470MBABRAK
VAL S C389
LYR comp_+_top
AUX art.3
LIM 24968200 12623800 25577800 13030200
SHP S RC 2.4575 1.2425 0.06 0.04
Description
<rep_name>
reps
<step_name>
String serving as the report title (for display and for output).
ODB++ Specification
100
MSV <sev>
<sev>
<name>
<sev>
String value
<intval>
Integer value
<floatval>
Floating-point value
All, some, or none of these records can be present for any item. How the values are
interpreted, depends on the viewing method of the report in the code and cannot be
modified.
LYR - Item layer
ODB++ Specification
101
LYR <lyrname>
<lyrname>
Name of a layer in the job's matrix. This layer is the primary layer
associated with the item.
Lower and upper limits for the X-axis of the graphical display area
for this item.
<ymin>,
<ymax>
Note
The limits define a window on the board where the location and size of
the window are dependent on the type of report item. The report viewing
functions of the Engineering Toolkit will zoom to an area twice the size of
this window when the report item is highlighted.
When the report items are components, the shape and the limits are based
on the component body outline.
In cases where the limits are not set (that is, xmin==xmax), the window is
based on the shape borders.
Note
ODB++ Specification
102
Chapter 6
Job>steps>layers Entity
ODB++ Specification
103
Scale Percent
PS_SIZE
PS_ORIENTATION
Landscape or Portrait
Paper Width
Paper Height
Paper_*_Margin
The top
bottom
Active_*
Line width
Post_Decimal_Dist
Post_Decimal_Pos
Post_Decimal_Angle
FONT
FONT_WIDTH
ODB++ Specification
104
FONT_HEIGHT
EXT_OVERLEN
CENTER_MARKER_LEN
BASELINE_SPACING
DIMENS_COLOR_FEATURE
DIMENS_COLOR_DIMENS
DIMENS_COLOR_DIMENS_TEXT
DIMENS_COLOR_PROFILE
ORIGIN_X,ORIGIN_Y
Sample Header:
VERSION=1
SCALE_PERCENT=300
PS_SIZE=A4
PS_ORIENTATION=LANDSCAPE
PAPER_WIDTH=12
PAPER_HEIGHT=8.3
PAPER_POS_X=-1.0
PAPER_POS_Y=-0.8
PAPER_TOP_MARGIN=0.1
PAPER_BOTTOM_MARGIN=0.1
PAPER_LEFT_MARGIN=0.1
PAPER_RIGHT_MARGIN=0.1
ACTIVE_X00=0.3
ACTIVE_Y00=0.3
ACTIVE_X11=1.9
ACTIVE_Y11=1.9
LINE_WIDTH=0.22
POST_DECIMAL_DIST=3
POST_DECIMAL_POS=3
POST_DECIMAL_ANGLE=3
FONT=SIMPLEX.SHX
FONT_WIDTH=4.6
FONT_HEIGHT=4.6
EXT_OVERLEN=0.04
CENTER_MARKER_LEN=0.05
BASELINE_SPACING=0.012
DIMENS_COLOR_FEATURE=757575
DIMENS_COLOR_DIMENS=9900
DIMENS_COLOR_DIMENS_TEXT=99
DIMENS_COLOR_PROFILE=990000
ORIGIN_X=0.0
ORIGIN_Y=0.2
ODB++ Specification
105
Dimension entity
The dimension entity can include many dimension records of the following format:
Type
One of horiz
vert
parallel
radial
diam
angle
center
Ref[1-3]
Offset
Arrow_Pos
The dimension record contains a text record that describes the text label of the
dimension. It contains the following fields.
Prefix
Value
View Units
Units
Outside
Suffix
Note
X&Y
Angle
ODB++ Specification
106
REF3X=0
REF3Y=0
LINE_PT_X=1.10
LINE_PT_Y=0.35
OFFSET=0
ARROW_POS=INSIDE
TEXT {
PREFIX=
VALUE=0.741
UNITS=INCH
VIEW_UNITS=NO
OUTSIDE=NO
TOL_UP=
TOL_DOWN=
SUFFIX=
NOTE=
X=0.56
Y=0.70
ANGLE=0
}
}
%%p
%%c
%%d
%%m
ODB++ Specification
107
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/attrlist
Steps
Example
.out_mirror = no
.inp_file =
.eda_layers =
"signal_2","signal","VIA"
.out_angle = 0.0
.out_polarity = positive
.out_x_scale = 1.000000
.out_y_scale = 1.000000
.out_comp = 0.000000
<step_name>
layers
<layer_name
<job_name>
attrlist
features
Type:
Compression:
Yes
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/features
Steps
<step_name>
layers
<job_name>
<layer_name
features
Symbols table
Contains the names of all the
symbols used by the features
in the file and corresponding serial numbers for reference by the feature
records.
Attribute table
Contains the names of attributes used by the features in the file, and the
corresponding serial numbers for reference by the feature records
ODB++ Specification
108
Attribute texts
Contains a list of text strings which are values for textual attributes.
Features list
in 7.0
Example
#
#Units
#U
U MM
.....
.....
#
#Feature symbol names
#
#not semi-standard--units are mm as are the layer units
$0 r120
$1 rect20x60 M
# rect 20 by 60 microns
$2 rect3x5 I
#rect 3 by 5 mils
$3 r10
.....
#
#Feature attribute names
#
@0 .smd
@1 .nomenclature
@2 .test_point
@3 .geometry
@4 .pad_usage
.....
#
#Feature attribute text strings
#
&0 9796334
&1 fid_0_0_0
&2 moire
&3 p115_115_115_095
...
ODB++ Specification
109
#
#Layer features
#
P -0.198 1.62 16 P 0 3;3=2,4=0
P 0.118 1.62 16 P 0 3;3=25,4=0
L 3.834 -1.16 3.86728 -1.16 2 P 0 ;1,3=0
L 3.86728 -1.16 3.8782 -1.16485 2 P 0 ;1,3=0
....
S P 0
OB -0.013 2.427 I
OS -0.013 2.218
OS -0.263 2.218
OS -0.263 2.427
OS -0.219 2.427
OS -0.219 2.262
OS -0.057 2.262
OS -0.057 2.427
OS -0.013 2.427
OE
SE
....
Layer-1
Pointer to us
ersymb-1
The following figure describes how symbols are treated. The sample feature file has
been stripped of all but the relevant sections for this example:
Special Symbols
usersymb-1
usersymb-2
...
...
Layer-2
ODB++ Specification
110
This section contains the symbols used by features in the file. The format of each
line is:
$<serial_num> <symbol_name> [<I|M]
This section defines the names of attributes used by features in the file. The format
of each line is:
@<serial_num> <attribute_name>
Attribute starting with the dot (.) character are system attributes (some system
attributes must be defined for certain processes, such as analysis). Other attributes
are user defined attributes.
Layer-1
#Feature attribute names
#
@0 .smd
@1 .nomenclature
@2 .test_point
@3 .geometry
@4 .pad_usage
...
#
#Feature attribute text strings
#
&0 9796334
&1 fid_0_0_0
&2 moire
4(.pad_usage)=,0(toeprint*)
&3 p115_115_115_095
...
#
P -0.198 1.62 16 P 0 3;3=2,4=0
3(.geometry) =2(moire)
* When the attribute is of type Option, the reference number points to the attribute
options. In the case of .pad_usage these are:
0
1
2
3
4
toeprint;
via;
g_fiducial;
l_fiducial;
tooling_hole.
ODB++ Specification
111
This section contains texts which are values of textual feature attributes. Like its
predecessors, the reason for this section is to save the repetition of long texts for
each feature which uses it. The format of each line is:
&<serial_num> <text>
The features section:
This is the main section of the features file. It contains all the features in the file.
Most features are represented by a single line in the file. Surface features may
require multiple lines. The general format of a feature line is:
<type> <params> ; <atr>[=<value>],...
Where:
<type>
<params>
<atr>
<value>
start point
ye, ye
end point
sym_num
polarity
dcode
ODB++ Specification
112
center point
<apt_def>
polarity
dcode
orient_def
in 7.0
0 : 0 degrees, no mirror
1 : 90 degrees, no mirror
2 : 180 degrees, no mirror
3 : 270 degrees, no mirror
4 : 0 degrees, mirror in X axis
5 : 90 degrees, mirror in X axis
6 : 180 degrees, mirror in X axis
7 : 270 degrees, mirror in X axis
8 : any angle rotation, no mirror
9 : any angle rotation, mirror in X axis
If the first number of orientation definition is an integer from 0
through 7, it is legacy date from before ODB++ V.7.0 and will be
handled as in V.6.x. If the first number is 8 or 9, it is a two number
definition, with the following number representing rotation.
Note: To maintain backward compatibility, values 0-7 are read
from legacy data, but saved in the new format.
1.0
1.0
1.0
1.0
2.0
2.0
2.0
2.0
0 P 4 1
0 P 4 8 30.0
-1 0 0.02 P 4 1
-1 0 0.02 P 4 8 30.0
# rotated by
# rotated by
# rotated by
# rotated by
90
30
90 resized by 0.02 mil
30 resized by 0.02 mil
The same information is displayed in the Info Command Interface for Data type:
FEATURES and the Info output file, -t <leayr> -d FEATURES.
ODB++ Specification
113
<xs> <ys> <xe> <ye> <xc> <yc> <sym_num> <polarity> <dcode> <cw>
xs, ys
start point
ye, ye
end point
yc, yc
center point
sym_num
polarity
dcode
cw
font
polarity
orient_def
in 7.0
0 : 0 degrees, no mirror
1 : 90 degrees, no mirror
2 : 180 degrees, no mirror
3 : 270 degrees, no mirror
4 : 0 degrees, mirror in X axis
5 : 90 degrees, mirror in X axis
6 : 180 degrees, mirror in X axis
7 : 270 degrees, mirror in X axis
8 : any angle rotation, no mirror
9 : any angle rotation, mirror in X axis
If the first number of orientation definition is an integer from 0
through 7, it is legacy date from before ODB++ V.7.0 and will
be handled as in V.6.x. If the first number is 8 or 9, it is a two
number definition, with the following number representing
rotation.
Note: To maintain backward compatibility, values 0-7 are
read from legacy data, but saved in the new format.
xsize,ysize
Character size
width factor
text
text string.
version
ODB++ Specification
114
1
current
version*
Polarity=Positive
font=standard
Orientation=0
#
#Layer features
#
T 4.033375 6.377506 standard P 0 0.2 0.2 2.00000 $$DATE-DDMMYY - Coupon STD500CV 1;0
T
Indicates the
record is text.
The X, Y coordinates
locating the bottom left of
the first character of the
text string.
*
Width factor=2.00000
This field is for future use. Currently, when version=0 it indicates the previous version.
Old versions of feature files may not have this field at all, in this case it is assumed
version=0. The version field does not affect the interpretation of the text data.
barcode
font
polarity
orient_def
text orientation:
same as for T (text) records
element width
barcode height
fasc
cs
in 7.0
ODB++ Specification
115
bg
astr
astr_pos
Text
text string
Where:
xbs,ybs
poly_type
x, y
xe, ye
xc, yc
cw
ODB++ Specification
116
Self
intersecting
Polygons
SIP
ODB++ Specification
117
Where:
<font_name> - Name of one of font files existing in the directory fonts & fonts_ex/
shx
Text specification
Since <text> field can contain non-Latin text, and there exist several types of
supported fonts, the additional considerations are done for text storage.
The text is stored as a multi-byte sequence in encoding that matches the font file.
This makes easier to recreate a graphics representation of a text string.
For example, for standard file (or other existing ODB++ font file format) the
encoding is ASCII, which is actually no change in comparison to the past.
AutoCAD fonts (.shx) have Windows encoding which is country dependent. For
example, Japanese encoding is SJIS, and Chinese encoding is Big5. Text in the
feature record is stored in the corresponding encoding. If this text should be further
presented in (non-graphic) GUI with other encoding, the information of the
original font encoding can be found separately, with the font file description.
= 12345
= standard
= 0.200000
= 0.200000
= 23.622047
= 30.000000
// Text string
// Font name
The attributes saves text parameters used if the text should be modified.
= 12345
= ecc-200
// Text string
// Barcode type (code128b/code128c/ecc-
= 10x10
=1
ODB++ Specification
118
.barcode_astr
.barcode_astr_pos
.text_x_size
=1
=0
= 0.200000
components
Type:
Compression:
Yes
Sum file:
No
Path
<job_name>/steps/<step_name>/layers/<layer_name>/components
Steps
<step_name>
layers
<layer_name>
<job_name>
components
Example
#
#Component attribute names
#
@0 .comp_ign_spacing
@1 .no_tp_under
@2 .no_text_under
@3 .thvpad_required
@4 .comp_type
@5 .comp_height
@6 .comp_weight
# CMP 0
CMP 13 -0.04 1.22 270.0 N B70 2248827-0001
;1,2,4=11,5=0.100000,6=0.035273
PRP REFLOC 'IN,0.2,-0.225,270,CC,0.035,0.035,0.009,std,1'
TOP 0 -0.198 1.62 270.0 N 223 0 B70-1
TOP 1 0.118 1.62 270.0 N 223 1 B70-2
TOP 2 -0.04 1.22 270.0 N 466 0 B70-3
#
....
The components file may have a header, listing names of attributes used by the
components in the file and possible textual values. This header is similar to the
header of the features file (records starting with the @ and & character) and is
described there.
ODB++ Specification
119
Following the attribute header, components are listed in order, using 3 types of
records:
CMP
Starts a component
PRP
Property of a component
TOP
Toeprint of a component
CMP Component
Record
Where
<pkg_ref>
<x>,<y>
<rot>
<mirror>
<comp_name>
<part_name>
part identification
<attributes>
Note: n must match a @ record in the attribute header s must match a &
record in the attribute header.
TOP Toeprint
Record
Where:
<pin_num>
<x>,<y>
<rot>
<mirror>
<net_num>
<subnet_num>
<toeprint_name>
ODB++ Specification
120
* The net_num used in the TOP record corresponds to the sequence of the Net
records in the eda/data file. The first Net record is net_num 0, the second is
net_num 1 and so on.
PRP Property
Record
Where:
<name>
<value>
n1,n2,...
components3
Type:
Compression:
yes
Sum file:
no
Path
<job_name>/steps/<step_name>/layers/<layer_name>/components3
Steps
<step_name>
layers
<job_name>
<layer_name>
components3
Example
#
#Component attribute names
#
@0 .comp_polarity
@1 .comp_height
# CMP 0
CMP 0 27.235992 6.19674 270.0 N W3_30B *
#
# BOM DATA
CPN 070-000-016
PKG
IPN
VPL_VND
ODB++ Specification
121
VPL_MPN
VND CAL GREG
MPN 0 Y 4N35S
VPL_VND MOTOROLA
VPL_MPN
VND MOTOROLA
MPN 0 N 4N35S
VPL_VND SMNS-MTST
VPL_MPN
VND SIEMENS
MPN 0 N 4N35-X017
VPL_VND TI
VPL_MPN 4N35DCJ
VND TI
MPN 0 Y 4N35DCJ
# CMP 1
MPN 0 N 4N35S
Qualify =
Chosen =
Description
CPN
PKG
Package name
IPN
DSC
Up to 5 descriptions
VPL_VND
VPL_MPN
VND
MPN
Qualify
Chosen
If this part is chosen from among the alternate parts for the
CPN, only one can be chosen. y - yes, n - no
of that CPN.
ODB++ Specification
122
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/tools
<job_name>
Example
THICKNESS=0.0625
USER_PARAMS=method25
TOOLS {
NUM=1
TYPE=VIA
TYPE2=STANDARD
MIN_TOL=0
MAX_TOL=0
BIT=
FINISH_SIZE=11.5
DRILL_SIZE=13.5
}
TOOLS {
NUM=2
TYPE=PLATED
TYPE2=STANDARD
MIN_TOL=0
MAX_TOL=0
BIT=
FINISH_SIZE=15
DRILL_SIZE=19
}
Note
<layer_name>
layers
Steps
<step_name>
USER_PARAMS
tool number
TYPE
ODB++ Specification
123
TYPE2
MIN_TOL, MAX_TOL
BIT
FINISH_SIZE
DRILL_SIZE
camtek
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
camtek
<job_name>
<layer_name
layers
Steps
ANGLE
MIRROR
X_SCALE
Y_SCALEL
POLARITY
Polarity of panel
DRILLS
ETCH
RESOLUTION
MIN_LINE
MIN_SPACE
REG_DEFINED
REG_X1
REG_Y1
REG_X2
REG_Y2
CALIB
Calibration value
THICKNESS
Board thickness
<step_name>
ODB++ Specification
124
Example
TOLERANCE
Tolerance
LAMINATION
Lamination type
MACHINE
Machine type
REG_METHOD
Type of registration
SCAN_AREA
Dimension of area-to-test
EXCLUSION
ANGLE=0
MIRROR=NO
X_SCALE=1
Y_SCALE=1
POLARITY=POSITIVE
DRILLS=NO
ETCH=0
RESOLUTION=1.25
MIN_LINE=0
MIN_SPACE=0
REG_DEFINED=YES
REG_X1=1.552809350393701
REG_Y1=0.2045889763779528
REG_X2=1.475844488188976
REG_Y2=-0.1904967519685039
CALIB=C1
THICKNESS=0
TOLERANCE=0
LAMINATION=SHEET
MACHINE=PANEL
REG_METHOD=1
SCAN_AREA {
X1=-0.9562419291338583
Y1=-0.9396204724409449
X2=1.753758070866142
Y2=1.065379527559055
}
EXCLUSION {
X1=-0.4072266732283464
Y1=0.2558988188976378
X2=-0.114760531496063
Y2=0.5381029527559055
}
EXCLUSION {
X1=0.5471363188976378
Y1=0.3636495078740157
X2=0.7626376968503937
Y2=0.4970551181102362
}
EXCLUSION_C {
X=0.8190785433070866
ODB++ Specification
125
Y=0.3482564960629921
R=0.3574053149606299
}
EXCLUSION_P {
POINT {
X=0.7010658464566929
Y=-0.2725925196850394
}
POINT {
X=0.7677687007874016
Y=-0.3700812007874016
}
POINT {
X=0.3624209645669291
Y=-0.3752122047244095
}
POINT {
X=0.3418969488188977
Y=-0.2366755905511811
}
POINT {
X=0.3675518700787402
Y=-0.1084009842519685
}
}
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
none
none
inf.dat,
inf.dat,
inf.dat,
inf.dat,
inf.dat,
inf.dat,
inf.dat,
Layer-info,
Layer-info,
Layer-info,
Layer-info,
Layer-info,
Layer-info,
Layer-info,
Ref_pins
Ref_pins
Ref_pins
Ref_pins
Ref_pins
Calib
Thick
none
out of lamination, layer number and number of layers:
inf.dat, Layer-info, Layer_view
inf.dat, Layer-info, Layer_pair
MACHINE=ARTWORK
REG_METHOD=1
-> none
-> inf.dat, Layer-info, Align_method
SCAN_AREA {
->
X1=0.4914508858267717
ODB++ Specification
126
Y1=0.5613854330708662
X2=9.581646948818898
Y2=8.516830905511812
}
EXCLUSION {
->
X1=0
Y1=0
X2=10
Y2=0.5648308070866142
}
EXCLUSION {
->
X1=0
Y1=0.5648308070866142
X2=0.4946468503937008
Y2=1.498834744094488
}
mask01.dat
Type:
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/camtek/attrlist
The user attributes are defined by Camtek, and a user attributes ASCII file is
normally supplied with the Camtek AOI system. In the inf.dat output file:
<output path>/<job name>/<layer number>/<AOI set name>/inf.dat
the user attribute values appear (as set) in the [Learn Type Definitions] section.
Example
.drc_min_space = 5
.drc_min_width = 7
.drc_add_rad = 2
attrlist
camtek
<job_name>
<layer_name
layers
Steps
<step_name>
ODB++ Specification
127
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/cdr14/cdrhdr
Example
NOM_SPACE=0.02
MIN_SPACE=0.015
NOM_LINE=0.02
MIN_LINE=0.015
MULTI_LINE=YES
MULTI_LINES {
MIN_WIDTH=0.15
MAX_WIDTH=0.17
}
MULTI_LINES {
MIN_WIDTH=0.18
MAX_WIDTH=0.20
}
...
<job_name>
cdr14
<layer_name>
layers
Steps
<step_name>
WORKING_TABLE=24X24
PADS {
SYMBOL_NAME=r100
}
PADS {
SYMBOL_NAME=rect150x120
}
...
STAGES {
STAGE_NAME=PHOTO
ETCH_SET=YES
ETCH=0.005
CLASSES {
CLASS_NAME=photo1
}
...
TOOLSET_NUMBER=-1
MANUAL_ALIGNMENT {
IS_USED=YES
OFFSET {
X=20
Y=10
}
MIRROR=X
ODB++ Specification
128
ANGLE=270
POLARITY=POSITIVE
}
}
...
DRILLED_STAGE=-1
SCALE {
X=1
Y=1
}
SCALE_ORIGIN {
X=0
Y=0
}
Description
NOM_SPACE
Nominal Spacing.
Valid range is 0.0005..0.128 (inch).
Null/default value is 0.0.
MIN_SPACE
NOM_LINE
MIN_LINE
MULTI_LINE
Yes/No.
Yes - use MULTI_LINES array instead of MIN_LINE
MULTI_LINES
WORKING_TABLE
PADS
HOLES
CLEARANCES
STAGES
DRILLED_STAGE
ODB++ Specification
129
SCALE
SCALE_ORIGIN
PANELIZATION
GENESIS_VERSION
MARGINS_SET
X_MARGIN
Y-MARGIN
MAX_LINE
ETCH_SET
Yes/No.
Yes - use the ETCH value.
No - use the default ETCH value defined for the stage in the
cdr14.ini file instead.
ETCH
CLASSES
DRILL_LAYER
TOOLSET_NUMBER
ODB++ Specification
130
MANUAL_ALIGNMENT
DRILL_LAYERS
MANUAL_ALIGNMENT Structure
IS_USED
Yes/No.
Yes - use manual alignment instead of toolset.
OFFSET
MIRROR
None/X/Y/Both.
ANGLE
POLARITY
Positive/Negative.
AOIProg Translation
------------------|
|
|
|
|
SPACE = 8.000
MSPACE = 0.875 (= MIN_SPACE/NOM_SPACE.
if MIN_SPACE not set,
cdr14_min_spacing_factor cfg value
is taken)
NOM_LINE=0.008
MIN_LINE=0.007
|
|
|
|
|
LINE = 8.000
MLINE = 0.875 (= MIN_LINE/NOM_LINE.
if MIN_LINE not set,
cdr14_min_line_factor cfg value
is taken)
MULTI_LINE=NO
WORKING_TABLE=24x24
PADS {
SYMBOL_NAME=r100
}
PADS {
SYMBOL_NAME=r200
}
HOLES {
SYMBOL_NAME=r50
}
HOLES {
SYMBOL_NAME=r75
}
STAGES {
STAGE_NAME=COPPER
ETCH_SET=YES
ETCH=0.0005
ODB++ Specification
131
CLASSES {
CLASS_NAME=c_sig_cop
}
DRILL_LAYER=drl
|
|
|
|
|
|
|
|
|
|
|
TT \COPPER = 1000.000:1000.000:1,
|
|
|
|
|
DRILLED_STAGE=0
SCALE {
X=1
Y=1
}
SCALE_ORIGIN {
X=0
Y=0
}
|
|
TOOLSET_NUMBER=99
MANUAL_ALIGNMENT {
IS_USED=YES
OFFSET {
X=10
Y=10
}
MIRROR=Y
ANGLE=90
POLARITY=POSITIVE
}
1000.000:9000.000:1:133.000
1000.000:9000.000:1, H, RCCW270
DRILL_LAYERS=drl
PANELIZATION=PANEL_DEFINED
GENESIS_VERSION=08.01DV
MARGINS_SET=0
X_MARGIN=0
Y_MARGIN=0
INSPECTED_STEPS=pcb
ODB++ Specification
132
<job_name>/steps/<step_name>/layers/<layer_name>/cdr14/steps/cdr14_stp_main
cdr14_stp_main
steps
cdr14
<job_name>
<layer_name>
layers
Steps
<step_name>
<job_name>/steps/<step_name>/layers/<layer_name>/cdr14/steps/cdr14_stp_pos
cdr14_stp_pos
steps
cdr14
<job_name>
<layer_name>
layers
Steps
<step_name>
crd14_stp_neg
(CDR14 Negative Step)
<job_name>/steps/<step_name>/layers/<layer_name>/cdr14/steps/cdr14_stp_neg
cdr14_stp_neg
steps
cdr14
<job_name>
<layer_name>
layers
Steps
<step_name>
ODB++ Specification
133
<job_name>/steps/<step_name>/layers/<layer_name>/cdr14/steps/clone_<step_name>
clone_<step_name>
steps
cdr14
<job_name>
<layer_name>
layers
Steps
<step_name>
<job_name>/steps/<step_name>/layers/<layer_name>/cdr14/steps/user_def_<step_name>
These steps are created only in case AOI panelization was defined using the CDR
interface (see cdrsr (AOI Panelization) on page 98).
These steps replace the clone_<step_name> steps.
<step_name> is the
user_def_<step_name>
step identification as
supplied by the AOI
steps
panelization.
cdr14
<job_name>
<layer_name>
layers
Steps
<step_name>
<job_name>/steps/<step_name>/layers/<layer_name>/cdr14/steps/user_def_<step_name>_pos
These steps are created only in case AOI panelization was defined using the CDR
interface (see cdrsr (AOI Panelization) on page 98).
These steps replace the clone_<step_name>_pos steps.
ODB++ Specification
134
<step_name> is the
step identification as
supplied in the AOI
panelization.
user_def_<step_name>_pos
steps
cdr14
<job_name>
<layer_name>
layers
Steps
<step_name>
Structured Text
Compression: None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/cdrhdr
cdrhdr
<set_name>
cdr_sets
<job_name>
<layer_name>
layers
Steps
<step_name>
ODB++ Specification
135
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/cdrhdr2
cdrhdr2
<set_name>
<job_name>
Example:
LAYER_TYPE=IL
PATTERN_TYPE=POWER_GR
OUND
POLARITY=NEGATIVE
cdr_sets
<layer_name>
layers
Steps
<step_name>
FEATURES {
FTRS_YN {
VALUE_STATUS=AUTO_SETUP
PADS=NO
LINES=NO
CLEARANCES=YES
NFPS=NO
THERMALS=YES
SMDS=NO
THROUGH_HOLES=NO
MICRO_VIAS=NO
BLIND_VIAS=NO
CROSS_HATCH=NO
}
NOM_NFP_SPACING=0
MIN_NFP_SPACING=0
NOM_AR=0
MIN_AR=0
NOM_LASER_DRL=0
MIN_LASER_DRL=0
}
HISTOGRAMS {
HIST {
H_TYPE=THERMAL
H_SHAPE_TYPE=MERGED
SORT_TYPE=WIDTH
RESOLUTION=0.00025
DRILL_LYR_HIST=
ODB++ Specification
136
H_CALCULATED=YES
DATA {
SIZE=0.09
COUNT=206
}
DATA {
SIZE=0.095
COUNT=10
}
DATA {
SIZE=0.1
COUNT=120
}
}
HIST {
H_TYPE=CLEARANCE
H_SHAPE_TYPE=MERGED
SORT_TYPE=WIDTH
RESOLUTION=0.00025
DRILL_LYR_HIST=
H_CALCULATED=YES
DATA {
SIZE=0.04
COUNT=11942
}
DATA {
SIZE=0.06
COUNT=1002
}
}
}
N_MACHINES=1
MACHINE {
MACHINE=Vision
RESOLUTION=0
RULE_FILE=PGIL.rul
DATABASE=ALPHA
}
STAGES {
STAGE_NAME=BARE_COPPER
PRIORITY=5
COPPER_WT=0
MATERIAL=
PANEL_THICK=0
N_MACHINES=1
MACHINE {
MACHINE=Vision
ODB++ Specification
137
TABLE=standard
PIN_SET=
REGISTRATION=PINS
PIN1=FFC
PIN2=F4
}
}
Description
FEATURES
Array
Structure
Parameter
Description
LAYER_TYPE
PATTERN_TYPE
POLARITY
FEATURES
HISTOGRAMS
N_MACHINES
The CDR set may contain setup for more than one AOI machine
type.
MACHINE
STAGES
Parameter
Description
FTRS_YN
NOM_NFP_SPACING
MIN_NFP_SPACING
NOM_AR
MIN_AR
NOM_LASER_DRL
MIN_LASER_DRL
ODB++ Specification
138
FTRS_YN
Array
Structure
Histograms
Array
Structure
HIST Array
Structure
Parameter
Description
VALUE_STATUS
PADS
LINES
CLEARANCES
NFPS
THERMALS
SMDS
THROUGH_HOLE
S
MICRO_VIAS
Does the layer contain micro vias (laser or photo)? Options: YES,
NO or UNKOWN. Null/default value is NO.
BLIND_VIAS
CROSS_HATCH
Parameter
Description
HIST
Parameter
Description
H_TYPE
H_SHAPE
ODB++ Specification
139
DATA Array
Structure
MACHINE
Array
Structure
STAGES
Array
structure
Parameter
Description
SORT_TYPE
RESOLUTION
Width of histogram row (in inches), i.e the delta between minimum
and maximum features sizes which are inserted to the same
histogram row. Resolution must be > 0.0 and <= 1.0.
DRILL_LYR_HI
ST
H_CALCULATED
Yes or NO. Histograms may not be calculated if the layer is too heavy
(feature-wise, according to user-defined criteria).
DATA
Parameter
Description
SIZE
COUNT
Parameter
Description
MACHINE
RESOLUTION
RULE_FILE
DATABASE
Parameter
Description
STAGE_NAME
PRIORITY
COPPER_WT
MATERIAL
Panel material.
PANEL_THICK
ODB++ Specification
140
MACHINE
Array
Structure
Parameter
Description
N_MACHINE
The stage entry may contain parameters for more than one AOI
machine type.
MACHINE
Array for defining machine specific parameters for current work stage.
Parameter
Description
MACHINE
TABLE
PIN_SET
REGISTRATION
PIN1
PIN2
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/
cdr14_stp_main
cdr14_stp_main
steps
<set_name>
<job_name>
cdr_sets
<layer_name>
layers
Steps
<step_name>
ODB++ Specification
141
cdr14_stp_pos (Empty)
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/cdr14_stp_pos
cdr14_stp_pos
steps
<set_name>
cdr_sets
<job_name>
<layer_name>
layers
Steps
<step_name>
cdr14_stp_neg (Empty)
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/cdr14_stp_neg
cdr14_stp_neg
steps
<set_name>
cdr_sets
<job_name>
<layer_name>
layers
Steps
<step_name>
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/clone_<step_name>
clone_<step_name>
steps
<set_name>
cdr_sets
<layer_name>
layers
<step_name>
ODB++ Specification
142
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/clone_<step_name>_pos
clone_<step_name>_pos
steps
<set_name>
cdr_sets
<job_name>
<layer_name>
layers
Steps
<step_name>
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/cdr14_stp_on_clones
ODB++ Specification
143
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/user_def_<step_name>
user_def_<step_name>
steps
<set_name>
cdr_sets
<job_name>
<layer_name>
clone_<step_name>
layers
steps.
Steps
<step_name> is the
<step_name>
step identification as
supplied in the AOI panelization.
<job_name>/steps/<step_name>/layers/<layer_name>/cdr_sets/<set_name>/steps/user_def_<step_name>_pos
user_def_<step_name>_pos
steps
<set_name>
cdr_sets
<job_name>
<layer_name>
clone_<step_name>_pos
steps.
<step_name> is the
layers
Steps
<step_name>
step identification as
supplied in the AOI panelization.
ODB++ Specification
144
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/lpd or
lpd_multipleiple
lpd or
lpd_multiple
<job_name>
<layer_name>
layers
Steps
<step_name>
LPD
Image Production Parameters produced in Genesis are used by Orbotech plotters
when processing IMG and OPFX files. When used for IMG output, the file is the
/<panel>/<layer>/layerhdr file. The following is a list of elements that
appear in the Genesis popup for setting parameters:
DEVICE_TYPE
WAS_INPUT
IS_DEFINED
POLARITY
SPEED
XSTRETCH, YSTRETCH
XSHIFT, YSHIFT
XMIRROR, YMIRROR
ODB++ Specification
145
COPPER_AREA
XCENTER, YCENTER
PLOT_KIND1, PLOT_KIND2
MINVEC
ADVEC
MINFLASH
ADFLASH
CONDUCTOR1
CONDUCTOR2
CONDUCTOR3
CONDUCTOR4
CONDUCTOR5
MEDIA
RESOLUTION
SMOOTHING
SWAP_AXES
ELPD_IS_DEFINED
RESOLUTION_VALUE
RESOLUTION_UNITS
ENLARGE_POLARITY
OTHER_POLARITY
ENLARGE_PANEL_ELEMENT
ALLOW_PCB_PANEL_OVERLAP
ODB++ Specification
146
ELEMENT_IMAGE_SYMBOLS
ENLARGE_ZERO_LENGTH_VEC
ENLARGE_SYMBOLS
ENLARGE_SYMBOLS_BY
SELECTED_SYMBOL[1-10]
SYMBOL_ADD[1-10]
QUALITY
ENLARGE_CONTOURS_BY
Example of LPD
DEVICE_TYPE=EITHER TYPE
WAS_INPUT=NO
IS_DEFINED=YES
POLARITY=NEGATIVE
SPEED=0
XSTRETCH=100.12
YSTRETCH=100.23
XSHIFT=0
YSHIFT=0
XMIRROR=2.5
YMIRROR=0
COPPER_AREA=0
XCENTER=0
YCENTER=0
PLOT_KIND1=56
PLOT_KIND2=56
MINVEC=4
ADVEC=1
MINFLASH=7
ADFLASH=1
CONDUCTOR1=5
CONDUCTOR2=6
CONDUCTOR3=7
CONDUCTOR4=0
CONDUCTOR5=0
MEDIA=FIRST
RESOLUTION=QUARTER_MIL
SMOOTHING=SMOOTH
SWAP_AXES=NO_SWAP
ELPD_IS_DEFINED=YES
RESOLUTION_VALUE=0.25
RESOLUTION_UNITS=MIL
QUALITY=AUTO
ODB++ Specification
147
ENLARGE_POLARITY=POSITIVE
OTHER_POLARITY=SIZE_INVERSELY
ENLARGE_PANEL_ELEMENTS=YES
ALLOW_PCB_PANEL_OVERLAP=YES
ENLARGE_IMAGE_SYMBOLS=YES
ENLARGE_ZERO_LENGTH_VEC=YES
ENLARGE_SYMBOLS=SELECTED
ENLARGE_SYMBOLS_BY=0
SELECTED_SYMBOL1=DPF.11_11
SYMBOL_ADD1=1
SELECTED_SYMBOL2=E-VGP1
SYMBOL_ADD2=1
SELECTED_SYMBOL3=OCA_IPC_M_SYM
SYMBOL_ADD3=1
SELECTED_SYMBOL4=PET-MARK-X_21
SYMBOL_ADD4=1
SELECTED_SYMBOL5=
SYMBOL_ADD5=0
SELECTED_SYMBOL6=
SYMBOL_ADD6=0
SELECTED_SYMBOL7=
SYMBOL_ADD7=0
SELECTED_SYMBOL8=
SYMBOL_ADD8=0
SELECTED_SYMBOL9=
SYMBOL_ADD9=0
SELECTED_SYMBOL10=
SYMBOL_ADD10=0
ENLARGE_CONTOURS_BY=0
LPD_MULTIPLE
The lpd_multiple file is a structured text file containing parameters for one or
more plotter types. The file is structured as follows:
LPD {
The same parameters as in an lpd file.
}
LPD {
...
}
ODB++ Specification
148
YSHIFT=0
XMIRROR=2.5
YMIRROR=0
COPPER_AREA=0
XCENTER=0
YCENTER=0
PLOT_KIND1=56
PLOT_KIND2=56
MINVEC=4
ADVEC=1
MINFLASH=7
ADFLASH=1
CONDUCTOR1=5
CONDUCTOR2=6
CONDUCTOR3=7
CONDUCTOR4=0
CONDUCTOR5=0
MEDIA=FIRST
RESOLUTION=QUARTER_MIL
SMOOTHING=SMOOTH
SWAP_AXES=NO_SWAP
ELPD_IS_DEFINED=YES
RESOLUTION_VALUE=0.25
RESOLUTION_UNITS=MIL
QUALITY=AUTO
ENLARGE_POLARITY=POSITIVE
OTHER_POLARITY=SIZE_INVERSELY
ENLARGE_PANEL_ELEMENTS=YES
ALLOW_PCB_PANEL_OVERLAP=YES
ENLARGE_IMAGE_SYMBOLS=YES
ENLARGE_ZERO_LENGTH_VEC=YES
ENLARGE_SYMBOLS=SELECTED
ENLARGE_SYMBOLS_BY=0
SELECTED_SYMBOL1=DPF.11_11
SYMBOL_ADD1=1
SELECTED_SYMBOL2=E-VGP1
SYMBOL_ADD2=1
SELECTED_SYMBOL3=OCA_IPC_M_SYM
SYMBOL_ADD3=1
SELECTED_SYMBOL4=PET-MARK-X_21
SYMBOL_ADD4=1
SELECTED_SYMBOL5=
SYMBOL_ADD5=0
SELECTED_SYMBOL6=
SYMBOL_ADD6=0
SELECTED_SYMBOL7=
SYMBOL_ADD7=0
SELECTED_SYMBOL8=
SYMBOL_ADD8=0
SELECTED_SYMBOL9=
SYMBOL_ADD9=0
SELECTED_SYMBOL10=
SYMBOL_ADD10=0
ODB++ Specification
149
ENLARGE_CONTOURS_BY=0
}
LPD {
DEVICE_TYPE=LP5008
WAS_INPUT=NO
IS_DEFINED=YES
POLARITY=NEGATIVE
SPEED=0
XSTRETCH=100.12
YSTRETCH=100.23
XSHIFT=0
YSHIFT=0
XMIRROR=2.5
YMIRROR=0
COPPER_AREA=0
XCENTER=0
YCENTER=0
PLOT_KIND1=56
PLOT_KIND2=56
MINVEC=4
ADVEC=1
MINFLASH=7
ADFLASH=1
CONDUCTOR1=5
CONDUCTOR2=6
CONDUCTOR3=7
CONDUCTOR4=0
CONDUCTOR5=0
MEDIA=FIRST
RESOLUTION=QUARTER_MIL
SMOOTHING=SMOOTH
SWAP_AXES=NO_SWAP
ELPD_IS_DEFINED=YES
RESOLUTION_VALUE=0.25
RESOLUTION_UNITS=MIL
QUALITY=AUTO
ENLARGE_POLARITY=POSITIVE
OTHER_POLARITY=SIZE_INVERSELY
ENLARGE_PANEL_ELEMENTS=YES
ALLOW_PCB_PANEL_OVERLAP=YES
ENLARGE_IMAGE_SYMBOLS=YES
ENLARGE_ZERO_LENGTH_VEC=YES
ENLARGE_SYMBOLS=SELECTED
ENLARGE_SYMBOLS_BY=0
SELECTED_SYMBOL1=DPF.11_11
SYMBOL_ADD1=1
SELECTED_SYMBOL2=E-VGP1
SYMBOL_ADD2=1
SELECTED_SYMBOL3=OCA_IPC_M_SYM
SYMBOL_ADD3=1
SELECTED_SYMBOL4=PET-MARK-X_21
SYMBOL_ADD4=1
ODB++ Specification
150
SELECTED_SYMBOL5=
SYMBOL_ADD5=0
SELECTED_SYMBOL6=
SYMBOL_ADD6=0
SELECTED_SYMBOL7=
SYMBOL_ADD7=0
SELECTED_SYMBOL8=
SYMBOL_ADD8=0
SELECTED_SYMBOL9=
SYMBOL_ADD9=0
SELECTED_SYMBOL10=
SYMBOL_ADD10=0
ENLARGE_CONTOURS_BY=0
}
LPD {
DEVICE_TYPE=LP7008
WAS_INPUT=NO
IS_DEFINED=YES
POLARITY=NEGATIVE
SPEED=0
XSTRETCH=100.12
YSTRETCH=100.23
XSHIFT=0
YSHIFT=0
XMIRROR=2.5
YMIRROR=0
COPPER_AREA=0
XCENTER=0
YCENTER=0
PLOT_KIND1=56
PLOT_KIND2=56
MINVEC=4
ADVEC=1
MINFLASH=7
ADFLASH=1
CONDUCTOR1=5
CONDUCTOR2=6
CONDUCTOR3=7
CONDUCTOR4=0
CONDUCTOR5=0
MEDIA=FIRST
RESOLUTION=QUARTER_MIL
SMOOTHING=SMOOTH
SWAP_AXES=NO_SWAP
ELPD_IS_DEFINED=YES
RESOLUTION_VALUE=0.25
RESOLUTION_UNITS=MIL
QUALITY=AUTO
ENLARGE_POLARITY=POSITIVE
OTHER_POLARITY=SIZE_INVERSELY
ENLARGE_PANEL_ELEMENTS=YES
ALLOW_PCB_PANEL_OVERLAP=YES
ODB++ Specification
151
ENLARGE_IMAGE_SYMBOLS=YES
ENLARGE_ZERO_LENGTH_VEC=YES
ENLARGE_SYMBOLS=SELECTED
ENLARGE_SYMBOLS_BY=0
SELECTED_SYMBOL1=DPF.11_11
SYMBOL_ADD1=1
SELECTED_SYMBOL2=E-VGP1
SYMBOL_ADD2=1
SELECTED_SYMBOL3=OCA_IPC_M_SYM
SYMBOL_ADD3=1
SELECTED_SYMBOL4=PET-MARK-X_21
SYMBOL_ADD4=1
SELECTED_SYMBOL5=
SYMBOL_ADD5=0
SELECTED_SYMBOL6=
SYMBOL_ADD6=0
SELECTED_SYMBOL7=
SYMBOL_ADD7=0
SELECTED_SYMBOL8=
SYMBOL_ADD8=0
SELECTED_SYMBOL9=
SYMBOL_ADD9=0
SELECTED_SYMBOL10=
SYMBOL_ADD10=0
ENLARGE_CONTOURS_BY=0
}
LPD {
DEVICE_TYPE=LP9008
WAS_INPUT=NO
IS_DEFINED=YES
POLARITY=NEGATIVE
SPEED=0
XSTRETCH=100.33
YSTRETCH=99.78400000000001
XSHIFT=0
YSHIFT=0
XMIRROR=2.5
YMIRROR=0
COPPER_AREA=0
XCENTER=0
YCENTER=0
PLOT_KIND1=56
PLOT_KIND2=56
MINVEC=4
ADVEC=1
MINFLASH=7
ADFLASH=1
CONDUCTOR1=5
CONDUCTOR2=6
CONDUCTOR3=7
CONDUCTOR4=0
CONDUCTOR5=0
ODB++ Specification
152
MEDIA=FIRST
RESOLUTION=EIGHTH_MIL
SMOOTHING=SMOOTH
SWAP_AXES=NO_SWAP
ELPD_IS_DEFINED=YES
RESOLUTION_VALUE=1
RESOLUTION_UNITS=MICRON
QUALITY=FINE
ENLARGE_POLARITY=POSITIVE
OTHER_POLARITY=SIZE_INVERSELY
ENLARGE_PANEL_ELEMENTS=YES
ALLOW_PCB_PANEL_OVERLAP=YES
ENLARGE_IMAGE_SYMBOLS=YES
ENLARGE_ZERO_LENGTH_VEC=YES
ENLARGE_SYMBOLS=SELECTED
ENLARGE_SYMBOLS_BY=0
SELECTED_SYMBOL1=DPF.11_11
SYMBOL_ADD1=1
SELECTED_SYMBOL2=E-VGP1
SYMBOL_ADD2=1
SELECTED_SYMBOL3=OCA_IPC_M_SYM
SYMBOL_ADD3=1
SELECTED_SYMBOL4=PET-MARK-X_21
SYMBOL_ADD4=1
SELECTED_SYMBOL5=
SYMBOL_ADD5=0
SELECTED_SYMBOL6=
SYMBOL_ADD6=0
SELECTED_SYMBOL7=
SYMBOL_ADD7=0
SELECTED_SYMBOL8=
SYMBOL_ADD8=0
SELECTED_SYMBOL9=
SYMBOL_ADD9=0
SELECTED_SYMBOL10=
SYMBOL_ADD10=0
ENLARGE_CONTOURS_BY=0
}
LPD {
DEVICE_TYPE=DP100
WAS_INPUT=NO
IS_DEFINED=YES
POLARITY=NEGATIVE
SPEED=0
XSTRETCH=100.001
YSTRETCH=100.003
XSHIFT=0
YSHIFT=0
XMIRROR=0
YMIRROR=2.500075
COPPER_AREA=0
XCENTER=2500
ODB++ Specification
153
YCENTER=2500
PLOT_KIND1=56
PLOT_KIND2=56
MINVEC=4
ADVEC=1
MINFLASH=7
ADFLASH=1
CONDUCTOR1=5
CONDUCTOR2=6
CONDUCTOR3=7
CONDUCTOR4=0
CONDUCTOR5=0
MEDIA=FIRST
RESOLUTION=QUARTER_MIL
SMOOTHING=SMOOTH
SWAP_AXES=NO_SWAP
ELPD_IS_DEFINED=YES
RESOLUTION_VALUE=0.25
RESOLUTION_UNITS=MIL
QUALITY=AUTO
ENLARGE_POLARITY=POSITIVE
OTHER_POLARITY=SIZE_INVERSELY
ENLARGE_PANEL_ELEMENTS=YES
ALLOW_PCB_PANEL_OVERLAP=YES
ENLARGE_IMAGE_SYMBOLS=YES
ENLARGE_ZERO_LENGTH_VEC=YES
ENLARGE_SYMBOLS=SELECTED
ENLARGE_SYMBOLS_BY=0
SELECTED_SYMBOL1=DPF.11_11
SYMBOL_ADD1=0.5
SELECTED_SYMBOL2=E-VGP1
SYMBOL_ADD2=0.5
SELECTED_SYMBOL3=OCA_IPC_M_SYM
SYMBOL_ADD3=0.5
SELECTED_SYMBOL4=PET-MARK-X_21
SYMBOL_ADD4=0.5
SELECTED_SYMBOL5=
SYMBOL_ADD5=0
SELECTED_SYMBOL6=
SYMBOL_ADD6=0
SELECTED_SYMBOL7=
SYMBOL_ADD7=0
SELECTED_SYMBOL8=
SYMBOL_ADD8=0
SELECTED_SYMBOL9=
SYMBOL_ADD9=0
SELECTED_SYMBOL10=
SYMBOL_ADD10=0
ENLARGE_CONTOURS_BY=0
}
ODB++ Specification
154
Structured Text
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/mania
<job_name>
<layer_name>
layers
Steps
<step_name>
angle
mirror
offset
<mirror>
resolution
scan_area
outdir
Location to place output files for the Mania Sapphire AOI machine
size_table
Example
ANGLE=0
MIRROR=NO
OFFSET {
X=0
Y=0
}
RESOLUTION=0.8267716535433072
SCAN_AREA {
X1=-1.613008070866142
Y1=-1.437398326771653
X2=2.081300787401575
Y2=1.52845531496063
}
OUTDIR=/tmp
SIZE_TABLE {
SPACE=5
TRACK=20
}
SIZE_TABLE {
ODB++ Specification
155
SPACE=4
TRACK=34
}
Structured Text
Compression: None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/odi_sets/
di_set/odihdr
odihdr
di_set
odi_sets
<job_name>
<layer_name>
layers
Steps
Description
<step_name>
SIDE
Top/Bottom
PARTNER
SCALE_MODE
SCALE_NAME
BOARD_NAME
THICKNESS
RESIST_TYPE
TREATMENT
CLIP_LIMITS
IMAGE_ROTATE
ALIGN
REGIST_TOOL
CCD/UV Marker/BEAM
REGIST_FILE
ODB++ Specification
156
Minimal X
Y_MIN
Minimal Y
X_MAX
Maximal X
Y_MIN
Maximal Y
ALIGN_TRANS
ALIGN_TOOL
Pins/Ruler/DIM_Late_Select
(DIM_Late_Selectalignment transformation is set
on the DI Manager application.)
ALIGN_TYPE
Left/Right/Center/TopLeft_BottomRight (applicable
in Ruler only)
RULER_NAME
PINSET_NAME
YOFFSET
ANGLE
MIRROR
No/Yes
Example
SIDE=TOP
PARTNER=IN03
PPOCESS=
SCALE_MODE=FIXED MEASURE SCALE
BOARD_NAME=20X16
THICKNESS=0.0787
RESIST_TYPE=ES102
TREATMENT=BRUSHING_LIGHT
CLIP_LIMITS {
X_MIN=0
Y_MIN=0
X_MAX=12
Y_MAX=16
}
ODB++ Specification
157
IMAGE_ROTATE = 0
ALIGN {
USED=YES
ALIGN_TRANS {
XOFFET=6
YOFFSET=3
ANGLE=0
MIRROR=NO
}
ALIGN_TOOL=RULER
ALIGN_TYPE=CENTER
RULER_NAME=RULER1
PINSET_NAME=
}
REGIST_TOOL=CCD
REGIST_FILE=
Compression:
None
Sum file:
Yes
Path
<job_name>/steps/<step_name>/layers/<layer_name>/notes
notes
<job_name>
<layer_name>
layers
Steps
<step_name>
<time>,<user>,<x>,<y>,
,,,,,<note>
Where:
<time>
<user>
<x>,<y>
<note>
ODB++ Specification
158
Structured Text
Compression:
None
Sum file:
Yes
<job_name>/steps/<step_name>/layers/<layer_name>/relation/relation/relations
relations
relation
Examples
<job_name>
"relations" {
"version"=1
"rel_type"=DIM
"dimension" {
"dmode"=DXDY
"dx"=0
"dy"=0.74
"angle"=0
"linetype"=HORZ
"is_special"=0
"source_f" {
"type"=FEAT
"feature" {
"index"=0
"mode"=ALL
}
}
"dest_f" {
"type"=FEAT
"feature" {
"index"=1
"mode"=ALL
}
}
}
"graphic" {
"grp-params" {
"ang_arrmode"=EDGE
"dim_arrmode"=EDGE
"ang_boxmode"=SQR
"dim_boxmode"=SQR
"inline_mode"=ALL
"outline_mode"=ALL
"font_spec"=TMR10
"text_sufx"=
}
"dim_x"=0
"dim_y"=0.374
"ang_x"=0
relation
<layer_name>
layers
Steps
<step_name>
ODB++ Specification
159
"ang_y"=0
}
}
"relations" {
"version"=1
"rel_type"=CON
"connection" {
"feature-1" {
"type"=FEAT
"feature" {
"index"=3
"mode"=PS
}
}
"feature-2" {
"type"=FEAT
"feature" {
"index"=4
"mode"=PE
}
}
"feature-c" {
"type"=FEAT
"feature" {
"index"=-1
"mode"=ALL
}
}
"mode"=CORNER
"size1"=0
"size2"=0
"type_x"=DIST
"type_y"=DIST
"point_rel_2_f1"=ALL
"func"=LINE2ARC
"intersect"=0
"radius"=0
}
"graphic" {
"grp-params" {
"ang_arrmode"=EDGE
"dim_arrmode"=EDGE
"ang_boxmode"=SQR
"dim_boxmode"=SQR
"inline_mode"=ALL
"outline_mode"=ALL
"font_spec"=
"text_sufx"=
}
"dim_x"=0
"dim_y"=0
"ang_x"=0
ODB++ Specification
160
"ang_y"=0
}
}
dim_arrmode
EDGE/FULL/NONE
ang_boxmode
dim_boxmode
inline_mode
ALL - display
NONE - don't display
outline_mode
font_spec
text_sufx
dim_x
dim_y
ang_x
ang_y
ODB++ Specification
161
dx
Delta x in inches
dy
Delta y in inches
angle
Angle if exist
linetype
is_special
Dimension belongs to a
symbol predefined source_f
or dest_f
HORZ - horizontal
VERT - vertical
DIAG - diagonal
source_f
database
mode - dimension mode
ALL - all features
PS - start of feature
PE - end of feature
type is always FEAT
feature
index - feature index in
dest_f
database
mode - dimension mode
ALL - all features
PS - start of feature
PE - end of feature
Connection type structure:
feature-1,
feature-2
feature-c
mode
Connection mode
ROUND/CORNER/CHAMFER
size1
Chamfer connections
size2
type_x
type_y
ODB++ Specification
162
point_rel_
2_f1
func
Connection function:
intersect
radius
Note
LINE2ARC - intersection
LINE2CIRCLE - line tangent
to 2 circles
CIRCLE2LINE - circle
tangent 2 two lines
CIRCLE2CIRCLE - arc
tangent 2 two circles
ODB++ Specification
163
NCD Entity
Chapter 7
The ncd set entity contains parameters and data for the Auto Drill Manager.
File: <job_name>/steps/<step_name>/layers/<layer_name>/ncd/
<ncd_set_name>/table
New fields are added:
stages
by_length
was built consider slot length.
nibble_type
= no/yes
- YES if the table
was built using .drill_stage
attribute.
= no/yes
- YES if the table
= machine/software/
start_end
START_END is a new
option for slot
pilot tools creation.
ind_sort
= 0- table entry index.
stage_att
= [-1,0,1,2] - value of .drill_stage attribute
fix_tool_order_neg = -xxx
- used instead of
ODB++ Specification
164
negative fix_tool_order
For example:
stages = YES
by_length = YES
entry {
...
nibble_type
...
ind_sort
stage_att
fix_tool_order_neg
}
= START_END
=1
=2
= -1
header
Type:
Structured Text
Compression:
None
Sum file:
Yes
header
<ncd-set name>
ncd
<job_name>
<layer_name>
layers
Steps
<step_name>
reg {
xsize1=24.5
xsize2=24.5
ysize=30
xover=2
angle=0
mirror=NO
ODB++ Specification
165
xoff=0
yoff=0
xorigin=0
yorigin=0
version=1
dx1=0
dy1=0
dx2=0
dy2=0
xscale=1.02
yscale=0.99
xscale_o=1.3
yscale_o=-3
}
format {
format=EXCELLON2
zeroes=TRAILING
units=INCH
tool_units=INCH
nf1=2
nf2=4
decimal=NO
sr_start_code=25
modal_ords=YES
single_sr=NO
sr_zero_set=NO
repetitions=SR
incremental=NO
}
split {
axis=NONE
coord=0
sign=NEGATIVE
}
optimize {
break_sr=YES
optimize=YES
iterations=10
reduction_percent=1
xspeed=400
yspeed=400
diag_mode=45ORT
}
z_axis {
z_head=0
}
time {
bit_change=0
tool_change=0
}
tools_assign {
fixed_tools=NO
mode=INCREASING_SIZE
ODB++ Specification
166
}
start_end {
with_pilots=NO
split {
start=YES
end=YES
x=3.5
y=1.2
angle=0
num_cols=0
dist_type=SPACING
min_dist=20
min_hits=0
min_size=0
max_size=0
end2=NO
x2=0
y2=0
angle2=0
num_cols2=0
}
split {
start=NO
end=NO
x=0
y=0
angle=0
num_cols=0
dist_type=SPACING
min_dist=0
min_hits=0
min_size=0
max_size=0
end2=NO
x2=0
y2=0
angle2=0
num_cols2=0
}
}
Description
machine
thickness
Board thickness
rout_layer
no_touch_cpr
tent_ar
ODB++ Specification
167
REG
Structure
Format
Structure
num_stages
Number of stages
num_splits
Number of splits
xsize1
xsize2
ysize
xover
angle
mirror
xoff
yoff
xorigin
yorigin
version
dx1
dy1
dx2
dy2
xscale
Scale factor by X
yscale
Scale factor by X
xscale_o
X scale anchor
yscale_o
X scale anchor
format
zeroes
units
tool_units
nf1
nf2
decimal
ODB++ Specification
168
Split
Structure
Optimize
Structure
sr_start_code
Starting code for step & repeat block (Excellon format). Some
machines use the M25 code for step & repeat, and others use
M31. This value should be 25, or 31.
modal_coords
single_sr
Applies to a step & repeat block that has only one 'repeat'.
Yes - that repeat will be placed within a step & repeat block. In
Excellon format it means that it will be inside a M25 block.
(Yes/No).
sr_zero_set
repetitions
Repetitions type:
SR Step & repeat blocks
Subroutine subroutines (only in Hitachi format)
incremental
Split structure describes the panel split when a panel size is larger than a machine table.
axis
coord
sign
optimize
iterations
reduction_percent
xspeed
ODB++ Specification
169
yspeed
diag_mode
Z_AXIS
Structure
Time
Structure
Tools_assign
Section
Start_end
Section
z_head
Time structure contains values that are used for estimating the drill time display in the
Report.
bit_change
tool_change
fixed_tools
mode
Array of split structures always contain two items. The first item describes start/end
coupon for first split, and the second item for the second split.
This array is contained inside Start_end structure.
start
end
angle
num_cols
min_dis
dist_type
min_hits
Minimum number of drills. Dont place a drill on the coupon for tools
that have less hits than this number.
ODB++ Specification
170
min_size
max_size
end2
x2
y2
angle2
num_cols2
table
Type
Structured Text
Compression
None
Sum file
Yes
table
<ncd-set name>
ncd
<layer_name>
layers
<step_name>
ODB++ Specification
171
Entry
Structure
shape
Hole / Slot
type
size
Drill size
touch_copper
flag
count
Number of drills/slots
finish_size
Finish size
min_tol
max_tol
designator
slot_len
pilot
parent
Parent index. Index table row that describes the parent for the pilot
drill
mode
spindle_speed
Spindle speed
feed_rate
Feed rate
nibble_type
rout_mode
tool_size
Tool size
max_hits
stage
Stage number
hits
Number of hits
text_counts
Number of canned text features. If this number >0 the table entry
describes a drilled (canned) text rather than a hole.
ODB++ Specification
172
order
Type
Structured Text
Compression
None
Sum file
Yes
<order.<split number>
<ncd-set name>
ncd
<job_name>
<layer_name>
layers
Steps
<step_name>
Description
sr_line
sr_nx
sr_ny
serial
full
optional
drill file
Type
Compression
None
Sum file
no
<job_name>
<layer_name>
layers
Steps
<step_name>
ODB++ Specification
173
R 0.5470589 0.0137815 0 N Y Y N
R 0.0470589 0.0137815 0 N N Y N
H 4 0.144246 0.032847 N N N Ns
H 2 0.209031 0.202162 N N N N
H 5 0.033487 0.051513 N N N N
BE pcb
S 0 0.383224 0.1250633 0.408224
H 4 0.0824924 0.430607 N N N N
H 2 0.2518074 0.3658219 N N N N
H 1 0.492556 0.195215 N N N N
H 4 0.6808214 0.35187 N N N N
H 5 0.1011584 0.5413659 N N N N
H 6 0.8271084 0.504596 N N N N
T 0 1.235303 1.8140007 '' 0 N Y
T 0 1.187303 1.8860007 '' 0 N Y
T 0 1.211303 1.8860007 '' 0 N Y
T 1 2.9772455 1.8220594 'ABC' 0
0.1683646 N N N N
N
N
N
N
N
N
N
N
0
0
0
N
N
N
N
N 0 N
The file consists of lines. The first letter or two letters of a line define the type:
BS
BE
block end
repetition record
hole record
slot record
Block start record - has the format: BS <step_name>; where step_name is the
name of step being repeated by this block
Block end record - has the format: BE <step_name>; where step_name is the
name of step being repeated by this block
Repetition record - describes a single repetition of a block. It has the format:
R <dx> <dy> <angle> <mirror> <order> <full> <optional>
dx
Offset of this repetition block by X
dy
angle
mirror
Mirror (Y/N)
order
full
optional
ODB++ Specification
174
optional
basic
noopt
noscale
x2, y2
optional
basic
noopt
noscale
text
Text string
font
optional
basic
noopt
noscale
Note
If the text string is empty, that line describes a single line of broken text.
Broken text is a text that is output as a sequence of drills rather than a
special NC command for text output.
NC File
Type
Compression
None
Sum file
No
ODB++ Specification
175
<job_name>
<layer_name>
layers
Steps
<step_name>
ODB++ Specification
176
NCR Entity
Chapter 8
The ncr set entity contains parameters and data for the Auto Rout Manager.
NCR header
Type
Structured Text
Compression
None
Sum file
Yes
header
<ncr-set name>
ncr
<job_name>
<layer_name>
layers
Steps
<step_name>
reg {
xsize=30
ysize=50
xover=0
angle=0
mirror=NO
xoff=0
yoff=0
xorigin=0
yorigin=0
version=1
xscale=1
yscale=1
xscale_o=0
yscale_o=0
ODB++ Specification
177
}
format {
format=EXCELLON1
zeroes=TRAILING
units=MM
tool_units=MM
nf1=3
nf2=2
decimal=YES
sr_start_code=25
modal_coords=YES
repetitions=SR
single_sr=YES
sr_zero_set=NO
}
Description
REG
Structure
machine
thickness
Board thickness
drill_layer
sr_zero_drill_layer
break_sr
ccw
angle_lines
short_lines
press_down
last_z_up
max_arc_ang
sep_lyrs
xsize
ysize
xover
Not used
angle
mirror
xoff
ODB++ Specification
178
Format
Structure
yoff
xorigin
yorigin
version
xscale
Scale factor by X
yscale
Scale factor by Y
xscale_o
X scale anchor
yscale_o
Y scale anchor
zeroes
units
tool_units
nf1
nf2
decimal
sr_start_code
Starting code for step & repeat block (Excellon format). Some
machines use the M25 code for step & repeat, and others use
M31.
Value should be 25, or 31.
modal_coords
single_sr
Applies to a step & repeat block that has only one 'repeat'.
Yes - that repeat will be placed within a step & repeat block. In
Excellon format it means that it will be inside a M25 block.
sr_zero_set
Sets step & repeat block location relative to a pad on a special drill
layer.
Yes - sets all the coordinates of a step & repeat block relative to a
specified pad or datum.
repetitions
Repetitions type:
SR step & repeat blocks
Subroutine subroutines (only in Hitachi format)
ODB++ Specification
179
table
Type
Structured Text
Compression
None
Sum file
Yes
Entry
Structure
table
<ncr-set name>
ncr
<layer_name>
layers
Steps
<step_name>
type
Chain/Hole
step_name
Name of step
chain
Chain number
chain2
Size
Rout size
comp
Compensation (Left/Right/None)
path
count
Number of holes
Flag
ODB++ Specification
180
cw
Clockwise (Yes/No)
tool_size
Tool size
dup
parent
Parent index. Index of table row that describes the parent for the
duplicated chain
comp_factor
Compensation factor
spindle_speed
Spindle speed
feed_rate
Feed rate
spiral
Not used
mode
group
order
optional
order
Type
Structured Text
Compression
None
Sum file
Yes
order
<ncr-set name>
ncr
<job_name>
<layer_name>
layers
Steps
<step_name>
Description
serial
optional
ODB++ Specification
181
Order_sr
Structure
line
nx
ny
rout file
Type
Compression
None
Sum file
no
1
rout
<ncr-set name>
Example
ncr
<job_name>
BS pcb
R 0.0470589
<layer_name>
0.0137815 0 N N N
layers
R 0.5470589
Steps
0.0137815 0 N N N
<step_name>
R 0.0496454
0.574853 90 N N N
R 0.3496454 0.574853 90 N N N
R 0.6496454 0.574853 90 N N N
L 2 0 0 0 0 0.25 N N N
L 2 0 0 0.25 0.25 0.25 N N N
L 2 0 0.25 0.25 0.25 0.1 N N N
A 2 0 0.25 0.1 0.15 0 0.15 0.1 N N Y N
L 2 0 0.15 0 0 0 N N N
BE pcb
BS panel
R 0 0 0 N N N
L 0 0 0.064084 0.678131 0.845691 0.678131 N N N
BE panel
BS panel
R 0 0 0 N N N
L 1 0 0.674931 0.954491 0.931745 0.803752 N N N
BE panel
The file consists of lines. The first letter or two letters of a line define the type:
BS
BE
block end
repetition record
hole record
ODB++ Specification
182
line record
arc record.
Block start record - has the format: BS <step_name>, where step_name is the
name of the step being repeat20
ed by this block
Block end record - has the format: BE <step_name>, where step_name is the
name of step being repeated by this block
Repetition record - describes a single repetition of a block. It has the format:
R <dx> <dy> <angle> <mirror> <order> <full> <optional>
dx
Offset of this repetition block by X
dy
angle
mirror
Mirror (Y/N)
order
optional
Feed rate
X, Y
optional
basic
noscale
row_number
feed
Feed rate
xs, ys
xe, ye
optional
basic
noscale
Feed rate
xs, ys
xe, ye
ODB++ Specification
183
xc, yc
optional
basic
cw
Clockwise (Y/N)
noscale
NC File
Type
Compression
None
Sum file
no
1
ncr
<ncr-set name>
ncr
<job_name>
<layer_name>
layers
Steps
<step_name>
ODB++ Specification
184
Job>steps>chk (Checklists)
Chapter 9
Encrypted Checklists
All created or updated checklists (include VALOR checklists) will be
encrypted and saved with names ended by _p (example: hdr_p) exactly as
VALOR does.
S
def/hdr_p
Type:
Encrypted
Compression:
None
Sum file:
Yes
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/<action_num>/def/hdr_p
hdr_p
def
<action_num>
actions
<job_name>
<checklist_name>
chk
Steps
<step_name>
ODB++ Specification
185
res/hdr_p
Type:
Encrypted
Compression:
None
Sum file:
Yes
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/<action_num>/res/hdr_p
hdr_p
res
<action_num>
actions
<job_name>
<checklist_name>
chk
Steps
<step_name>
report/tags_p
Type:
Compression:
None
Sum file:
Yes
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/<action_num>/res/report/tags_p
tags_p
report
res
Example
2807 2851 0 -4 0
<job_name>
1237
2851 2900 -0.4 3.6 0 1238
2900 2949 -0.4 1.4 0 1239
2949 2997 4.1 -1.4
0 1240
2997 3043 3.7 -1 0 1241
3043 3091 4.1 -3.6 0 1242
...
<action_num>
actions
<checklist_name>
chk
Steps
<step_name>
ODB++ Specification
186
start_pos, end_pos
x,y
sres_num
meas_num
report/text_p
Type:
Encrypted
Compression:
No
Sum file:
Yes
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/<action_num>/res/report/text_p
text_p
report
res
<action_num>
actions
<job_name>
<checklist_name>
chk
Steps
<step_name>
ODB++ Specification
187
disp_p
Type:
Structured Text
Compression:
None
Sum file:
Yes
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/<action_num>/res/sres/<layer_name>/disp_p
disp_p
<layer_name>
sres
res
<action_num>
actions
<job_name>
{
sigt
<checklist_name>
chk
{
sigt
drill
Steps
<step_name>
{
sigt
rout
The file includes an array of DISPLAY records. Each record contains a variable (up
to 4) number of layers, tagged L0 to L3. Each layer should reference an existing
layer in the job matrix. Nonexisting layers are ignored.
ODB++ Specification
188
meas_p
Type:
Encrypted
Compression:
None
Sum file:
Yes
<job_name>/steps/<step_name>/chk/<checklist_name>/actions/<action_num>/res/sres/<layer_name>/meas_p
meas_p
<layer_name>
sres
res
<action_num>
actions
<job_name>
<checklist_name>
chk
Steps
<step_name>
U<INCH|MM>
These units affect the measurement ID of features and shape coordinates. It does not
affect a measurement value which is scalar.
Example:
#
#Units
#
U MM
0
S
1
S
2
S
10
RC
10
RC
10
RC
0 N P rect120x250
2.95 1.65 0.12 0.25
0 N P rect4.724x9.843_30
2.55 2.45 0.22 0.27
0 N P rect4.724x9.843_60
3.74 2.37 0.27 0.22
ODB++ Specification
189
Chapter 10
<etset_name>/hdr
Type:
Structured Text
Compression:
None
Sum file:
No
Path
<job Name>/steps/<step_name>/et/<etset_name>/hdr
<job_name>
hdr
Steps
<etset_name>
Example
X_DATUM=16.33848897637795
Y_DATUM=12.99838996062992
WIDTH=7.322835039370079
HEIGHT=5.960630019685039
STATUS=new
NET_STATUS=undefined
X_DATUM
Y_DATUM
WIDTH
HEIGHT
STATUS
New/ready/not_ready
NET_STATUS
Undefined/ok/disrupted
ODB++ Specification
190
<split_name> / hdr
Type:
Structured Text
Compression:
None
Sum file:
No
Path
<job Name>/steps/<step_name>/et/<etset_name>/<split_name>/hdr
hdr
<split_name>
<etset_name>
et
Steps
<step_name>
TRANS_A2NET {
XC=0
YC=0
XOFF=-4.905
YOFF=-9.633749999999999
ROTATE=0
MIRROR=no
}
READY_STATE {
SPLIT_READY=yes
NETS_NOT_CHANGED=yes
ALL_PINS_ASSIGNED=no
P2G_NOT_CHANGED=yes
PLATES_READY=no
FA_DONE=no
MAP_DONE=no
DRILL_FILES_READY=no
OUTPUT_DONE=yes
}
READY=no
COMPONENT_SIDE_UP=no
CHANGED=no
NC_SET_PARAMETERS {
TYPE=1
ODB++ Specification
191
NAME=format
VALUE=excellon
}
NC_SET_PARAMETERS {
TYPE=3
NAME=test_ar_above
VALUE=135.0
}
NC_SET_PARAMETERS {
TYPE=4
NAME=stagger
VALUE=yes
}
NC_SET_PARAMETERS {
TYPE=4
NAME=finished_drills
VALUE=yes
}
OUT_FORMAT=mania_b640
CAR_FORMAT=tws2000
ADAPTER_POS {
REFFERS=profile
ALIGN=5
}
ADAPTER
TESTER
STYLE
READY
COMPONENT_SIDE_UP
No/Yes
CHANGED
OUT_FORMAT
mania_b640/evc/circuit_line/lm-udl/probot/bsl/ integritest/
microcraft/atf/tif/tti/anf/ ipc356/ipcd-356a
CAR_FORMAT
None/epc/tws2000
ODB++ Specification
192
YC
XOFF
YOFF
ROTATE
(0/1/2/3) x 90
MIRROR
No/Yes
The fields of the array READY_STATE are (for internal use only):
SPLIT_READY
No/Yes
NETS_NOT_CHANGED
No/Yes
ALL_PINS_ASSIGNED
No/Yes
P2G_NOT_CHANGED
No/Yes
PLATES_READY
No/Yes
FA_DONE
No/Yes
MAP_DONE
No/Yes
DRILL_FILES_READY
No/Yes
OUTPUT_DONE
No/Yes
NAME
Parameter name
VALUE
Parameter Value
Profile/ net_limit
ALIGN
0-empty, 1-upper-left, 2-upper-mid, 3-upper-right, 4-mid-left, 5-midmid, 6-mid-right, 7-lower-left, 8-lower-mid, 9-lower-right
<split_name> / mapping
Type:
Compression:
None
Sum file:
No
Path
<job Name>/steps/<step_name>/et/<etset_name>/<split_name>/mapping
ODB++ Specification
193
mapping
<job_name>
<split_name>
<etset_name>
et
Steps
<step_name>
# Mapping File
#
#
# ID
X
#
0 6.100000
1 6.100000
2 6.000000
3 6.050000
4 7.050000
5 7.050000
6 6.938000
7 6.450000
8 6.350000
9 7.375000
10 7.275000
11 7.050000
12 7.050000
13 6.600000
14 6.100000
15 6.100000
16 8.950000
17 9.050000
18 8.750000
19 8.450000
20 8.300000
21 9.150000
22 9.675000
PIN
5.449000
5.349000
5.324000
5.349000
5.449000
5.349000
5.424000
6.324000
6.324000
6.324000
6.324000
6.874000
6.949000
6.899000
6.874000
6.949000
5.824000
5.424000
5.824000
5.924000
5.674000
5.124000
5.674000
NO_PIN
39003d
NO_PIN
39003d
NO_PIN
39003d
39003d
NO_PIN
39003d
NO_PIN
39003d
NO_PIN
39003d
39003
NO_PIN
39003d
NO_PIN
NO_PIN
NO_PIN
NO_PIN
NO_PIN
NO_PIN
39003
GNET GRID
NUM IND X
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.000000
6.095000
0.000000
5.995000
0.000000
7.095000
6.995000
0.000000
6.295000
0.000000
7.195000
0.000000
7.095000
6.595000
0.000000
6.095000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
9.695000
GRID
IND Y
0.000000
5.366250
0.000000
5.366250
0.000000
5.266250
5.466250
0.000000
6.366250
0.000000
6.366250
0.000000
6.866250
6.866250
0.000000
6.966250
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
5.666250
ASSIGN TEST
TEST
TO
ALLOWED FROM
NONE
TOP
NONE
TOP
NONE
TOP
BOT
NONE
TOP
NONE
TOP
NONE
TOP
BOT
NONE
TOP
NONE
NONE
NONE
NONE
NONE
NONE
TOP
BOTH
TOP
BOTH
TOP
BOTH
TOP
BOT
BOTH
TOP
BOTH
TOP
BOTH
TOP
BOT
BOTH
TOP
BOTH
BOTH
BOTH
BOTH
BOTH
BOTH
TOP
NO
TOP
NO
TOP
NO
TOP
BOT
NO
TOP
NO
TOP
NO
TOP
BOT
NO
TOP
NO
NO
NO
NO
NO
NO
TOP
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
ON_AR
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
NET#
0
0
0
0
1
1
1
2
2
3
3
4
4
4
5
5
5
5
5
5
5
5
5
Id
Board x,board y
Pin
Grid num
Grid x,grid y
Assign
testable side
side tested
ODB++ Specification
194
on annular ring
net number
All the sides here refer to the board side (i.e. Top is the component side etc.)
<split_name> / net_ext
Type:
Compression:
None
Sum file:
No
Path
<job Name>/steps/<step_name>/et/<etset_name>/<split_name>/net_ext
net_ext
<split_name>
<job_name>
ET_NET {
NETNUM=0
TYPE=all
}
<etset_name>
et
Steps
<step_name>
ET_NET {
NETNUM=1
TYPE=all
}
ET_NET {
NETNUM=2
TYPE=shorts
}
...
Each array ET_NET has the following structure:
<NETNUM>
<TYPE>
NO_TEST/SHORTS/CONNECT/ALL
<split_name> / pin_rules
Type:
Structured Text
Compression:
None
Sum file:
No
Path
<job Name>/steps/<step_name>/et/<etset_name>/<split_name>/pin_rules
ODB++ Specification
195
pin_rules
<job_name>
Example
RULE {
NAME=39003
TYPE=def_smd
SIDE=both
PITCH_MIN=0
PITCH_MAX=0
SIZE_MIN=0
SIZE_MAX=0
DIST_X=0
DIST_Y=0
NUM_NEEDED=0
EQUALS_TO=1
CONTACT_MIN=0
ALIGN_MIN=0
ALIGN_MAX=0
<split_name>
<etset_name>
et
Steps
<step_name>
TYPE
SIDE
PITCH_MIN
PITCH_MAX
SIZE_MIN
SIZE_MAX
DIST_X ,DIST_Y
NUM_NEEDED
EQUALS_TO
CONTACT_MIN
ALIGN_MIN
ALIGN_MAX
TYPE
def_smd
def_pin
def_over
smd
NAME SIDE
PITCH
SIZE
x
x
x
x
x
x
x
x
DIST
NUM_NEEDED EQUALS_TO
CONTACT ALIGN
ODB++ Specification
196
hole
npth
comp
air
tool
fp_info
alignment
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
adapter_top(bot) / desc
Type:
Structured Text
Compression:
None
Sum file:
No
<job Name>/steps/<step_name>/et/<etset_name>/<split_name>/adapter_top(bot)/desc
desc
adapter_bot
adapter_top
Example
X_MIN=-2.605
Y_MIN=-0.93375
X_MAX=18.295
Y_MAX=13.56625
<split_name>
<job_name>
GRID {
STEP_X=0.1
STEP_Y=0.1
X_MIN=-1.705
Y_MIN=-0.03375
X_MAX=17.395
Y_MAX=12.66625
}
HEIGHT=3.75
<etset_name>
et
Steps
<step_name>
PLATES {
ELEVATION=0.1125
THICKNESS=0.12
COUNTER_SINK_TOP_H=0
COUNTER_SINK_TOP_R=0
COUNTER_SINK_BOT_H=0
COUNTER_SINK_BOT_R=0
PLATE_NAME=tus
CONST_DRILL=tus.3
SPEC_PROCESS=none
MASK_SIZE=0
GUIDING_MAX_PITCH=0
GUIDING_DEFL_LIMITS=0
GUIDING_SMALL_SIZE=0
GUIDING_BIG_SIZE=0
ODB++ Specification
197
GUIDING_MARGIN=0
TRANS_PLATE {
XC=0
YC=0
XOFF=0
YOFF=0
ROTATE=0
MIRROR=no
}
}
TOOLS {
NAME=man_tool2
X=16.9298279527559
Y=13.91177598425197
}
Note
This file contains five global parameters and three arrays. The global parameters
are:
X_MIN, Y_MIN
X_MAX, Y_MAX
HEIGHT
Numerous grids can be defined. For example double density grids require two
definitions of grids each with a step of 100 mil with a 50 mil step between them.
The fields of the GRID array are:
STEP_x, STEP_Y
X_MIN, Y_MIN
X_MAX, Y_MAX
The PLATES array has a sub array, TRANS_PLATE. The fields of the PLATES array
are:
ELEVATION
THICKNESS
COUNTER_SINK_TOP_H
COUNTER_SINK_TOP_R
Counter sink drill holes on top layer with a radius less than
this value
COUNTER_SINK_BOT_H
COUNTER_SINK_BOT_R
PLATE_NAME
CONST_DRILL
Name of the layer from which the constant drills are taken
ODB++ Specification
198
SPEC_PROCESS
MASK_SIZE
GUIDING_MAX_PITCH
GUIDING_BIG_SIZE
GUIDING_LINE_SIZE
GUIDING_MARGIN
The fields of the sub array TRANS_PLATE (the transformation parameters for each
plate to be used in the output of the drill file) are:
XC,YC
XOFF,YOFF
ROTATE
MIRROR
X,Y
pins / <pin_name>
Type:
Structured Text
Compression:
None
Sum file:
No
<job Name>/steps/<step_name>/et/<etset_name>/<split_name>/pins/<pin_name>
<pin_name>
pins
<split_name>
<job_name>
<etset_name>
et
Steps
<step_name>
ODB++ Specification
199
MEASURES {
OFFSET=0
DIAMETER=0.024
SPACING=0
DRILL_SIZE=0.029
}
MEASURES {
OFFSET=1
DIAMETER=0.024
SPACING=0
DRILL_SIZE=0.029
}
MEASURES {
OFFSET=1
DIAMETER=0.024
SPACING=0
DRILL_SIZE=0.045
}
MEASURES {
OFFSET=3.75
DIAMETER=0.024
SPACING=0
DRILL_SIZE=0.045
}
This file contains nine global parameters and one array. The global parameters are:
NAME
TYPE
probe/tooling/align_pt
SYMBOL
HEIGHT
DEFLECTION
MAN_DEFLECTION
BOARD_SNAP
GRID_SNAP
grid/ gnone
CRIMP
Not in use
DIAMETER
SPACING
DRILL_SIZE
ODB++ Specification
200
There is also another tree, which has some of the above files.
Under /genesis/sys/hooks/ there is the "et" directory. Here are stored a
library of pins and adapters that are generally available.
ODB++ Specification
201
Symbol Definitions
Chapter 11
Standard Symbols
The system supports the following standard (system) symbols:
Round
r<d>
d - circle diameter
Square
s<s>
s - square side
Rectangle
rect<w>x<h>
w - rectangle width
h - rectangle height
ODB++ Specification
202
Rounded Rectangle
rect<w>x<h>xr<rad>x<corners>
w - rectangle width
h - rectangle height
rad - corner radius
corners - a combination of which corners are rounded.
x<corners> is omitted if all corners are rounded.
h
rad
Chamfered Rectangle
w
rect<w>x<h>xc<rad>x<corners>
w - rectangle width
h - rectangle height
rad - corner radius
corners - a combination of which corners are rounded.
x<corners> is omitted if all corners are rounded.
h
4
rad
Oval
oval<w>x<h>
w - oval width
h - oval height
w
h
ODB++ Specification
203
Diamond
di<w>x<h>
w - diamond width
h - diamond height
w
h
Octagon
oct<w>x<h>x<r>
w
w - octagon width
h - octagon height
r - corner size
Round Donut
donut_r<od>x<id>
od - outer diameter
id - inner diameter
od
id
ODB++ Specification
204
Square Donut
donut_s<od>x<id>
od - outer diameter
id - inner diameter
od
in 7.0
id
Square/Round Donut
donut_sr<od>x<id>
od - outer diameter
id - inner diameter
od
id
donut_s<od>x<id>x<rad>x<corners>
od - outer diameter
id - inner diameter
rad - corner radius
corners - a combination of which corners are rounded.
x<corners> is omitted if all corners are rounded.
od
id
rad
ODB++ Specification
205
Rectangle Donut
donut_rc<ow>x<oh>x<lw>
in 7.0
ow - outer width
oh - outer height
lw - line width
ow
lw
oh
in 7.0
ow
oh
lw
donut_rc<ow>x<oh>x<lw>x<rad>x
<corners>
ow - outer width
oh - outer height
lw - line width
rad - corner radius
corners - a combination of which corners are rounded.
x<corners> is omitted if all corners are rounded.
rad
in 7.0
Oval Donut
donut_o<ow>x<oh>x<lw>
ow - outer width
oh - outer height
lw - line width
ow
oh
lw
ODB++ Specification
206
Horizontal Hexagon
hex_l<w>x<h>x<r>
w - hexagon width
h - hexagon height
r - corner size
Vertical Hexagon
hex_s<w>x<h>x<r>
w - hexagon width
h - hexagon height
r - corner size
Butterfly
bfr<d>
d - diameter
d
ODB++ Specification
207
Square Butterfly
bfs<s>
s - size
Triangle
tri<base>x<h>
base - triangle base
h - triangle height
base
Half Oval
oval_h<w>x<h>
w
w - width
h - height
ODB++ Specification
208
thr<od>x<id>x<angle>x<num_spokes>x<gap>
od - outer diameter
id - inner diameter
angle - gap angle from 00
num_spokes - number of spokes
gap - size of spoke gap
450
id
p
od
angle
ga
Specification of od and id
determine the air gap (size of
laminate separation)
num_spokes = 4
ths<od>x<id>x<angle>x<num_spokes>x<gap>
od - outer diameter
id - inner diameter
angle
id
ga
p
od
450
Specification of od and id
determine the air gap (size of
laminate separation)
num_spokes = 4
Square Thermal
s_ths<os>x<is>x<angle>x<num_spokes>x<gap>
os - outer size
is - inner size
angle - gap angle from 00
num_spokes - number of spokes
gap - size of spoke gap
450
is
ga
os
angle
Specification of os and is
determine the air gap (size of
laminate separation)
num_spokes = 4
ODB++ Specification
209
s_tho<od>x<id>x<angle>x<num_spokes>x<gap>
od - outer diameter
id - inner diameter
angle - gap angle from 00
num_spokes - number of
spokes
gap - size of spoke gap
id
p
od
angle
450
ga
Specification of od and id
determine the air gap (size of
laminate separation)
num_spokes = 4
Square-Round Thermal
sr_ths<os>x<id>x<angle>x<num_spokes>x<gap>
os - outer size
id - inner diameter
angle - gap angle from 00
num_spokes - number of spokes
gap - size of spoke gap
id
ga
num_spokes = 4
Rectangular Thermal
rc_ths<w>x<h>x<angle>x<num_spokes>x<gap>x
<air_gap>
w - outer width
h - outer height
ga
p
air gap
450
Specification of os and id
determine the air gap (size of
laminate separation)
os
angle
num_spokes = 4
angle
ODB++ Specification
210
w - outer width
h - outer height
angle
ga
p
air gap
rc_tho<w>x<h>x<angle>x<num_spokes>x<gap>x
<air_gap>
num_spokes = 4
s_ths<os>x<is>x<angle>x<num_spokes>x<gap>x
r<rad>x<corners>
os - outer size
is - inner size
os
is
gap
angle
num_spokes = 4
rad
ODB++ Specification
211
in 7.0
s_ths<os>x<is>x<angle>x<num_spokes>x<gap>x
r<rad>x<corners>
os - outer size
is - inner size
gap
is
os
angle
num_spokes = 4
rad
in 7.0
Rounded Rectangle
Thermal
rc_ths<ow>x<oh>x<angle>x<num_spokes>x<gap>x
<lw>xr<rad>x<corners>
ow - outer width
oh - outer height
lw - line width
ow
oh
gap
lw
angle
num_spokes = 4
rad
ODB++ Specification
212
in 7.0
Rounded Rectangle
Thermal (Open Corners)
rc_ths<ow>x<oh>x<angle>x<num_spokes>x<gap>x
<lw>xr<rad>x<corners>
ow - outer width
oh - outer height
lw - line width
ow
oh
gap
lw
angle
num_spokes = 4
rad
Oval Thermal
o_ths<ow>x<oh>x<angle>x<num_spokes>x<gap>x<lw>
ow - outer width
oh - outer height
in 7.0
ow
lw
oh
angle
gap
num_spokes = 4
ODB++ Specification
213
in 7.0
o_ths<ow>x<oh>x<angle>x<num_spokes>x<gap>x<lw>
ow - outer width
oh - outer height
angle
ow
lw
oh
gap
num_spokes = 4
Ellipse
el<w>x<h>
w - width
h - height
w
h
Moire
moire<rw>x<rg>x<nr>x<lw>x<ll>x<la>
la=0
ll
rw - ring width
rg - ring gap
nr - number of ring width
(rw)
rings
lw - line width
ll - line length
la - line angle ring gap (rg)
from center of
ring to edge of
adjacent ring
ODB++ Specification
214
Hole
hole<d>x<p>x<tp>x<tm>
d - hole diameter
p - plating status (p(lated), n(on-plated) or v(ia))
tp - + tolerance
tm - - tolerance
This symbol is specifically intended for wheels created by the
Wheel Template Editor for drill files.
Null
null<ext>
ext - extension number
This symbol is empty and used as a place holder for non-graphic
features.
Rotation is clockwise.
ODB++ Specification
215
Appendix A
System Attributes
The following table is a combined list of the system attributes currently used by the
Enterprise and Trilogy programs. As of V8.0, system attributes are not considered
core entities. (See Entity Definitions on page 17.) Therefore, for Genesis
products, see System Attributes for Genesis on page 261.
The columns are:
Attributes - the internal name of the attribute
Type - Float, Integer, Boolean, Text, Option
Entity - the ODB++ entity (such as Job, Step, Feature, Component, Symbol,
Wheel, ...) to which the attribute can be assigned.
Attribute List
Attribute
Type
Entity
Description
Display Name
.all_eda_layers
Text
Step
(0 to 1000 characters)
This attribute consists of a list of
all the layers in the current EDA
design (not ODB++). It used in the
graphic synchronization with the
EDA system.
.aoi_cpbm
Integer
Feature
(0 to 255)
Obsolete
.aoi_cpcu
Integer
Feature
(0 to 255)
Obsolete
.aoi_drbm
Integer
Feature
(0 to 255)
Obsolete
.aoi_drcu
Integer
Feature
(0 to 255)
Obsolete
.aoi_value
Integer
Feature
(0 to 255)
Obsolete
.ar_pad_drill_bottom_max
Float
Feature
(-10 to 1000)
Assigned to a drill to define the
maximum annular ring size in mils
or microns between the drill and
the copper of the bottom layer of
the drill span.
Max Pad AR
Drill Bottom
ODB++ Specification
216
Attribute
Type
Entity
Description
Display Name
.ar_pad_drill_bottom_min
Float
Feature
(-10 to 1000)
Assigned to a drill to define the
minimum annular ring size in mils
or microns between the drill and
the copper of the bottom layer of
the drill span.
.ar_pad_drill_inner_max
Float
Feature
(-10 to 1000)
Assigned to a drill to define the
maximum annular ring size in mils
or microns between the drill and
the copper of an inner layer in the
drill span.
Max Pad AR
Drill Inner
.ar_pad_drill_inner_min
Float
Feature
(-10 to 1000)
Assigned to a drill to define the
minimum annular ring size in mils
or microns between the drill and
the copper of an inner layer in the
drill span.
.ar_pad_drill_top_max
Float
Feature
(-10 to 1000)
Assigned to a drill to define the
maximum annular ring size in mils
or microns between the drill and
the copper of the top layer of the
drill span.
Max Pad AR
Drill Top
.ar_pad_drill_top_min
Float
Feature
(-10 to 1000)
Assigned to a drill to define the
minimum annular ring size in mils
or microns between the drill and
the copper of the top layer of the
drill span.
.ar_sm_drill_bottom_max
Float
Feature
(-10 to 1000)
Assigned to a drill piercing the
bottom layer, to define the
maximum annular ring size in mils
or microns between the drill and
the soldermask on the bottom
layer.
Max SM AR Drill
Bottom
.ar_sm_drill_bottom_min
Float
Feature
(-10 to 1000)
Assigned to a drill piercing the
bottom layer, to define the
minimum annular ring size in mils
or microns between the drill and
the soldermask on the bottom
layer.
Min SM AR Drill
Bottom
ODB++ Specification
217
.ar_sm_drill_top_max
Float
Feature
(-10 to 1000)
Assigned to a drill piercing the top
layer, to define the maximum
annular ring size in mils or
microns between the drill and the
soldermask on the top layer.
Max SM AR Drill
Top
.ar_sm_drill_top_min
Float
Feature
(-10 to 1000)
Assigned to a drill piercing the top
layer, to define the minimum
annular ring size in mils or
microns between the drill and the
soldermask on the top layer.
Min SM AR Drill
Top
.ar_sm_pad_bottom_max
Float
Feature
(-10 to 1000)
Assigned to a drill piercing the
bottom layer, to define the
maximum annular ring size in mils
or microns between the drilled
pad of the bottom layer and the
soldermask above.
Max SM AR
Bottom
.ar_sm_pad_bottom_min
Float
Feature
Min SM AR
Bottom
Attribute
Type
Entity
(-10 to 1000)
Assigned to a drill piercing the
bottom layer, to define the
Description
minimum
annular ring size in mils
or microns between the drilled
pad of the bottom layer and the
soldermask above.
.ar_sm_pad_top_max
Float
Feature
(-10 to 1000)
Assigned to a drill piercing the top
layer, to define the maximum
annular ring size in mils or
microns between the drilled pad
of the top layer and the
soldermask above.
Max SM AR Top
.ar_sm_pad_top_min
Float
Feature
(-10 to 1000)
Assigned to a drill piercing the top
layer, to define the minimum
annular ring size in mils or
microns between the drilled pad
of the top layer and the solder
mask above.
Min SM AR Top
.area_name
Text
Feature
[0 to 64)
Assigned to surface features
which are drawn in a process map
layer. A process map layer is used
in assembly analysis for
determining the process type
used in the location a
measurement is found.
Display Name
ODB++ Specification
218
.array_with_rotation
Boolean
Step
(Default=No)
If Yes, this step is a multi-panel
array, with the same panel
possibly appearing in 180-degree
rotation to itself
.artwork
Text
Feature
(0-1000)
Indicating to which entity the
feature belongs (component,
package, net, board)
.assembly_proc_bottom
Text
Step
(0 to 20)
Default assembly process for the
bottom side, to be used when
there is no specific area defined in
the process map layer (or no
process map layer at all)
.assembly_proc_top
Text
Step
(0 to 20)
Default assembly process for the
top side, to be used when there is
no specific area defined in the
process map layer (or no process
map layer at all).
.axi_direction
Attribute
Option
Type
Step
Entity
(Left2Right; Top2Bottom;
Description
Right2Left; Bottom2Top)
Defines the angle at which a
board is inserted into a 5DX
machine. Values are translated as
0, 90, 180, 270 degrees.
.bit
Text
Feature
(0 - 64)
Contains the drill designator
which is set to each tool in the
Drill Tools Manager.
.board_mark
Option
Feature
(bbm, gpm)
In Vi-Technology output, this
controls whether a step or a panel
needs to be inspected:
bbm - This feature is a bad board
mark. Skip inspection of the step.
gpm - This feature is a good
panel mark. The panel can be
accepted for printing without
scanning its steps for bad board
marks.
Note: From V7.6 this replaces the
obsolete attribute
.skip_indicator.
.board_thickness
Float
Job
Feature Source
Display Name
ODB++ Specification
219
.bond_name
Text
Feature
Name of wire
bond
.bonding_profile
Text
Feature
Bonding profile
.break_away
Boolean
Symbol
(Default = No)
Assigned to a symbol
representing a break-away to be
inserted into any line or arc of the
rout path. When adding a
break_away symbol through
dimensions, it automatically
adjusts to the line or arc angle,
breaks that feature (in the
breaking points defined in that
symbol with the .brk_pnt
attribute), and adds all the
necessary connections and
dimensions.
.brk_point
Boolean
Feature
Attribute
Type
Entity
.cad_local_footprint_
change
Boolean
Comp.
(Default = No)
Indicates whether there has been
a local change to a pad code in
the local design.
CADStar Pad
Change
.cad_package_name
Text
Comp.
(0-10000)
Contains the full CAD package
name of a Cadstar component.
This name can be longer than the
Valor package name which is
limited to 64 characters.
CADStar
Package Name
.cad_part_override
Text
Comp.
(0-64)
Assigns component properties in
accordance with data received
from the ASSY_PN_OVERRIDE
property.
CAD Part
Varient Support
.center_fiducial
Boolean
Comp.
(Default = No)
Specifies component is expected
to have a fiducial at its center.
Center Fiducial
Required
Display Name
ODB++ Specification
220
.color
Text
Feature;
Comp.
.comment
Text
Job;
Step;
Layer;
Wheel;
Symbol;
Stackup
(0 to 500)
Used for general textual
comments.
.comp
Option
Feature
.comp_height
Float
Comp.
(0.0 to 10.0)
Stores the height of the
component above the board
surface expressed in inch or mm.
HPGL Output
Color
Height
ODB++ Specification
221
.comp_height_area
Integer
Feature;
Comp.
.comp_htol_minus
Float
Comp.
(0.0 - 10.0)
Contains the minus tolerance for
component height expressed in
inch or mm, used for calculation of
plug-in boards.
Height
Tolerance Minus
.comp_htol_plus
Float
Comp.
(0.0 - 10.0)
Contains the plus tolerance for
component height expressed in
inch or mm, used for calculation of
plug-in boards.
Height
Tolerance Plus
.comp_ign_spacing
Boolean
Comp.
(Default = No)
This attribute, when set, disables
spacing checks on a component
during assembly analysis. It is
used for printed components
which have no actual body
Ignore during
Spacing
Analysis
.comp_ignore
Boolean
Comp.
(Default=No)
Determines whether the
component is to be ignored when
calculating statistics, or during
certain operations, such as
Analysis.
Ignore
.comp_mount_type
Option
Comp.
Mount Type
.comp_name
Text
Comp.
Name of die
component
ODB++ Specification
222
Attribute
Type
Entity
Description
Display Name
.comp_polarity
Option
Comp.
Polarity
.comp_type
Option
Comp.
Type I
axial
bga
cbga
cob
dip
discrete
discrete402
discrete603
label
pga
pihconn
pihmisc
plcc
pqfp
printed
qfp
radial
sip
smtconn
smtmisc
socket
soic
soj
sop
sot
tab
tqfp
tsoic
tsop
ODB++ Specification
223
Attribute
Type
Entity
Description
Display Name
.comp_type2
Option
Comp.
Options
Type II
axial
axial-large
bga
cbga
cob
csp
dip
dip300
dip600
discrete
discrete201
discrete402
discrete603
electro-mech
flipchip
label
lcc
lqfp
pfconn
pga
pihconninline
- pihconn-rtangle
- pihmisc
- pih-polar
plcc
pqfp
printed
qfp
radial
radial-tall
sip
smtconn
smtelectmech
smtmisc
smtmixedconn
smtpolar
socket
soic
soj
solderablemech
sop-ssop
sot
tab
tqfp
tsoic
tsop
tsop-tssop
Text
Comp.
(0 - 1000)
Consists of a list of variants where
a component is used.
Variant List
.comp_weight
Float
Comp.
(0.0 - 1000.0)
Stores the weight of the
component (in ounces) for the
purpose of the total weight
calculation.
Weight
ODB++ Specification
224
Attribute
Type
Entity
Description
Display Name
.copper_weight
Float
Layer
.critical_net
Boolean
Feature;
Net
.critical_tp
Boolean
Feature
Netlist Critical
Midpoint Output
.cu_base
Boolean
Layer
.current_variant
Text
Step
.customer
Text
Job
(0 - 100)
This attribute is used for
information purposes. It is used
specifically in the input process
when processing the lyr_rule
file.
.cut_line
Integer
Feature
.data_source
Text
Job;
Step
(0 - 100)
The source of the data. For
example, Cadence, Mentor.
Film
Optimization Cut
Line
ODB++ Specification
225
Attribute
Type
Entity
Description
Display Name
.desc1....10
Text
Comp.
(0 - 1000)
The line mode command
comp_attr_from_desc_param
can be used to store the values in
the ten BOM description fields
into the corresponding one of
these ten description attributes.
General
Description
1....10
.design_center
Text
Step
(0 - 100)
The design center from which the
job originated.
.design_origin_x
Integer
Job
(-254000000 to 254000000)
Defines the design origin X
coordinate. Currently, it is
automatically set in the CADIF
input process.
.design_origin_y
Integer
Job
(-254000000 to 254000000)
Defines the design origin Y
coordinate. Currently, it is
automatically set in the CADIF
input process.
.diff_pair
Text
Net
(0 to 64)
Differential pair name associating
two nets that must be routed
together.
.dpair_gap
Float
Net
(0.0 to 10.0)
Spacing gap value expressed in
inch or mm specifying the spacing
between differential pair nets.
.drc_add_rad
Integer
Mania_
AOI
(0 to 100; default = 2)
For AOI - add lines with this radius
when adding shapes.
.drc_assembly_lyrs
Option
Feature
.drc_bend_keepout
Boolean
Feature
NOT USED
.drc_board
Boolean
Feature
.drc_comp_height
Boolean
Feature
Assigned Area
to Component
Side
Component
Height for Area
ODB++ Specification
226
Attribute
Type
Entity
Description
Display Name
.drc_comp_height_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all component height
restriction keepin/keepout areas
are stored.
.drc_comp_keepin
Boolean
Feature
.drc_comp_keepin_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all component keepin areas
are stored.
.drc_comp_keepout
Boolean
Feature
.drc_comp_keepout_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all component keepout
areas are stored.
.drc_etch_lyrs
Text
Feature
(0 to 1000)
Value = layer names separated by
semi-colons ( ; ). User-defined
attribute for user to specify name
of layers in which to activate
keepin/keepout areas. For
example, when
.drc_etch_lyrs = pg1;pg2,
this enables you to select/highlight
(on the relevant document layer)
keepin/keepout areas that are
active in layers pg1, pg2. The
attributes:
.drc_etch_lyrs_bit and
.drc_etch_lyrs must both
specify the same layers. If there is
a discrepancy between the two,
then .drc_etch_lyrs_bit is
the determining attribute.
DFx Area
Layers by Name
.drc_etch_lyrs_all
Boolean
Feature
Component
Keep In
Component
Keep Out
ODB++ Specification
227
Attribute
Type
Entity
Description
Display Name
.drc_etch_lyrs_bit
Text
Feature
(0 to 64)
Values = string consisting of 0
and 1 characters. Allows the
keepin/keepout area to apply only
to specified board layers. The
attributes length is equal to the
number of board layers. 0 = ignore
layer, 1 = activate areas in that
layer
DFx Area
Selected Layers
.drc_max_height
Float
Feature
(0.0 to 10.0)
Stores the maximum height of
components to be allowed in a
height restriction area (area with
.drc_comp_height attribute)
expressed in inch or mm.
Maximum
Height for
Component
.drc_mech
Boolean
Feature
Obsolete
.drc_min_height
Float
Feature
(0.0 to 10.0)
Stores the minimum height of
components to be allowed in a
height restriction area (area with
.drc_comp_height attribute)
expressed in inch or mm.
.drc_min_space
Integer
Mania_
AOI
(1 to 100; default = 5)
Minimum spacing. (Obsolete)
.drc_min_width
Integer
Mania_
AOI
(1 to 100; default = 7)
Minimum track width. (Obsolete)
.drc_pad_keepout
Boolean
Feature
.drc_pad_keepout_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all pad keepout areas are
stored. Default as defined in the
drc_pad_keepout configuration
parameter.
.drc_plane_keepout
Boolean
Feature
.drc_plane_keepout_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all plane keepout areas are
stored.
.drc_ref_des
Text
Feature
(0 to 100)
Assigned to DRC areas defined
for components.
Minimum Height
for Component
ODB++ Specification
228
Attribute
Type
Entity
Description
Display Name
.drc_route_keepin
Boolean
Feature
Route Keep In
.drc_route_keepin_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all rout keepin areas are
stored.
.drc_route_keepout
Boolean
Feature
.drc_route_keepout_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all rout keepout areas are
stored.
.drc_tp_keepin
Boolean
Feature
.drc_tp_keepin_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all testpoint keepin areas
are stored.
.drc_tp_keepout
Boolean
Feature
.drc_tp_keepout_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all testpoint keepout areas
are stored.
.drc_trace_keepout
Boolean
Feature
.drc_trace_keepout_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all traces keepout areas are
stored.
.drc_via_keepout
Boolean
Feature
.drc_via_keepout_lyr
Text
Job
(0 to 64)
Stores name of document layer in
which all vias keepout areas are
stored.
Testpoint Keep
In
Testpoint Keep
Out
ODB++ Specification
229
Attribute
Type
Entity
Description
Display Name
.drill
Option
Feature
Drill Type
.drill_flag
Integer
Feature
(0 to 100000; default = 0)
Used by the Auto Drill Manager. It
is an integer feature attribute that
should be used on the drill layer.
When the Auto Drill Manager
package creates the NC Drills
table it separates the different
drills based on several values:
size, drill type and also the value
of this attribute. This is useful in
cases where specific drills need to
be treated in a specific way.
.drill_layer_direction
Option
Layer
(top2bottom, bottom2top)
Whether a pad is reported as on
the top or bottom of the drill layer
is determined by this attribute. If
set to bottom2top, pads on the
bottom are reported at top.
.drill_noopt
Boolean
Feature
.drill_sr_zero
Option
Feature
(1; 2; 3)
Used in the Auto Drill Manager to
be assigned to a single drill
feature in the PCB step. If a single
feature in a step is assigned, it is
used for setting the 'step & repeat
zero offset' of that step. That is,
that feature will receive the
coordinates - (0,0) in the step &
repeat block, and all other
coordinates will be relative to it. In
order for this attribute to be used,
other configuration parameters of
the package should be set.
ODB++ Specification
230
Attribute
Type
Entity
Description
Display Name
.drill_stage
Option
Feature
(1;2;3)
Used in the Auto Drill Manager on
the drill layer. This attribute
receives three values - '1', '2', and
'3', specifying the drill stage of that
specific drill hole/slot.
.dxf_dimension
Boolean
Feature
.eclass_accumulative_
parallel_dist_list
Text
Net
(0 - 255)
List of electrical class rules
(blank-separated) defining the
maximum distance between the
two traces of nets considered
parallel in the accumulative
categories of Parallel Nets.
.eclass_accumulative_
parallel_max_length_list
Text
Net
(0 - 255)
List of electrical class rules
(blank-separated) defining the
maximum distance between the
two traces of nets considered
parallel in the accumulative
categories of Parallel Nets.
.eclass_impedance
Float
Net
(0.0 to 1000.0)
Electrical class rule
.eclass_individual_
parallel_dist_list
Text
Net
(0 - 255)
List of blank-separated electrical
class rules- defines the separation
distance within which two traces
are considered parallel. Each
parallel section in a net, if more
than one, is checked separately
against the value of this attribute.
.eclass_individual_
parallel_max_length
_list
Text
Net
(0 - 255)
List of electrical class rules
(blank-separated).- defines the
maximum length that two nets can
run parallel to each other. Each
parallel section in a net, if more
than one, is checked separately
against the value of this attribute.
DXF Dimension
ODB++ Specification
231
Attribute
Type
Entity
Description
Display Name
.eclass_individual_
parallel_min_jog_list
Text
Net
(0 - 255)
List of electrical class rules
(blank-separated) - defines the
distance parallel traces that
deviate must maintain the
deviation before it is considered a
break in parallelism. Each parallel
section in a net, if more than one,
is checked separately against the
value of this attribute.
.eclass_max_stub_length
Float
Net
(0.0 to 100.0)
Electrical class rule - high limit of
the stub length expressed in inch
or mm.
.eclass_max_via_count
Integer
Net
(0 to 1000)
Maximal number of vias on the
nets.
.eclass_min_stub_length
Float
Net
(0.0 to 100.0)
Electrical class rule - low limit of
the stub length expressed in inch
or mm.
.eclass_rise_time
Float
Net
(0.0 to 100.0)
Electrical class rule specifying the
interval of a rising signal transition
(low to high)
.eclass_voltage_swing
Float
Net
(0.0 to 100.0)
Electrical class rule
.ecmp_layer_tech
Option
Layer
.ecmp_max_value
Float
Feature
(0.0 to 1000000.0)
Maximum nominal value received
at input (its value plus a
tolerance).
.ecmp_min_value
Float
Feature
(0.0 to 1000000.0)
Minimum value received at input
(its value minus a tolerance).
.ecmp_name
Text
Feature
(0 to 64 characters)
Name assigned to an embedded
passive feature.
.ecmp_type
Option
Feature
(resistor; capacitor)
Assigns a component type to an
embedded component.
ODB++ Specification
232
Attribute
Type
Entity
Description
Display Name
.ecmp_value
Float
Feature
(0.0 to 1000000.0)
Embedded passive nominal value.
For resistors it is the resistance in
ohms.
.eda_dimension_id
Integer
Feature
(0 - 100000; default = 0)
Assigns system-generated ID to
dimensions
.eda_layers
Text
Layer
(0 to 1000)
Contains the EDA system layer
names which compose a physical
layer. It is loaded during the direct
EDA translation and is used for
graphic synchronization with the
EDA system.
.electrical_class
Text
Net
(0 to 64)
Electrical class name associating
a net with a set of electrical call
rules. Electrical class rules
include physical and electrical
limitations required to assure and
analyze the signal integrity of a
high speed net.
.et_adjacency
Float
Layer
.et_align
Boolean
Feature
.extended
Integer
Feature
ODB++ Specification
233
Attribute
Type
Entity
Description
Display Name
.fab_drc
Text
Step
(0 to 20)
Stores the default DRC area
name. This name is applied when
no specific area is defined in the
DRC map layer, or no such map
layer at all. If the value of this
attribute is not defined, then the
default DRC name is applied from
the configuration variable
default_fab_drc.
.feature_ignore
Boolean
Feature
.feed
Integer
Feature
(0 to 100000; default = 0)
For a chained feature, this
attribute sets the table feed rate
when routing.
.fiducial_name
Text
Feature
(0 to 64)
This attribute is used for etec
output format. A pad that was
given a fiducial name is used for
registration between layers.
.fiducial_rdlist
Text
Feature
(0 - 1000)
This attribute is assigned local
fiducial features. It can consist of
a list of REFDES (separated by
semicolons ;); a list of the
component/s using this local
fiducial.
.fill_dx
Float
Symbol
.fill_dy
Float
Symbol
.foot_down
Boolean
Feature
(Default=No)
Attached to feature it causes a
foot_down_cmd to be generated
by the Auto Rout Manager in the
rout file just before the feature.
Used only for Excellon files
(ignored for other formats).
ODB++ Specification
234
Attribute
Type
Entity
Description
Display Name
.fs_direction_bottom
Option
Step
(Right2Left; Left2Right;
Top2Bottom; Bottom2Top).
This attribute is used for the
thieving pad check in assembly
analysis. It determines the flow
direction for the bottom layer.
Thieving pad check is required for
some components during the flow
solder process
.fs_direction_top
Option
Step
(Left2Right; Right2Left;
Top2Bottom; Bottom2Top)
This attribute is used for the
thieving pad check in assembly
analysis. It determines the flow
direction for the top layer.Thieving
pad check is required for some
components during the flow
solder process.
.full_plane
Boolean
Feature
NOT USED
.gencad_device_ntol
Float
Comp.
.gencad_device_ptol
Float
Comp.
.gencad_device_style
Text
Comp.
(0 - 64)
This attribute is an enhancement
of .gencad_device_type and
is used to store the style of the
component as defined in GenCAD
(such as, NPN, PNP, NFET, PFET,
NJFET, PJFET, TTL, CMOS and
ECL)
.gencad_device_type
Text
Comp.
(0 - 64)
Stores the type of the component
as defined in GenCAD (such as,
RES, VRES, DIODE, ZENER,
LOGIC, SWITCH, CONN, etc.).
.gencad_device_value
Text
Comp.
(0 - 64)
Stores the electrical value of a
component.
ODB++ Specification
235
Attribute
Type
Entity
Description
Display Name
.geometry
Text
Feature
(0 to 500)
Contains the name of the
padstack which created this
feature. It is loaded during direct
EDA translation. For layers which
are created from component
layers during the 'Draw to Layer'
operation, the attribute will contain
(for centroid pads) useful
information on the component,
package and part name.
.global_camtek_aoiset
Text
Job
(0-80)
Contains the name of the AOIset
to be assigned to each layer upon
layer selection in the CAMTEK
AOI Interface. Once a name is
defined, the AOIset field in the
CAMTEK popup will be filled with
this name and a new AOIset
created in the layer (if already
exists, the AOIset will become the
current set). The value in this
attribute overrides the value
defined in the configuration
parameter
camtek_def_aoiset, but if no
value is specified in this attribute,
the camtek_def_aoiset value
will apply.
.gold_plating
Boolean
Feature
.guard_comp
Boolean
Comp.
(Default = No)
Assigned to a component that
guards other components.
If TRUE, this component is
considered a "guard component"
(that is, not likely to be knocked off
the board accidentally. To be used
in future actions.)
ODB++ Specification
236
Attribute
Type
Entity
Description
Display Name
.hatch
Boolean
Feature
.hatch_border
Boolean
Feature
.hatch_serrated_border
Boolean
Feature
.hdi_assembly_tech
Option
Layer
.hdi_drc
Text
Step
(0 to 20)
Default area name applied to all
HDI measurements.
.hp3070_comment
Text
Comp.
(0 - 64)
Allows the contents of the
attribute field to be appended to a
component record (preceded by a
"!"). For example: C1
PN"11_215705" "11_215705
POLCAP_10UF,20%,10V TOP";
! comment
.hp3070_common_pin
Text
Comp.
(0 to16).
For the device SWITCH this is
used to designate the COMMON
pin.
.hp3070_contact_pin
Text
Comp.
(0 to16).
For the device SWITCH this is
used to designate the CONTACT
pin.
HDI assembly
technology
ODB++ Specification
237
Attribute
Type
Entity
Description
Display Name
.hp3070_device
Text
Comp.
(0 to 16)
The device of the component, one
of the following:
- CAPACITOR
- CONNECTOR
- DIODE
- FET
- FUSE
- INDUCTOR
- JUMPER PIN
- LIBRARY
- POTENTIOMETER
- RESISTOR
- SWITCH
- TRANSISTOR
- ZENER
All other components will be
categorized as Undefined.
.hp3070_fail_msg
Text
Comp.
(0-64)
Specifies the failure message
associated with the component.
This applies to all device types. In
output of HP3070 formats, the text
field (within quotes) consisting of
the Part number and this error
message will be truncated to 40
characters.
.hp3070_hi_value
Float
Comp.
.hp3070_lo_value
Float
Comp.
ODB++ Specification
238
Attribute
Type
Entity
Description
.hp3070_probe_access
Text
Feature;
Comp.
(0-64)
Specifies the probe access for the
component and toeprint. This
value will be applied to ALL the
pins of the component. Known
values are: PREFERRED,
NO_PROBE, TOP, TOP
NO_ACCESS, BOTH
MANDATORY, and MANDATORY
NO_MANUAL though other
values are possible.
If toeprints are assigned this
attribute, their settings override
the component setting.
.hp3070_seriesr
Float
Comp.
.hp3070_test
Boolean
Comp.
(Default=No)
Determines that a component be
tested. This attribute applies to all
device types. Devices of type
CONNECTOR must be NT (Not
Tested).
.hp3070_tol_neg
Float
Comp.
.hp3070_tol_pos
Float
Comp.
Display Name
- RESISTOR
- ZENER
- RESISTOR
- ZENER
ODB++ Specification
239
Attribute
Type
Entity
Description
Display Name
.hp3070_type
Text
Comp.
(0 - 8)
The type of device:.
For CAPACITOR:
- F = Capacitor Value is Fixed.
- V = Capacitor Value is
Variable.
For FET:
- N = N-Channel Field Effect
Transistor
- P = P-Channel Field Effect
Transistor
For INDUCTOR:
- F = Inductor value is Fixed
- V = Inductor value is Variable
For JUMPER:
- O or OPEN = Jumper is Open
- C or CLOSED = Jumper is
Closed
For RESISTOR:
- F = Resistor value is Fixed
- V = Resistor value is Variable
For TRANSISTOR:
- N = Transistor is an NPN
- P = Transistor is a PNP
Range of characters: 0-8
.hp3070_value
Text
Comp.
(0-16)
The value of the component. The
meaning varies depending on the
component device. For
CAPACITOR it is used for
capacitance (in Farads). For
INDUCTOR it is the inductance (in
Henries). For PIN LIBRARY it is
used for the PN (Part Name). For
the devices POTENTIOMETER
and RESISTOR, it is used for the
device's resistance. For the
ZENER device it specifies the
breakdown voltage (in Volts).
.ignore_net
Boolean
Net
ODB++ Specification
240
Attribute
Type
Entity
Description
Display Name
.image_dx
.image_dy
Float
Symbol
.imp_line
Boolean
Feature
.ind_orient_req
Boolean
Comp.
(Default = No)
Indicates that the component
requires silkscreen orientation
indication. (To be used in future
actions.)
.inp_file
Text
Layer
(0 to 500)
Contains the name of the file
(Gerber, Drill) from which the data
was input into the layer.
.is_burried
Boolean
Comp.
(Default = No)
Assigned to buried components
specifically input from CADIF files
in order to mark them as buried.
This attribute, although
specifically designed for CADIF
files, can be used in any other
function or script.
Note that the attribute name is
misspelled, but that is its name.
.is_capped
Boolean
Feature
.is_shadowed
Boolean
Comp.
(Default = No)
Components with this attribute are
considered for the Shadowing
categories, as the shadowed
component.
.is_wirebonded
Boolean
Comp.
(Default = No)
Defines a component to be wirebonded. Currently, it is set in the
CADIF input process.
ODB++ Specification
241
Attribute
Type
Entity
Description
Display Name
.label_clearance
Boolean
Comp.
(Default = No)
Assigned to components which
are not allowed to be too close to
a glued label (e.g. fine pitch SOIC
components). During the
component analysis, these
components are checked vs. the
label components.
.layer_dielectric
Float
Layer
.layer_hdi_type
Option
Layer
(Buildup; Core)
Distinguishes buildup layers from
core layers in HDI jobs. Some HDI
categories are relevant to buildup
or core layers but not to both.
Therefore, it is important to set
this value appropriately.
.layer_class
Text
Layer
(0 to 1000)
Used to differentiate between
layers. It enables you to set
different ERF ranges for inner
layers than for outer layers.
.local_fiducial_dist
Float
Comp.
(0.0 to 100.0)
Defines the allowed distance of
fiducials from the outline of the
components which require local
fiducials (See
.num_local_fiducial). If set
to 0, the fiducials must be
included INSIDE the outline.
Distance expressed in inch or
mm.
.lpol_done
Boolean
Layer
(Default = No)
Indicates to the output that
polarity sort according to a format
has already been done during film
optimization.
.lpol_surf
Boolean
Feature
(Default = No)
Indicates surface modified by
layer polarity reduction algorithm.
.machine_pkg
Text
Comp.
(0 - 100)
Assigned to a component to
indicate the name of a
corresponding package in the
assembly machine libraries.
ODB++ Specification
242
Attribute
Type
Entity
Description
Display Name
.mechanical
Boolean
Comp
.merge_processes
Text
Step
(0 - 64)
A list of the last three merge
actions in the order in which they
were run. The list is updated each
time a merge (BOM, Library,
Board) is run. It is for
informational purposes and does
not have to be changed by the
user.
.min_line_width
Float
Net.
(0.0 - 100.0)
Assigned to nets that should have
a minimum trace width, i.e. each
line of the net should have a width
of at least this value expressed in
inch or mm. If such nets have a
split (the net traces split and then
meet again) the sum of the split
traces should be at least this
value.
.mount_hole
Boolean
Feature
.mount_stage
Integer
Comp.
(0 - 255; default = 0)
User-defined integer used to
assign machine number in the
assembly line where component
is to be placed.
.n_electric
Boolean
Feature
.needs_guarding
Boolean
Comp.
(Default = No)
Yes - this component needs to be
protected by guard components
(see .guard_comp) else it is likely to
be knocked off the board
accidentally.
.net_length_max
Float
Net
(0.0 to 100.0)
High limit of net length expressed
in inch or mm.
ODB++ Specification
243
Attribute
Type
Entity
Description
Display Name
.net_length_min
Float
Net
(0.0 to 100.0)
Low limit of net length expressed
in inch or mm.
.net_name
Text
Feature
(0 to 64)
Set by the netlist layer. Contains
the net name.
.net_physical_type
Text
Feature
(0 to 64)
Physical type of constraint area
used for search in table that
contains physical parameters of
nets.
.net_point
Boolean
Feature
.net_spacing_type
Text
Feature
(0 to 64)
SQA area name of an SQA area
map.
.net_type
Text
Net
(0 to 64)
A name for the type of net. The
.net_type attribute can
reference the set of routing rules
for a net.
.neutralization_angle
Float
Comp.
(0.0-360.0)
An attribute attached to each
Rotation Neutralization
processed component stating the
angle of rotation counterclockwise from Valor standard
orientation.
.neutralization_info
Text
Step
(0 - 200)
Attached to the step where
Rotation Neutralization has
been performed. This attribute
contains the information
<CPL|CAD>;<DataCenter>;Si
te. Site is read from configuration
parameter organization of the
computer where Rotation
Neutralization was performed.
.neutralization_reviewed
Boolean
Comp.
ODB++ Specification
244
Attribute
Type
Entity
Description
Display Name
.neutralization_ss_
layers
Text
Step
(0 to 200)
Attached to the step where
Rotation Neutralization has
been performed. This attribute
designates which layers are to be
considered the silkscreen layers.
.no_copper_shape_under
Boolean
Comp.
(Default = No)
This attribute indicates that the
component should not have
copper pads or surfaces
underneath it. See also
.no_trace_under.
.no_fiducial_check
Boolean
Comp.
(Default = No)
Components with this attribute are
not checked for the Component
Covers Fiducial category, or for
any of the categories under the
Coverage test.
.no_hole_under
Boolean
Comp.
(Default = No)
If Yes, no drill holes are allowed
under this component.
.no_pop
Boolean
Comp.
(Default = No)
A RefDes with the attribute
.no_pop (non populated)
declares a component as being
not populated for the current
version of the BOM. When
attributed as .no_pop (Yes), even
though the component is defined
in the CAD data it will not be
placed during the assembly
process.
.no_protrude_board
Boolean
Comp
.no_text_under
Boolean
Comp.
(Default = No)
Assigned to a component, does
not allow silk screen text to be
placed under the component
outline. Printed components (e.g.
edge connectors) may not have
this attribute.
ODB++ Specification
245
Attribute
Type
Entity
Description
Display Name
.no_tp_under
Boolean
Comp.
(Default = No)
Assigned to a component, does
not allow testpoints to be placed
under the component outline.
Printed components (e.g. edge
connectors) may not have this
attribute.
.no_trace_under
Boolean
Comp.
(Default = No)
Yes - traces are NOT allowed
under the component except for
those that touch the components
toeprint pads and exit the
component on that toeprints side.
.no_uncap_via_under
Boolean
Comp.
(Default = No)
Yes - uncapped vias are NOT
allowed under this component.
.nomenclature
Boolean
Feature
Defines a feature as a
nomenclature (legend) feature.
This attribute affects the
fabrication analysis by directing
spacing checks between such
features into a new category (Text
to text).
.non_tp
Boolean
Feature
.num_local_fiducials
Integer
Comp.
(0 to 20; default = 0)
Defines how many local fiducials
are expected to be inside or near
a component. This is checked
during Fiducial Analysis.
.orbotech_plot_stamp
Boolean
Feature
s
NOT USED
.orig_surf
Integer
Feature
(0-2147483647;default = 0)
Identifies original surface which
will be rebuilt.
.otherside_keepout
Option
Comp.
ODB++ Specification
246
Attribute
Type
Entity
Description
Display Name
.out_angle
Option
Layer
.out_break
Boolean
Feature;
Symbol
(Default = No)
Feature and symbol attribute.
When assigned to a specific
feature using a special symbol,
the feature will be broken into it's
primitives in the output translation
stage, regardless of the settings
of other output parameters. If the
attribute is set for a special
symbol (entity attribute) then all
features that use these symbols
will always be broken into
primitive features in the output
translation stage, regardless of
the settings of any other output
parameters
.out_comp
Float
Layer
.out_drill_full
Boolean
Step
(Default = No)
The STEP entity attribute used by
the Auto Drill Manager. This
attribute can be used for drilling
coupon STEPs that need to be
fully drilled before continuing to
the next step & repeat entity.
.out_drill_optional
Boolean
Feature;
Step
(Default = No)
Used by the 'Auto Drill Manager'.
Both a STEP entity and feature
attribute. If the drill feature is set
with this attribute it will have the
'/' command prefix in the final
output file, indicating that the drill
is optional. If a step entity attribute
is set, then all the commands that
are part of that step will have the
'/' command prefixed. Thus, the
whole step is optional.
ODB++ Specification
247
Attribute
Type
Entity
Description
Display Name
.out_drill_order
Integer
Step
.out_flag
Integer
Feature
.out_mirror
Boolean
Layer
(Default = No)
Layer entity attributes with default
values that are used by the output
translator. These values populate
the output screen when selecting
the 'step' to be translated.
.out_name
Text
Step
(0 to 64)
Entity attribute that is used by the
Image output translator. If this
attribute is not an empty string it
will serve as the entity name on
the Image system. If it is an empty
string the original system entity
name will be used. This attribute
is important in ases where the
Genesis name does not form a
legal Image name. If this attribute
is not set, the Genesis output
translator decides about the new
name with its own internal
algorithm.
.out_orig
Boolean
Feature
.out_polarity
Option
Layer
(Positive; Negative)
Layer entity attributes with default
values that are used by the output
translator. These values populate
the output screen when selecting
the step to be translated.
ODB++ Specification
248
Attribute
Type
Entity
Description
Display Name
.out_rout_optional
Boolean
Feature;
Step
(Default = No)
Used by the Auto Drill Manager.
Both a STEP entity and feature
attribute. If drill feature is set with
this attribute it will have the '/'
command in front of it in the final
output file. This means that the
drill is optional. If a step entity
attribute is set then all the
commands that are part of that
step will have the '/' command at
the beginning. Thus, the whole
step is optional.
.out_rout_order
Integer
Step
.out_scale
Boolean
Feature;
Symbol
(Default = No)
Feature and symbol attribute. In
the output translation package
there is a special parameter that
controls the way features will be
scaled. In two of the options the
user can specify whether certain
features can be scaled or not.
This is important in cases where
special registration targets would
not be scaled together with all the
other features. This special output
option applies only to features that
have this attribute set. In case of a
special symbol, the customer can
set the attribute, and by this
control the scaling of all features
that use this symbol.
ODB++ Specification
249
Attribute
Type
Entity
Description
Display Name
.out_x_scale
Float
Layer
.out_y_scale
Float
Layer
.output_dcode
Integer
Feature
(0-1000000)
Assigned to features to provide
action codes for an assembly
machine, such as the GSI
Lumonics laser cutter.
.package_version
Text
Comp.
(0 to 50)
Used for Zuken Board Designer
translation.
.pad_usage
Option
Feature
.part_desc1...10
Text
Comp.
(0 to 1000)
The line mode command
comp_attr_from_desc_param
can be used to store the values in
the ten BOM description fields
into the corresponding one of
these ten part description
attributes.
.patch
Boolean
Feature
Copper Patch
.pattern_fill
Boolean
Feature
Film
Optimization Cut
Line
.pf_optimized
Boolean
Feature
(Yes, No)
This attribute is attached to a
modified padstack on the pad in
the matching drill layer when
padstack optimization is
implemented.
ODB++ Specification
250
Attribute
Type
Entity
Description
Display Name
.physical_type
Text
Net
(0 to 64)
Physical type of net.
.pilot_hole
Integer
Feature
(0 to 100000; default = 0)
Attribute assigned to pads that are
pilot holes in a chain (holes that
are drilled in each tool down in the
chain rout path before routing the
chain). Pilot holes are set from the
chaining popup. The value of the
attribute is the serial chain
number to which the pilot hole
belongs. When merging or
inserting chains, the pilot holes
are updated automatically.
.pin_length
Float
Comp.
(0.0-10.0)
The length of the component pins
expressed in inch or mm.
(Relevant to TH pins.)
.pin_name
Text
Comp.
.pitch
Float
Feature
NOT USED
.plated_type
Option
Feature
(Standard, Press_fit)
Defines plated hole type in drill
layers using the Attributes popup
or the Drill Tool Manager.
.polarity_marker
Integer
Comp.
(1-10000; default = 1)
An attribute indicating which pin of
the component is Pin 1.
.primary_side
Option
Job
(Top; Bottom)
Indicates the primary side for this
job.
.rot_correction
Integer
Comp.
(0-359)
Component machine rotation
correction to apply.
.rout_chain
Integer
Feature
(0 to 100000; default = 0)
Contains the serial number of the
chain to which the feature
belongs. Features belonging to
that chain are rearranged in the
features database according to
their order inside the chain.
Additional attributes that are
added to a chained feature:
.feed, .speed,
.rout_flag, .comp
Name of die
bump
ODB++ Specification
251
Attribute
Type
Entity
Description
Display Name
.rout_flag
Integer
Feature
.shave
Boolean
Feature
(Default = No)
Assigned to all the shaves
(negative merges) that the silk
screen optimization adds in
merge mode.
.sip
Option
Feature
(Detected / Repaired).
Indicates whether the SIP (selfintersecting polygon) has been
detected or repaired.
.sliver_fill
Boolean
Feature
.smd
Boolean
Feature
.smt_direction_bottom
Option
Step
(Left2Right; Top2Bottom;
Right2Left; Bottom2Top)
Defines the direction of the SMT
process flow on the bottom side.
.smt_direction_top
Option
Step
(Left2Right; Top2Bottom;
Right2Left; Bottom2Top)
Defines the direction of the SMT
process flow on the top side.
.source_llayer
Text
Feature
(0-64)
This attribute is used by the
Enterprise Mentor EDA translator
to identify the "Source Logical
Layer" of features (traces)
appearing on signal or mixed
layers. The translator uses this
attribute in a filtering stage that
addresses pad/signal mapping.
.spacing_req
Float
Feature
(0.0 to 100.0)
(units = mils or microns)
.speed
Integer
Feature
(0 to 100000; default = 0)
For a chained feature this attribute
sets the spindle speed (in
revolutions per minute) when
routing.
ODB++ Specification
252
Attribute
Type
Entity
Description
Display Name
.spo_h_fact
Float
Feature;
Comp.
.spo_h_mode
Option
Feature;
Comp.
.spo_h_val
Float
Feature;
Comp.
.spo_move_center
Float
Feature;
Comp.
.spo_p_fact
Float
Feature;
Comp.
.spo_p_mode
Option
Feature;
Comp.
(Distance, Area)
Defines how paste pads for nonstandard symbol SMD pads are
sized: by distance, or area.
ODB++ Specification
253
Attribute
Type
Entity
Description
Display Name
.spo_p_val
Float
Feature;
Comp.
.spo_s_fact
Float
Feature;
Comp.
.spo_s_mode
Option
Feature;
Comp.
.spo_s_val
Float
Feature;
Comp.
.spo_shape
Text
Feature;
Comp.
ODB++ Specification
254
Attribute
Type
Entity
Description
Display Name
.spo_shape_rotate
Float
Feature;
Comp.
(0 to 360; default = 0)
Specifies the initial rotation of the
symbol defined in the
.spo_shape attribute. Both
.spo_shape_rotate and
.spo_shape should appear as a
pair at the level at which they are
activated (component or feature).
This means, for example, that an
.spo_shape_rotate defined
without a corresponding
.spo_shape in the feature level
is ignored.
.spo_shape_stretch
Boolean
Feature;
Comp.
(Default = No)
Specifies that the symbol defined
in .spo_shape is to be
stretched to fit the copper pad
dimensions. The stretch limits are
determined by applying the SPO
width and height parameters
(pp_w_*, pp_h_*) or attributes
(.spo_w_*, .spo_h_*) on the
copper pad bounding box. Both
.spo_shape_stretch and
.spo_shape should appear as a
pair at the level at which they are
activated (component or feature).
This means, for example, that an
.spo_shape_stretch defined
without a corresponding
.spo_shape in the feature level
is ignored.
.spo_w_fact
Float
Feature,
Comp.
.spo_w_mode
Option
Feature,
Comp.
ODB++ Specification
255
Attribute
Type
Entity
Description
Display Name
.spo_w_val
Float
Feature,
Comp.
.src_orientation
Integer
Comp.
.station
Text
Comp.
.string
Text
Feature
(0 to 1000)
For nomenclature features, the
value of this attribute is the
original text string which the
feature is part of. During EDA
input, all occurrences of the
asterisk character '*' are replaced
by the hyphen character '-' (the
reason: when filtering, the
asterisk character '*' is used to
denote any substring match).
ODB++ Specification
256
Attribute
Type
Entity
Description
Display Name
.string_angle
Float
Feature
(0 to 360)
For nomenclature features, the
value of this attribute is the
original (in the input file) text
rotation angle which the feature is
part of.
This attribute is assigned to
translated jobs of formats:
Cadence Allegro BRD/APD,
Mentor BoardStation, PADS
PowerPCB.
.string_justification
Option
Feature
.string_mirrored
Boolean
Feature
(No, Yes)
Assigned to mirrored strings.
.tear_drop
Boolean
Feature
.technology
Text
Job
(0 - 100)
Defines the technology used in
creating the job. Currently it is set
automatically in the CADIF
process.
.test_point
Boolean
Feature
ODB++ Specification
257
Attribute
Type
Entity
Description
Display Name
.test_potential
Option
Feature
.testpoint_count
Integer
Net
(-1 to 10000)
Specifies the number of testpoints
expected on this net. If this
variable is not defined, or its value
is -1, the number of expected
testpoints in unlimited. A value of
-1 is given to a net that does not
require a specific number of test
points. When the Num-verify test
is run, it ignores such nets (even
when the ERF variable
v_testpoint_count_default
is defined).
.testpoint_name
Text
Feature
(0 to 64)
Name of the testpoint.
.thvpad_required
Boolean
Comp.
(Default = No)
Assigned to components which
require a thieving pad check
during the Padstack Analysis
action (e.g. fine pitch SOIC).
ODB++ Specification
258
Attribute
Type
Entity
Description
Display Name
.toep_nochk_o_side
Boolean
Comp.
(Default = No)
Assigned to components so that
their toeprints on the opposite
side will be excluded from the
Toeprint to Toeprint category
measurement results in Padstack
Analysis, and from the
Component to Toeprint category
in Component Analysis.
Important Note:
This attribute is applied only when
the following ERF variables are
set:
c2toep_by_comp=1 (in
component.erf)
toep2toep_by_comp=1 (in
padstack.erf)
.toep_spacing_req
Float
Comp.
(1 to 100; default = 5)
Assigned to components for
reporting in the Toeprint to
Toeprint category in the Signal
Layers Check in Analysis. It
defines the maximum spacing
expressed in inch or mm within
which to report pad to pad
spacing measurements. Units
expressed in inch or mm.
.tooling_hole
Boolean
Feature
.user_bom_rev
Text
Comp.
(0 - 1000)
Used to describe user modified
component extensions. Although
a user can set a component to a
different CPN by using the Set
CPN function, this attribute
disappears when BOM Merge is
performed.
.variant_list
Text
Job
(0 - 1000)
Consists of a list of all possible
variants of a job.
.vcut
Boolean
Feature
Assigned to rout
features that are
cut in a V-shape
(such as in the
figure). Another machine performs
the V-shape cutting.
ODB++ Specification
259
Attribute
Type
Entity
Description
Display Name
.via_type
Option
Feature
.viacap_layer
Option
Step
.wheel_type
Option
Wheel
(Gerber; Tools)
Specifies for a wheel whether it is
used for Gerber files translation or
for drill file translation.
ODB++ Specification
260
Appendix B
The following table is a list of the system attributes currently used by Genesis
programs.
The columns are:
Attributes - the internal name of the attribute
Type - Float, Integer, Boolean, Text, Option
Entity - the ODB++ entity (such as Job, Step, Feature, Component, Symbol,
Wheel, ...) to which the attribute can be assigned.
Attribute List
Attribute
Type
Entity
Description
.action_mask_layer
Integer
Layer
.action_mask_layer_type
Text
Layer
.array_with_rotation
Boolean Step
.assembly_proc_bottom
Text
Step
(0 to 20)
Default assembly process for the bottom side, to be used
when there is no specific area defined in the process map
layer (or no process map layer at all)
.assembly_proc_top
Text
Step
(0 to 20)
Default assembly process for the top side, to be used when
there is no specific area defined in the process map layer (or
no process map layer at all).
.avoid_shave
.bit
Text
Feature (0 - 64)
Contains the drill designator which is set to each tool in the
Drill Tools Manager.
.board_thickness
Float
Job
(0.0 to 10.0)
Total thickness of the board.
ODB++ Specification
261
Attribute
Type
Entity
.break_away
.brk_point
.canned_text
.cdr_mirror
Text
Layer
Description
(No, Yes)
The mirroring of a layer for AOI inspection is set in the
.cdr_mirror layer attribute.
If Yes, the layer is mirrored for AOI inspection.
If No, the layer is not mirrored.
If unset, the mirroring of the layer is assumed to be the
opposite of mirroring for plottint. The mirroring used for
poltting is deduced fromt he combination of two factors: the
value of the layer attribute .out_mirror, and the existence of
mirroring in the Image Production layer parameters. The
table below summarizes the possibilities.
Mirroring in
Image Production
Parameters
Value of
.out_mirror
AOI Mirror
(Result)
No
No
Yes
No
Yes
No
Yes
No
No
Yes
Yes
No
.cdr_val
Integer
.cdr14_stages
Text
Feature (0 - 400)
Assigned to alignment target features, and describes the
work stage(s) for which the target was set.
.cdr14_zone_type
Text
Feature (0 - 30)
Assigned to features representing exclusion zones,
describing zone type as set by the operator.
.center_fiducial
Boolean Comp.
(Yes, No)
Specifies component is expected to have a fiducial at its
center.
ODB++ Specification
262
Attribute
Type
Entity
.color
Text
.combined_size
Float
Feature (0 to 100000.0)j
Keep the original size for combined tools. If the tool is the
combined drill size, the attribute equals the combined drill
size. For non-combined tools, the attribute is undefined.
.comment
Text
Job
.comp
Option
.comp_height
Float
Comp.
(0.0 to 10.0)
Stores the height of the component above the board surface
.
.comp_htol_minus
Float
Comp.
(0.0 - 10.0)
Contains the minus tolerance for component height, used for
calculation of plug-in boards.
.comp_htol_plus
Float
Comp.
(0.0 - 10.0)
Contains the plus tolerance for component height, used for
calculation of plug-in boards.
.comp_ign_spacing
Boolean Comp.
Comp.
Comp.
.comp_ignore
.comp_mount_type
Option
Description
(0 to 500)
Used for general textual comments.
ODB++ Specification
263
Attribute
Type
Entity
Description
.comp_type
Option
Comp.
.comp_weight
Float
Comp.
(0.0 - 1000.0)
Stores the weight of the component (in ounces) for the
purpose of the total weight calculation.
.connection_id
Integer
.copper_weight
Float
Layer
.critical_net
.critical_tp
.cu_base
Boolean Layer
.customer
Text
(0 to 100)
This attribute is used for information purposes. It is used
specifically in the input process when processing the
lyr_rule file.
Job
axial
bga
cbga
cob
dip
discrete
discrete402
abel
pga
pihconn
pihmisc
plcc
pqfp
printed
qfp
radial
sip
smtconn
smtmisc
socket
soic
soj
sop
sot
tab
tqfp
tsoic
tsop
(0.0 to 1000.0)
The weight in ounces of one square inch of copper.
ODB++ Specification
264
Attribute
Type
Entity
Description
.cut_line
Integer
.deferred
.depth
Float
Layer
(1.0 - 1000.0)
Depth of drill layer in mils (applies to layers)
.design_center
Text
Step
(0-100)
The design center from which the job originated.
.design_origin_x
Integer
Job
.design_origin_y
Integer
Job
.drc_add_rad
Integer
Mania_
AOI
(0 to 100)
For AOI - add lines with this radius when adding shapes.
.drc_min_space
Integer
Mania_
AOI
(1 to 100)
Minimum spacing. (Obsolete)
.drc_min_width
Integer
Mania_
AOI
(1 to 100)
Minimum track width. (Obsolete)
.drill
Option
.drill_flag
Integer
Feature (0 to 100000)
Used by the Auto Drill Manager. It is an integer feature
attribute that should be used on the drill layer. When the Auto
Drill Manager package creates the NC Drills table it
separates the different drills based on several values: size,
drill type and also the value of this attribute. This is useful in
cases where specific drills need to be treated in a specific
way.
.drill_noopt
Boolean Feature Used by the 'Auto Drill Manager'. Feature attribute that is
used on the drill layers. Setting a group of drills with this
value will force the drill optimizer to keep the order within that
group. This is important for preventing the drill path to pass
through mechanical pins.
ODB++ Specification
265
Attribute
Type
Entity
Description
.drill_sr_zero
Option
Feature (1; 2; 3)
Used in the Auto Drill Manager to be assigned to a single drill
feature in the PCB step. If a single feature in a step is
assigned, it is used for setting the 'step & repeat zero offset'
of that step. That is, that feature will receive the coordinates (0,0) in the step & repeat block, and all other coordinates will
be relative to it. In order for this attribute to be used, other
configuration parameters of the package should be set.
.drill_stage
Option
Feature (1;2;3)
Used in the Auto Drill Manager on the drill layer. This
attribute receives three values - '1', '2', and '3', specifying the
drill stage of that specific drill hole/slot.
.dxf_dimension
Boolean Feature Assigned during DXF file input to mark its features as part of
a DXF dimension entity.
.eda_layers
Text
Job
.entity_version
Integer
Step,
(0 to 2147418112)
Symbol Counts the number of changes made in an entity (applies to
steps and symbols). Note - Do not modify!
.et_adjacency
Float
Layer
.et_align
.et_stamp
.etch_comp_addition
Boolean Feature
.etm_adapter_h
Integer
Step
.etm_constant_drill_usage
Option
.etm_height
Float
Layer
For the Job to Adapter option. Defines the height of the plate
in the adapter represented by the given layer.
.etm_mirror
Boolean Layer
For the Job to Adapter option. Updates the mirror of the drill
output transformation for the required plate.
.etm_pin_name
Text
Feature (0-64)
ETM pin name.
.etm_pin_style
Option
Step
(0 to 1000)
Contains the EDA system layer names which compose a
physical layer. It is loaded during the direct EDA translation
and is used for graphic synchronization with the EDA
system.
(1.0 to 1000.0)
A distance value (per layer) to use in netlist adjacency
calculation for moving probe testers (currently BSL and
PROBOT).
(0.000001-5000)
Adapter Height in Mils.
(Regular, Mania)
ETM Pin Guiding Style.
ODB++ Specification
266
Attribute
Type
Entity
Description
.etm_prim_sink_h
Float
Layer
(0.0 to 1000.0)
For the Job to Adapter option. Defines the depth of the
countersink from the board side of the plate for the required
plate.
.etm_prim_sink_r
Float
Layer
(0.0 to 1000.0)
Countersink Threshold radius on the primary side. (ET)
.etm_prim_sink_s
Float
Layer
(0.0 to 1000.0)
Countersink drill size on primary side. (ET)
.etm_repair_fmt
Option
Step
.etm_rotate
Option
Layer
.etm_sec_sink_h
Float
Layer
(0.0 to 1000.0)
For the Job to Adapter option in the ETM. Defines the depth
of the countersink for the grid side of the required plate.
.etm_sec_sink_r
Float
Layer
(0.0 to 1000.0)
(ETM). Countersink Threshold radius on secondary side.
.etm_sec_sink_s
Float
Layer
.etm_shift_x
Float
Layer
(-100000.0 to 100000.0)
For the Job to Adapter option in the ETM. Defines the x
offset of the drill output trnasformation for the given plate
(represented by the layer to which it is assigned).
.etm_shift_y
Float
Layer
(-100000.0 to 100000.0)
For the Job to Adapter option in the ETM. Defines the y
offset of the drill output trnasformation for the given plate
(represented by the layer to which it is assigned).
.etm_step_x
Float
Layer
(0.0 to 1000.0)
For the Job to Adapter option in the ETM. Defines the step of
the grid being defined on the x axis.
.etm_step_y
Float
Layer
(0.0 to 1000.0)
For the Job to Adapter option in the ETM. Defines the step of
the grid being defined on the y axis.
.etm_tester
Text
Step
.etm_thickness
Float
Layer
(0.0 to 1000.0)
For the Job to Adapter option in the ETM. Specifies the
thickness of the plate being defined.
ODB++ Specification
267
Attribute
Type
Entity
Description
.extended
Integer
.feed
Integer
Feature (0 to 100000)
For a chained feature, this attribute sets the table feed rate
when routing.
.fiducial_name
Text
Feature (0 to 64)
This attribute is used for etec output format. A pad that was
given a fiducial name is used for registration between layers.
.fill_dx
Float
.fill_dy
Float
.flipped_of
Text
Step;
Layer
.flipped_out_of_date
Boolean Step
.foot_down
Text
.fs_direction_bottom
Option
Step
.fs_direction_top
Option
Step
.full_plane
ODB++ Specification
268
Attribute
Type
Entity
Description
.generated_net_point
Boolean Feature Openings in the solder mask covering the outer layer which
expose locations that could be used as test points are
inserted into the layer as rectangular, square or round pads,
and marked with the attribute .generated_net_point.
.geometry
Text
Feature (0 to 100)
Contains the name of the padstack which created this
feature. It is loaded during direct EDA translation. For layers
which are created from component layers during the 'Draw to
Layer' operation, the attribute will contain (for centroid pads)
useful information on the component, package and part
name.
.global_camtek_aoiset
Text
Job
.gold_plating
.guard_comp
Boolean Comp.
.hatch
.hatch_border
.hatch_serrated_border
Boolean Feature Assigned to features that are added for partial hatch. The
difference between regular hatch and partial hatch is that in
partial hatch the cells along the border that intersect the
border line are filled; the feature(s) that fill these cells are
assigned this attribute.
.hp3070_common_pin
Text
Comp.
.hp3070_contact_pin
Text
Comp.
(0-80)
Contains the name of the AOIset to be assigned to each
layer upon layer selection in the CAMTEK AOI Interface.
Once a name is defined, the AOIset field in the CAMTEK
popup will be filled with this name and a new AOIset created
in the layer (if already exists, the AOIset will become the
current set). The value in this attribute overrides the value
defined in the configuration parameter
camtek_def_aoiset, but if no value is specified in this
attribute, the camtek_def_aoiset value will apply.
ODB++ Specification
269
Attribute
Type
Entity
Description
.hp3070_device
Text
Comp.
(0 -16)
The device of the component, one of the following:
All other components will be categorized as Undefined.
- CAPACITOR
- LIBRARY
- CONNECTOR - POTENTIOMETE
R
- DIODE
- RESISTOR
- FET
- SWITCH
- FUSE
- TRANSISTOR
- INDUCTOR
- ZENER
- JUMPER PIN
.hp3070_fail_msg
Text
Comp.
(0-64)
Specifies the failure message associated with the
component. This applies to all device types. In output of
HP3070 formats, the text field (within quotes) consisting of
the Part number and this error message will be truncated to
40 characters.
.hp3070_hi_value
Float
Comp.
(0-100000.0)
Specifies the upper test limit of the device. Its specific
meaning is dependent on the device type.
- For DIODE: Upper test limit, in volts for the diode's
forward bias voltage.
- For FET: The high resistance limit in ohms.
- For TRANSISTOR: The high limit for the transistor beta.
.hp3070_lo_value
Float
Comp.
(0-100000.0)
Specifies the lower test limit of the device. Its specific
meaning is dependent on the device type.
- For DIODE: Lower test limit, in volts, for the diode's
forward bias voltage.
- For FET: The low resistance limit in ohms.
- For TRANSISTOR: The low limit for the transistor beta.
.hp3070_probe_access
Text
Comp.
(0-64)
Specifies the probe access for the component and toeprint.
This value will be applied to ALL the pins of the component.
Known values are: PREFERRED, NO_PROBE, TOP, TOP
NO_ACCESS, BOTH MANDATORY, and MANDATORY
NO_MANUAL though other values are possible.
If toeprints are assigned this attribute, their settings override
the component setting.
.hp3070_seriesr
Float
Comp.
(0-100000.06)
For INDUCTOR devices this is used to specify the series
resistance (in Ohms).
.hp3070_test
Text
Comp.
ODB++ Specification
270
Attribute
Type
Entity
Description
.hp3070_tol_neg
Float
Comp.
(0-100)
This is a real value expressing the percent of the value to
use as a tolerance (negative tolerance). This is used for
devices:
- CAPACITOR
- INDUCTOR
- POTENTIOMETER
.hp3070_tol_pos
Float
Comp.
- RESISTOR
- ZENER
(0-100)
This is a real value expressing the percent of the value to
use as a tolerance (positive tolerance). This is used for the
devices:
- CAPACITOR
- INDUCTOR
- POTENTIOMETER
- RESISTOR
- ZENER
.hp3070_type
Text
Comp.
.hp3070_value
Text
Comp.
(0-16)
The value of the component. The meaning varies depending
on the component device. For CAPACITOR it is used for
capacitance (in Farads). For INDUCTOR it is the inductance
(in Henries). For PIN LIBRARY it is used for the PN (Part
Name). For the devices POTENTIOMETER and RESISTOR,
it is used for the device's resistance. For the ZENER device it
specifies the breakdown voltage (in Volts).
ODB++ Specification
271
Attribute
Type
Entity
Description
.ignore_action
.image_dx
.image_dy
Float
.imp_line
.ind_orient_req
Boolean Comp.
.infeed_speed
Integer
Feature (0 to 100000)
.inp_file
Text
Layer
.inp_net_name
Text
Feature (0 to 100)
This attribute contains netlist information sent by the DPF
input translator.
.inp_x_scale, .inp_y_scale
Float
Layer
.is_burried
Boolean Comp.
.is_capped
Boolean Feature Used on via pads on top & bottom signal layers to indicate
that the via is capped on this side.
.is_shadowed
Boolean Comp.
.jtag_component_id
Integer
(-9.99999 to 9.99999)
These attributes are used in input and output for NEC
format. During NEC input, the values of the GSCL NEC
command are stored in them. The NEC output writes the
GSCL command to the output file is the values are other
than 1.
Assigned to buried components specifically input from
CADIF files in order to mark them as buried. This attribute,
although specifically designed for CADIF files, can be used
in any other function or script.
Note that the attribute name is misspelled, but that is its
name.
Feature (1 to 100)
Component ID numbers are assigned to each JTAG feature
using this attribute. All pads belonging to the same JTAG
feature share the same ID number.
ODB++ Specification
272
Attribute
Type
Entity
.label_clearance
Boolean Comp.
.layer_class
Text
Layer
(0 to 1000)
Specifies layer classification.
.layer_dielectric
Float
Layer
.layer_hdi_type
Option
Layer
(Buildup; Core)
Distinguishes buildup layers from core layers in HDI jobs.
Some HDI categories are relevant to buildup or core layers
but not to both. Therefore, it is important to set this value
appropriately.
.local_fiducial_dist
Float
Comp.
(0.0 to 100.0)
Defines the allowed distance of fiducials from the outline of
the components which require local fiducials (See
.num_local_fiducial). If set to 0, the fiducials must be
included INSIDE the outline.
.lpol_done
Boolean Layer
.lpol_surf
.merge_processes
Text
.mount_hole
Boolean Feature Used on drill features to indicate that they are mounting
holes.
.n_electric
.naming_convention
Option
Step
Description
layer is a number.
When set to Layer name, output directory for each layer is
the layer name.
.nec_cbnk_blank_name
Text
Layer
.nec_n1_draw_num
Text
Layer
(0 to 20)
Contains drawing number and version number derived from
N1 records during NEC input translation.
.nec_n1_rev
Text
Layer
(0 to 2)
Contains revision number derived from N1 records during
NEC input translation.
.nec_n2_draw_num
Text
Layer
(0 to 20)
Contains drawing number and version number derived from
N2 records during NEC input translation.
ODB++ Specification
273
Attribute
Type
Entity
Description
.nec_n2_rev
Text
Layer
(0 to 2)
Contains revision number derived from N2 records during
NEC input translation.
.nec_n3_edit_level
Text
Layer
.nec_n3_lyr_type
Text
Layer
(0 to 3) min_length=0; max_length=3
Contains layer type information derived from N3 records
during NEC input translation.
.nec_n3_pol
Text
Layer
.nec_n3_prod_rev
Test
Layer
.nec_n3_target_layer
Text
Layer
.needs_guarding
Boolean Comp.
.net_point
Boolean Feature When assigned to a pad in an inner layer, defines the pad as
an internal test point.
.net_type
Text
Net
(0 to 64)
A name for the type of net. The .net_type attribute can
reference the set of routing rules for a net.
.neutralization_angle
Float
Comp.
(0.0-360.0)
An attribute attached to each Rotation Neutralization
processed component stating the angle of rotation counterclockwise from Valor standard orientation.
.neutralization_info
Text
Step
.neutralization_reviewed
Boolean Comp.
.neutralization_ss_layers
Text
(0 to 200)
Attached to the step where Rotation Neutralization has
been performed. This attribute designates which layers are
to be considered the silkscreen layers.
.nfp
Step
ODB++ Specification
274
Attribute
Type
Entity
.no_fiducial_check
Boolean Comp.
.no_hole_under
Boolean Comp.
.no_text_under
Boolean Comp.
.no_tp_under
Boolean Comp.
.no_uncap_via_under
Boolean Comp.
.non_tp
.notest_req
Boolean Feature Any pad assigned with this attribute will not be tested. If it is
tested by other means, drop back will be performed.
.num_local_fiducials
Integer
Comp.
(0 to 20)
Defines how many local fiducials are expected to be inside or
near a component. This is checked during Fiducial Analysis.
.numbered_layer
Text
Layer
(0 to 500)
This attribute marks a layer as a numbered layer in PCB
Numbering.
.orbotech_plot_stamp
.orig_surf
Integer
Feature (0 -1000000)
Identifies original surface which will be rebuilt.
.otherside_keepout
Option
Comp.
(full_area; pins_only)
Defines for components whether the other side of the board
may also contain components in the same area.
.out_angle
Option
Layer
.out_break
.out_comp
Float
Layer
Description
(-100.0 to 100.0)
Layer entity attributes with default values that are used by
the output translator. These values populate the output
screen when selecting the 'step' to be translated.
ODB++ Specification
275
Attribute
Type
Entity
.out_drill_full
Boolean Step
.out_drill_optional
Boolean Step
.out_drill_order
Integer
Step
(-10000 to 10000)
The STEP entity attribute used by the Auto Drill Manager.
The attribute controls the order in which the steps will be
drilled. Thus, who is first, second,,,etc.
The attribute has the following valid values:
0 - no special order for that step
1 - first
2 - second
3 - and above - order from the beginning
-1 - last
-2 - one before last
-3 - and on (drill order from the end)
.out_flag
Integer
.out_mirror
Boolean Layer
.out_name
Text
(0 to 64)
Entity attribute that is used by the Image output translator. If
this attribute is not an empty string it will serve as the entity
name on the Image system. If it is an empty string the
original system entity name will be used. This attribute is
important in cases where the Genesis name does not form a
legal Image name. If this attribute is not set, the Genesis
output translator decides about the new name with its own
internal algorithm.
.out_nc_ignore
Boolean Feature Indicates a feature is not output during drill or rout process.
.out_nc_verify
.out_polarity
Option
Step
Layer
Description
(Positive; Negative)
Layer entity attributes with default values that are used by
the output translator. These values populate the output
screen when selecting the step to be translated.
ODB++ Specification
276
Attribute
Type
Entity
.out_rout_optional
Boolean Step
.out_rout_order
Integer
(-10000 to 10000)
STEP entity attribute used by the Auto Drill Manager. The
attribute controls the order in which the steps will be drilled.
Thus, who is first, second,,,etc.
The attribute has the following valid values:
0 no special order for that step
1 first
2 second
3 and above order from the beginning
-1 last
-3 and on drill order from the end
.out_scale
.out_x_scale
Float
Layer
(0.000001 to 5.0)
Layer entity attributes with default values that are used by
the output translator. These values populate the output
screen when selecting the step to be translated.
.out_y_scale
Float
Layer
(0.000001 to 5.0)
Layer entity attributes with default values that are used by
the output translator. These values populate the output
screen when selecting the step to be translated.
.pad_usage
Option
Feature (toeprint;via;g_fiducial;l_fiducial;tooling_hole)
This attribute defines the specific usage of a pad. It is loaded
during the direct EDA translation and by the attribute
derivation script.
.patch
.pattern_fill
Boolean Feature Assigned to features which are added during a pattern fill
operation, either manually or through the Copper Balance
DFM action.
Step
Description
ODB++ Specification
277
Attribute
Type
Entity
Description
.pilot_hole
Integer
Feature (0 to 100000)
Attribute assigned to pads that are pilot holes in a chain
(holes that are drilled in each tool down in the chain rout path
before routing the chain). Pilot holes are set from the
chaining popup. The value of the attribute is the serial chain
number to which the pilot hole belongs. When merging or
inserting chains, the pilot holes are updated automatically.
.plated_type
Option
Feature Defines plated hole type in drill layers using the Attributes
popup or the Drill Tool Manager.
.pnl_class
Text
Step
(0-64)
The value of the attribute is the name of the panel class
whose parameters were used by the Automatic Panelization
algorithm. Used only when the step is created by the
Automatic Panelization Package.
.pnl_pcb
Text
Step
(0-64)
The value of the attribute is the name of the panelized PCB
whose parameters were used by the Automatic Panelization
algorithm. Used only when the step is created by the
Automatic Panelization Package.
.pnl_place
Text
Step;
(0-64)
Feature Applies to STEP and FEATURE. The value of the attribute is
the name of the placement rule used when an element was
added to the panel overlay. Used only when an element is
added to the panel overlay by the Automatic Panelization
Package.
.pnl_scheme
Text
Step
(0-64)
The value of the attribute is the name of the panelization
scheme whose rules were used in creating the panel overlay.
Used only when the panel step was created by the Auto
Panelization Package.
.polarity_marker
Integer
Comp.
(1-10000)
An attribute indicating which pin of the component is Pin 1.
(Default=1)
.primary_side
Option
Job
(Top; Bottom)
Indicates the primary side for this job.
.rotated_of
Text
Step
(0-64)
Source step of a rotated step
.rotation_angle
Float
Step
(-360.0 to 360.0)
Angle of rotation (in degrees) that this step was rotated
(applies to steps)
.rout_chain
Integer
Feature (0 to 100000)
Contains the serial number of the chain to which the feature
belongs. Features belonging to that chain are rearranged in
the features database according to their order inside the
chain. Additional attributes that are added to a chained
feature: .feed, .speed, .rout_flag, .comp
ODB++ Specification
278
Attribute
Type
Entity
Description
.rout_cutoff_feed
Integer
Feature (0 - 100000)
For a chained surface feature, defines the feed of the chain
cutoff.
.rout_flag
Integer
Feature
.rout_plated
.rout_plunge_feed
Integer
Feature (0 - 100000)
For a chained surface feature, defines the feed of the chain
plunge.
.rout_plunge_mode
Option
Feature (none;straight;overlap;arc;diag;diag_ang)
For a chained surface feature, defines the mode of the chain
plunge.
.rout_plunge_val_a
Float
.rout_plunge_val_b
Float
.rout_plunge_val_c
Float
.rout_plunge_val_d
Float
.rout_plunge_val_e
Float
.rout_plunge_val_f
Float
.rout_plunge_val_v1
Integer
.rout_plunge_val_v2
Integer
.rout_pocket_direction
Option
(0 to 100000).
For each chained feature this attribute represents a numeric
value supplied to a chain to provide data for the automatic
process of the Auto Rout Manager.
ODB++ Specification
279
Attribute
Type
Entity
Description
.rout_pocket_feed
Integer
Feature (0 - 100000)
For a chained surface feature, defines the feed of the chain
pocketing.
.rout_pocket_mode
Option
.rout_pocket_overlap
Float
.rout_tool
Float
.rout_tool2
Float
.rout_type
Option
.se_coupon
Option
Step
.se_coupon_direct
Option
Layer
(0;90;180;270)
Define the direction from the start point to the next point in
start/end coupon.
.se_coupon_dist
Float
Layer
(0 - 10000)
Distance is measured between drill/slot edges or centers in
start/end coupon.
.se_coupon_dist_type
Option
Layer
(Spacing; Center)
Distance is measured between drill/slot edges or centers in
start/end coupon.
.se_coupon_max_size
Float
Layer
(0.0 - 10000.0)
No verification holes will be created. for all tool sizes greater
than this parameter (mils/microns).
.se_coupon_method
Option
Layer
.se_coupon_min_hits
Integer
Layer
(0 - 10000)
Start/end drill coupon. If number of drills of certain tool is
less than required quantity, the verfication holes of this size
will not be created.
.se_coupon_min_size
Float
Layer
(0.0 - 10000.0)
No verification holes will be created. for all tool sizes less
than this parameter (mils/microns).
.se_coupon_mode
Option
Step
.se_coupon_order
Integer
Step
(1 - 100)
Sequential order of the start/end coupon steps of the same
type and mode.
ODB++ Specification
280
Attribute
Type
Entity
Description
.se_coupon_slot_angle
Float
Layer
(0.0 - 360.0)
Slot angle in start/end coupon (degrees).
.se_coupon_slot_length
Float
Layer
(0.0 - 10000.0)
Slot length for start/end coupon (mils/microns).
.se_coupon_split_num
Option
Step
(1;2)
A split number the start/end coupon belongs to.
.sequential_lamination
Boolean Layer
.shave
Boolean Feature Assigned to all the shaves (negative merges) that the silk
screen optimization adds in merge mode.
.sliver_fill
Boolean Feature Assigned to all the fills added by the sliver fill DFM actions.
.smd
.smt_direction_bottom
Option
Step
.smt_direction_top
Option
Step
.source_llayer
Text
Feature
(0-64)
This attribute is used by the Enterprise Mentor EDA
translator to identify the "Source Logical Layer" of features
(traces) appearing on signal or mixed layers. The translator
uses this attribute in a filtering stage that addresses pad/
signal mapping.
.source_name
Text
Step;
(0-64)
Symbol The name of the source step (or symbol) of a flipped step (or
symbol).
.spacing_req
Float
.speed
Integer
Feature (0 to 100000)
For a chained feature this attribute sets the spindle speed (in
revolutions per minute) when routing.
.spo_h_fact
Integer
.spo_h_mode
Integer
(No, Yes)
ODB++ Specification
281
Attribute
Type
Entity
Description
.spo_h_val
Integer
.spo_move_center
Integer
.sr_pcb
Boolean Step
(0.0 to 1000.0)
Indicates the name of the pcb step placed in the panel by
automatic panelization.
.src_orientation
Integer
Comp.
(-1 to 3)
Defines the zero orientation of this component relative to its
orientation in the packages database. That is, the orientation
of the component on the automated assembly tape, or (for
manually inserted components) the orientation in which pin
#1 is "in the same position" for all similar components.
.step_numbering
Text
Feature (0 to 500)
Text features used for PcB numbering are assigned this
attribute.
.string
Text
Feature (0 to 1000)
For nomenclature features, the value of this attribute is the
original text string which the feature is part of. During EDA
input, all occurrences of the asterisk character '*' are
replaced by the hyphen character '-' (the reason: when
filtering, the asterisk character '*' is used to denote any
substring match).
.string_angle
Float
Feature (0 to 360)
For nomenclature features, the value of this attribute is the
original (in the input file) text rotation angle which the feature
is part of.
This attribute is assigned to translated jobs of formats:
Cadence Allegro BRD/APD, Mentor BoardStation, PADS
PowerPCB.
.surface_outline_widths
Float
.tampering_feature
ODB++ Specification
282
Attribute
Type
Entity
Description
.tear_drop
Boolean Feature Assigned to features which are added during a tear drop
operation, either manually or through the Teardrop Creation
DFM action.
.test_point
Boolean Feature Assigned to features which are used for In-Circuit Testing
operations. It is loaded during the direct EDA translation and
is used during the Testpoint Analysis action. Also supported
in Zuken BD.
.test_potential
Option
.test_req
.text
Text
Symbol (0 to 1000)
Size of text content.
.text_line_width
Float
.text_rotation
Float
.text_x_size
Float
.text_y_size
Float
.thvpad_required
Boolean Comp.
.tie
.tiedown
.toep_spacing_req
Float
.tooling_hole
Boolean Feature Used on drill features to indicate that they are tooling holes.
Comp.
(1 to 500)
Assigned to components for reporting in the Toeprint to
Toeprint category in the Signal Layers Check in Analysis. It
defines the maximum spacing within which to report pad to
pad spacing measurements. Units: inch/mm
ODB++ Specification
283
Attribute
Type
Entity
Description
.transform_data
Text
Step
.via_type
Option
Feature
.viacap_layer
Option
Step
.wheel_type
Option
Wheel
(Gerber; Tools)
Specifies for a wheel whether it is used for Gerber files
translation or for drill file translation.
ODB++ Specification
284
Appendix C
C.1.
C.2.
When I wish to rotate a feature pad by 90 degrees is the aperture rotated left or right?
Clockwise.
C.3.
Regarding donuts, butterflies, thermals, and moires, do any of these symbols have
negative components?
Standard symbols are all positive. All holes in symbols are see-thru by definition.
C.4.
When the start and end-points of a feature coincide, is this considered a 360-degree arc
or a single point? Can I draw an arc with a square symbol?
A 360-degree arc; there are no single point arcs in the ODB++ database. Arcs can
be drawn only with a round symbol.
C.5.
When I specify an x,y location for text where will the text string be located?
The x,y coordinates will determine the bottom left corner position of the first
character of the text string.
C.6.
C.7.
In a netlist file, how is the radius field supposed to be set for drills of 0.002 inches thru
non-SMDs?
The radius field will be 0.001 mils in this case.
C.8.
ODB++ Specification
285
C.9.
For rectangular thermals can I define spoke angles at other than multiples of 45
degrees?
Rectangular thermals cannot have spoke angles of 45 degrees, only square/round
thermals can have angles that are non-multiples of 45 degrees.
C.10. Can feature files of user-defined symbols contain references to other user-defined
symbols?
Yes, they can. But recursion, direct or indirect is not allowed.
C.11. Regarding surfaces, is there a particular order in specifying holes and islands?
The order of containment must be preserved. Islands precede holes that are
contained in them. Holes precede islands that are contained in them.
Take, for example, the following containment order:
Island A
Island C
Island D
Hole B
Hole E
Natural Order:
A B C D E
Island D is separate
from Island A
C.14. If I want to offset e a rectangular pad in X or Y, should I a symbol and use the standard
valor definitions to create the offset. As an example, suppose we have a rect pad 70x50
with an X offset of 5. The feature file for the symbol I create would contain:
#
# Symbol name
#
$0 rect70x50
#
# Pad definition
#
P .005 .0 0 P 0 0
Is this correct?
Instead of defining your own symbols with offsets, you should use the standard
rect symbol and offset the coordinate that references it (in the layer features file).
ODB++ Specification
286
C.15. Why are user-defined symbols not scalable? This means that for every pad size which
does not fit in the standard I will have to create a new symbol.
Yes, that is right. User-defined special symbols cannot be scaled as standard
symbols can. You need to create a new symbol for each set of parameters (make the
name signify the dimensions of the symbol, such as: rect70x50, rect50x30, etc.).
See Symbols on page 22 for further details.
C.16. Regarding properties (PRP) on components, is there a list of properties that are
recognized by the system (such as with system attributes). Where can I find it? The same
goes for PRP in the eda/data file.
There is no list of predefined properties in the ODB++ database. These are EDAspecific.When we input Mentor data we read all the properties of the components
in the data. These properties are shown when displaying a component in the
Graphic Station. They can also be used to automatically set an attribute by calling a
function that maps properties to attributes.
C.19.
/steps/step_name/eda/data
A PKG record must be followed (the next line) by an outline record. check for
some PKG records that have PRP's before the outline and make sure you have an
outline defined.
C.21. We have an elaborate tool set to define routing slots and milling contours. How is this
data written to ODB++?
Milling (referred to as routing in Fabrication, and not to be confused with routing
of traces in design) is handled by defining a 'rout' layer (similar to a drill layer).
The features in this layer correspond to the outline of the shapes that need to be cut
out. A rout layer is like any other layer, but in order for it to be used during
fabrication, should contain only lines, arcs and circular pads (rout machines can
also drill).
ODB++ Specification
287
C.23. Is there any restriction on the maximum line length in an ODB++ file? Can comment
lines be more than 500 characters?
The restrictions are different for different files. In general 500 characters are the
limit, but there are exceptions. Any line over the defined limit will be read with the
remainder of the line ignored, so comments can be longer than the limit.
ODB++ Specification
288
ODB++ Specification
289
ODB++ Specification
290
ODB++ Specification
291
ODB++ Specification
292
ODB++ Specification
293
ODB++ Specification
294
ODB++ Specification
295