ODB++
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
ODB++ is a proprietary CAD-to-CAM data exchange format[1] used in the design and manufacture of electronic devices. Its purpose is to exchange printed circuit board design information between design and manufacturing and between design tools from different EDA/ECAD vendors.[2] It was originally developed by Valor Computerized Systems, Ltd. (acquired in 2010 by Mentor Graphics[3]) as the job description format for their CAM system.[2]
ODB stands for open database,[4] but its openness is disputed,[5] as discussed below. The '++' suffix, evocative of C++, was added in 1997 with the addition of component descriptions.[6] There are two versions of ODB++: the original (now controlled by Mentor) and an XML version called ODB++(X) that Valor developed and donated to the IPC organization in an attempt to merge GenCAM (IPC-2511) and ODB++ into Offspring (IPC-2581).[1][7][8][9]
Contents
Introduction
Inside almost every electronic device is a PCB onto which the semiconductor and other components are mechanically and electrically connected by soldering. These PCBs are designed using a computer-aided design (CAD) system.[10] To physically realize the design, the computerized design information must be transferred to a photolithographic computer-aided manufacturing (CAM) system.[11] Since the CAD and CAM systems are generally produced by different companies, they have to agree on a CAD-to-CAM data exchange format to transfer the data. ODB++ is one such file format for performing this transfer.[12] Other formats are compared and contrasted below. After the bare board is manufactured, the electronic components are placed and soldered, for example by SMT placement equipment and wave or reflow soldering.
File structure
When in use, ODB++ data is stored in a hierarchy of files and file folders.[13] However, for transmission it is convenient to use common operating system commands that create a single, compressed file that preserves the hierarchy information. For example, on Unix
and tar
commands can be used.[2] In ODB++(X), the database is contained in a single XML file by default.[9]gzip
ODB++ covers the specification of not only conductor layer artwork and drill data, but also material stack up, netlist with test points, component bill of materials, component placement, fabrication data, and dimension data.
History
Valor was founded in 1992[14] and it released ODB in 1995. It added the ++ suffix when component names were added in 1997. The XML version was developed beginning 2000,[6] and ended in 2008 with the donation to IPC.[15] Valor was acquired by Mentor in 2010.[3]
Adoption
In the late 1990s it became clear to industry participants that a second-generation data transfer format would be more efficient than the prevalent, first-generation Gerber format.[8] However, it was very difficult to reach a consensus over which of two candidates should be selected:
- ODB++: proven but proprietary
- IPC-2511 GenCAM: not widely used but open
In 2002, a compromise format, ODB++(X), was recommended by National Electronics Manufacturing Initiative (NEMI; an industry body, subsequently renamed International Electronics Manufacturing Initiative, iNEMI) after a two-year mediation effort between the GenCAM and ODB++ camps. Companies that supported the recommendation at the time included Cadence, Hewlett-Packard, Lucent, Easylogix, Mentor (which acquired Valor some eight years later), Nokia and Xerox.[1] But in fact adoption to date has been minimal.[15] As a result, and as detailed below, the industry is still divided.
Advocacy
Lists of EDA tools that support import and/or export of ODB++ have been compiled by Artwork Conversion Software,[16] Mentor itself,[17][18] and on the Comparison of EDA packages table. Some companies that have adopted the ODB++ format are advocates for its use. Streamline Circuits reports that ODB++ provides much greater efficiency than the competing Gerber format, stating that "an 8-layer printed circuit board can take up to 5 hours to plan and tool using Gerber and only 1 hour when using ODB++." According to Streamline, manufacturers are adopting it to overcome the limitations of the simpler Gerber format.[19] DownStream Technologies calls ODB++ "the defacto standard for intelligent data exchange in EDA"[20] In 2002, Dana Korf of Sanmina/SCI called ODB++ "the prevalent non-Gerber format."[1] Kent Balius of Viasystems, states of ODB++ "...really we don’t need anything else."[21]
Opposition
Lack of need
Ucamco, the developers of the Gerber format, argue that the prevalent Gerber-based flow (with some additions) can be as complete and efficient as ODB++.[22][dead link][23]
Concerns
ODB++ is a proprietary format controlled by Valor and now Mentor, and so, like all proprietary standards, it comes with the risk of vendor lock-in. CAD companies had some concerns about this when ODB++ was controlled by Valor, a CAM company, but these concerns were magnified when a rival CAD company, Mentor, acquired Valor.[15] Although Mentor claims that it "...openly supports inclusion of ODB++ and updates for other EDA tool vendors,"[24] it used to restrict access to the specification[25] and required a non-disclosure agreement.[2] The application form used to include a requirement to: "...Demonstrate a customer need for this integration through references from mutual customers. Provide a recommendation from a Mentor Graphics product division or demonstrate the incremental value of this integration to both Mentor Graphics and the partner company." Some direct competitors inferred this meant restricted access. This was a source of frustration not only for competitors[15] but also for the Mentor user community.[26]
In 2012, Julian Coates, director of business development at Mentor's Valor division claimed that, so far, all ODB++ partners, including competitors to Mentor, who have applied for assistance to build and maintain ODB++ interfaces via the ODB++ Solutions Alliance have been accepted without reservation or cost.[27] In addition, the format specification is now openly available via the ODB++ Solutions Alliance without the need for NDA.[28] Membership of the ODB++ Solutions Alliance is free of charge and open to anybody who registers. A no-charge ODB++ Viewer and other software utilities are available to registrants.[29]
Potential resolution
Critics of the proprietary nature of ODB++ point to several more open formats as models for a future consensus format:
- RS-274X ("extended Gerber format"): Although it is nominally proprietary to Ucamco, the specification can be downloaded freely[30] making it de facto an open standard.
- IPC-2511 ("GenCAM")[31] which resulted from a donation of certain technologies by Teradyne/GenRAD to IPC.[1]
- IPC-2581 ("Offspring")[7][32] an attempt to merge GenCAM with ODB++(X).[33] The specification can be downloaded freely.[34] In 2011, an industry consortium was created to support it, motivated in part by frustration with the proprietary nature of ODB++.[32] Cadence Design Systems, Zuken,[35] Artwork Conversion Software[36] and the owners of Gerber format, Ucamco, joined it,[37][38][39] but, initially, not Mentor.[15] However, in 2012, Mentor did join.[40] This, combined with the 2012 announcement by Zuken that it would join the ODB++ Solutions Alliance,[41] creates the possibility that PCB designers will have a choice of format no matter which EDA tool they choose.
- OpenAccess, which resulted from a transfer of certain technologies by Cadence to the Si2 organization.[42] Although it was originally designed for integrated circuits, it is now finding application for IC package and PCB design also.[43]
- JPCA-EB02 ("Fujiko")[44] based on work by Prof. Tomokage of Fukuoka University.[45]
- EDIF - Electronic Design Interchange Format
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
External links
- ODB++ Solutions Alliance, domain registered by Mentor Graphics
- ↑ 1.0 1.1 1.2 1.3 1.4 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 2.0 2.1 2.2 2.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 3.0 3.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ IPC-2581 Panel: A Spirited Discussion on PCB Data Transfer Formats, Richard Goering, Cadence Design Systems blog, October 2, 2011 on the panel session "Data Transfer in the 21st Century," PCB West conference, Santa Clara, California, September 29, 2011
- ↑ 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 8.0 8.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 9.0 9.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 15.0 15.1 15.2 15.3 15.4 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www.odb-sa.com/resources/
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 32.0 32.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Users Updating, Adopting IPC Data Transfer Spec, Printed Circuit Design and Fab magazine, Mike Buetow, 24 June 2011
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.