Integrate LEF/DEF 5.8 into the tree (Apache 2.0 licensing)

* New: As, starting from version 5.8, LEF/DEF parser/drivers are
    availables under Apache 2.0 license, integrate them inside the
    project. Rewrite the Makefiles into CMakeLists.txt, build only
    the C++ version. Create an entry for the LEF/DEF doc in the
    documentation.
This commit is contained in:
Jean-Paul Chaput 2017-10-30 15:38:29 +01:00
parent 4d6b06d368
commit c12a50b64b
1464 changed files with 258553 additions and 107 deletions

View File

@ -13,6 +13,7 @@ projects = [
}
, { 'name' : "coriolis"
, 'tools' : [ "bootstrap"
, "lefdef"
, "vlsisapd"
, "hurricane"
, "crlcore"

View File

@ -7,124 +7,121 @@
#
# The DEF C API library: LEFDEF_CDEF_LIBRARY
# LEFDEF_CDEF_LIBRARY_RELEASE
# LEFDEF_CDEF_LIBRARY_DEBUG
#
# The DEF C API library (zlib) : LEFDEF_ZCDEF_LIBRARY
# LEFDEF_ZCDEF_LIBRARY_RELEASE
# LEFDEF_ZCDEF_LIBRARY_DEBUG
#
# The DEF C++ API library: LEFDEF_DEF_LIBRARY
# LEFDEF_DEF_LIBRARY_RELEASE
# LEFDEF_DEF_LIBRARY_DEBUG
#
# The DEF C++ API library (zlib) : LEFDEF_ZDEF_LIBRARY
# LEFDEF_ZDEF_LIBRARY_RELEASE
# LEFDEF_ZDEF_LIBRARY_DEBUG
#
# The LEF C API library: LEFDEF_CLEF_LIBRARY
# LEFDEF_CLEF_LIBRARY_RELEASE
# LEFDEF_CLEF_LIBRARY_DEBUG
#
# The LEF C API library (zlib) : LEFDEF_ZCLEF_LIBRARY
# LEFDEF_ZCLEF_LIBRARY_RELEASE
# LEFDEF_ZCLEF_LIBRARY_DEBUG
#
# The LEF C++ API library: LEFDEF_LEF_LIBRARY
# LEFDEF_LEF_LIBRARY_RELEASE
# LEFDEF_LEF_LIBRARY_DEBUG
#
# The LEF C++ API library (zlib) : LEFDEF_ZLEF_LIBRARY
# LEFDEF_ZLEF_LIBRARY_RELEASE
# LEFDEF_ZLEF_LIBRARY_DEBUG
# Try to find a reasonable CORIOLIS_TOP value.
if( NOT("$ENV{CORIOLIS_USER_TOP}" STREQUAL "") )
set ( CORIOLIS_USER_TOP "$ENV{CORIOLIS_USER_TOP}" )
else( NOT("$ENV{CORIOLIS_USER_TOP}" STREQUAL "") )
if( NOT("$ENV{CORIOLIS_TOP}" STREQUAL "") )
set ( CORIOLIS_TOP "$ENV{CORIOLIS_TOP}" )
endif( NOT("$ENV{CORIOLIS_TOP}" STREQUAL "") )
endif( NOT("$ENV{CORIOLIS_USER_TOP}" STREQUAL "") )
macro( _find_lefdef_lib varname libname )
find_library( LEFDEF_${varname}_LIBRARY_RELEASE NAMES ${libname} PATHS ${LEFDEF_LIBRARY_DIR} )
find_library( LEFDEF_${varname}_LIBRARY_DEBUG NAMES ${libname}_Debug PATHS ${LEFDEF_LIBRARY_DIR} )
if( LEFDEF_${varname}_LIBRARY_RELEASE AND NOT LEFDEF_${varname}_LIBRARY_DEBUG )
set( LEFDEF_${varname}_LIBRARY_DEBUG ${LEFDEF_${varname}_LIBRARY_RELEASE} CACHE STRING "Path to a library" FORCE )
endif()
if( LEFDEF_${varname}_LIBRARY_DEBUG AND NOT LEFDEF_${varname}_LIBRARY_RELEASE )
set( LEFDEF_${varname}_LIBRARY_RELEASE LEFDEF_${varname}_LIBRARY_DEBUG CACHE STRING "Path to a library" FORCE )
endif()
if( LEFDEF_${varname}_LIBRARY_RELEASE )
list( APPEND LEFDEF_LIBRARIES "optimized" ${LEFDEF_${varname}_LIBRARY_RELEASE}
"debug" ${LEFDEF_${varname}_LIBRARY_DEBUG} )
set( LEFDEF_${varname}_LIBRARY_FOUND 1 )
mark_as_advanced( LEFDEF_${varname}_LIBRARY_RELEASE
LEFDEF_${varname}_LIBRARY_DEBUG )
else()
set ( LEFDEF_FOUND "NO" )
endif()
endmacro()
macro( _find_lefdef_lib varname libname )
find_library( LEFDEF_${varname}_LIBRARY_RELEASE NAMES ${libname} PATHS ${LEFDEF_LIBRARY_DIR} )
if( LEFDEF_${varname}_LIBRARY_RELEASE )
set( LEFDEF_${varname}_LIBRARY_DEBUG ${LEFDEF_${varname}_LIBRARY_RELEASE} CACHE STRING "Path to a library" FORCE )
endif()
if( LEFDEF_${varname}_LIBRARY_RELEASE )
list( APPEND LEFDEF_LIBRARIES "optimized" ${LEFDEF_${varname}_LIBRARY_RELEASE}
"debug" ${LEFDEF_${varname}_LIBRARY_DEBUG} )
set( LEFDEF_${varname}_LIBRARY_FOUND 1 )
mark_as_advanced( LEFDEF_${varname}_LIBRARY_RELEASE
LEFDEF_${varname}_LIBRARY_DEBUG )
else()
set ( LEFDEF_FOUND "NO" )
endif()
endmacro()
set( LEFDEF_INCLUDE_DIR_DESCRIPTION "directory containing the LEF/DEF include files. E.g /opt/lefdef-5.6/include" )
set( LEFDEF_LIBRARY_DIR_DESCRIPTION "directory containing the LEF/DEF library files. E.g /opt/lefdef-5.6/lib" )
set( LEFDEF_DIR_MESSAGE "Set the LEFDEF_INCLUDE_DIR cmake cache entry to the ${LEFDEF_INCLUDE_DIR_DESCRIPTION}" )
set( LEFDEF_INCLUDE_DIR_DESCRIPTION "directory containing the LEF/DEF include files. E.g /opt/lefdef-5.6/include" )
set( LEFDEF_LIBRARY_DIR_DESCRIPTION "directory containing the LEF/DEF library files. E.g /opt/lefdef-5.6/lib" )
set( LEFDEF_DIR_MESSAGE "Set the LEFDEF_INCLUDE_DIR cmake cache entry to the ${LEFDEF_INCLUDE_DIR_DESCRIPTION}" )
# Don't even bother under Win32
if ( UNIX )
set ( LEFDEF_FOUND "YES" )
set ( LEFDEF_SEARCH_PATH "$ENV{LEFDEF_TOP}"
if( UNIX )
set( LEFDEF_FOUND "YES" )
set( LEFDEF_SEARCH_PATH "$ENV{CORIOLIS_TOP}"
"$ENV{LEFDEF_TOP}"
"/usr"
"/opt/lefdef-5.6"
"/opt/lefdef-5.8"
"/opt/lefdef-5.7"
"/opt/lefdef-5.6"
"/opt/lefdef"
"$ENV{HOME}/oa/lefdef/5.7-s038"
"/soc/oa"
)
message("-- Components of LEFDEF_DIR_SEARCH:")
foreach(PATH ${LEFDEF_DIR_SEARCH})
message("-- ${PATH}")
endforeach(PATH)
set ( LEFDEF_LIBRARIES "" )
set ( LEFDEF_LIBRARY_SEARCH_PATH "" )
find_path ( LEFDEF_INCLUDE_DIR NAMES "defiDefs.h"
message( "-- Components of LEFDEF_DIR_SEARCH:" )
foreach( PATH ${LEFDEF_DIR_SEARCH} )
message( "-- ${PATH}" )
endforeach()
set( LEFDEF_LIBRARIES "" )
set( LEFDEF_LIBRARY_SEARCH_PATH "" )
find_path( LEFDEF_INCLUDE_DIR NAMES "defiDefs.h"
PATHS ${LEFDEF_SEARCH_PATH}
PATH_SUFFIXES "include" "include/lefdef"
DOC "The ${LEFDEF_INCLUDE_DIR_DESCRIPTION}" )
message( STATUS "LEFDEF_INCLUDE_DIR: ${LEFDEF_INCLUDE_DIR}" )
find_path ( LEFDEF_LIBRARY_DIR NAMES "libdef.a" "libdef_Debug.a"
message( STATUS "LEFDEF_INCLUDE_DIR: ${LEFDEF_INCLUDE_DIR}" )
find_path( LEFDEF_LIBRARY_DIR NAMES "libdef.a"
PATHS ${LEFDEF_SEARCH_PATH}
PATH_SUFFIXES "lib${LIB_SUFFIX}"
DOC "The ${LEFDEF_LIBRARY_DIR_DESCRIPTION}" )
message( STATUS "LEFDEF_LIBRARY_DIR: ${LEFDEF_LIBRARY_DIR}" )
if ( LEFDEF_INCLUDE_DIR AND LEFDEF_LIBRARY_DIR )
_find_lefdef_lib ( "CDEF" "cdef" )
_find_lefdef_lib ( "ZCDEF" "cdefzlib" )
_find_lefdef_lib ( "DEF" "def" )
_find_lefdef_lib ( "ZDEF" "defzlib" )
_find_lefdef_lib ( "CLEF" "clef" )
_find_lefdef_lib ( "ZCLEF" "clefzlib" )
_find_lefdef_lib ( "LEF" "lef" )
_find_lefdef_lib ( "ZLEF" "lefzlib" )
else ( LEFDEF_INCLUDE_DIR AND LEFDEF_LIBRARY_DIR )
set ( LEFDEF_FOUND "NO" )
endif ( LEFDEF_INCLUDE_DIR AND LEFDEF_LIBRARY_DIR )
if ( LEFDEF_FOUND )
message ( STATUS "Found LEF/DEF" )
add_definitions ( -DHAVE_LEFDEF )
if ( NOT LEFDEF_FIND_QUIETLY )
message ( STATUS "Found LEF/DEF" )
endif ( NOT LEFDEF_FIND_QUIETLY )
else ( LEFDEF_FOUND )
set ( LEFDEF_LIBRARIES "" )
set ( LEFDEF_INCLUDE_DIR "" )
set ( LEFDEF_LIBRARY_DIR "" )
if ( LEFDEF_FIND_REQUIRED )
message ( STATUS "LEF/DEF libraries and/or includes NOT found!" )
endif ( LEFDEF_FIND_REQUIRED )
endif ( LEFDEF_FOUND )
mark_as_advanced ( LEFDEF_INCLUDE_DIR LEFDEF_LIBRARY_DIR LEFDEF_LIBRARIES )
endif ( UNIX )
message( STATUS "LEFDEF_LIBRARY_DIR: ${LEFDEF_LIBRARY_DIR}" )
if( LEFDEF_INCLUDE_DIR AND LEFDEF_LIBRARY_DIR )
_find_lefdef_lib( "CDEF" "cdef" )
_find_lefdef_lib( "ZCDEF" "cdefzlib" )
_find_lefdef_lib( "DEF" "def" )
_find_lefdef_lib( "ZDEF" "defzlib" )
_find_lefdef_lib( "CLEF" "clef" )
_find_lefdef_lib( "ZCLEF" "clefzlib" )
_find_lefdef_lib( "LEF" "lef" )
_find_lefdef_lib( "ZLEF" "lefzlib" )
else()
set( LEFDEF_FOUND "NO" )
endif()
if( LEFDEF_FOUND )
add_definitions( -DHAVE_LEFDEF )
if( NOT LEFDEF_FIND_QUIETLY )
message( STATUS "Found LEF/DEF" )
endif()
else( LEFDEF_FOUND )
set( LEFDEF_LIBRARIES "" )
set( LEFDEF_INCLUDE_DIR "" )
set( LEFDEF_LIBRARY_DIR "" )
if( LEFDEF_FIND_REQUIRED )
message( STATUS "LEF/DEF libraries and/or includes NOT found!" )
endif()
endif( LEFDEF_FOUND )
mark_as_advanced( LEFDEF_INCLUDE_DIR LEFDEF_LIBRARY_DIR LEFDEF_LIBRARIES )
endif( UNIX )

View File

@ -92,7 +92,7 @@ namespace CRL {
// x-----------------------------------------------------------------x
# if HAVE_LEFDEF && defined(LEF_ENABLED)
#if defined(HAVE_LEFDEF) && defined(LEF_ENABLED)
#define CHECK_STATUS(status) \
if (status) { \
defwPrintError(status); \
@ -162,14 +162,14 @@ bool LessNet::operator () ( Net* net1, Net* net2 ) {
return false;
}
# endif // HAVE_LEFDEF
#endif // HAVE_LEFDEF
void defDriver ( const string cellPath, Cell *cell, unsigned int &saveState )
{
# if HAVE_LEFDEF && defined(LEF_ENABLED)
#if defined(HAVE_LEFDEF) && defined(LEF_ENABLED)
CDataBase* dataBase = GetCDataBase();
if ( dataBase == NULL )
throw CError ( NullDataBase, "CDrivDEF()" );
@ -663,9 +663,9 @@ void defDriver ( const string cellPath, Cell *cell, unsigned int &saveState )
CHECK_STATUS(status);
ccell.Close ();
# else // HAVE_LEFDEF
#else // HAVE_LEFDEF
cerr << "\nDummy LEF driver call for \"" << cellPath << "\"." << endl;
# endif // HAVE_LEFDEF
#endif // HAVE_LEFDEF
}

View File

@ -15,7 +15,7 @@
#include <memory>
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
# include "lefwWriter.hpp"
# include "defwWriter.hpp"
# include "defwWriterCalls.hpp"
@ -42,7 +42,7 @@
#include "crlcore/DefExport.h"
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
namespace {
@ -747,7 +747,7 @@ namespace CRL {
void DefExport::drive ( Cell* cell, unsigned int flags )
{
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
DefDriver::drive ( cell, flags );
if ( flags & WithLEF ) LefExport::drive ( cell, LefExport::WithTechnology|LefExport::WithSpacers );

View File

@ -17,7 +17,7 @@
#include <cstdio>
#include <cstring>
#include <memory>
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
# include "lefrReader.hpp"
# include "defrReader.hpp"
#endif
@ -39,7 +39,7 @@
#include "crlcore/DefImport.h"
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
namespace {
@ -591,7 +591,7 @@ namespace CRL {
UpdateSession::open ();
Cell* cell = NULL;
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
cell = DefParser::parse ( design+".def", flags );
#else
cerr << "[ERROR] CRL::DefImport::load(): \n"

View File

@ -37,7 +37,7 @@
#include "crlcore/LefDefExtension.h"
#include "LefDef.h"
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
# include "defrReader.hpp"
#endif
@ -82,7 +82,7 @@ namespace {
unsigned int __lefConvertFactor = 1;
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
// ---------------------------------------------------------------
// Module Global Functions.
@ -639,7 +639,7 @@ namespace CRL {
cmess2 << " " << tab << "+ " << cellPath << endl;
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
DataBase* db = DataBase::getDB ();
if ( !db ) throw Error ( NullDataBase, "defParser()" );

View File

@ -15,7 +15,7 @@
#include <memory>
#ifdef HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
#include "lefwWriter.hpp"
#include "lefwWriterCalls.hpp"
#endif
@ -41,7 +41,7 @@
#include "crlcore/LefExport.h"
#ifdef HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
namespace {
@ -717,7 +717,7 @@ namespace CRL {
void LefExport::drive ( Cell* cell, unsigned int flags )
{
#if HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
string libraryName = "symbolic";
set<Cell*> cells;
@ -751,7 +751,7 @@ namespace CRL {
void LefExport::drive ( Library* library, unsigned int flags )
{
#ifdef HAVE_LEFDEF
#if defined(HAVE_LEFDEF)
string libraryName = "symbolic";
set<Cell*> cells;

View File

@ -26,7 +26,7 @@
#include "hurricane/Cell.h"
#include "crlcore/AllianceFramework.h"
#include "LefDef.h"
#if HAVE_LEFDEF && defined(LEF_ENABLED)
#if defined(HAVE_LEFDEF) && defined(LEF_ENABLED)
# include "lefrReader.hpp"
#endif
@ -102,7 +102,7 @@ namespace CRL {
// x-----------------------------------------------------------------x
# if HAVE_LEFDEF && defined(LEF_ENABLED)
# if defined(HAVE_LEFDEF) && defined(LEF_ENABLED)
// -------------------------------------------------------------------
// Function : "badOpenTechno()".
@ -609,7 +609,7 @@ void lefParser ( const string libPath, Library* library, Catalog& catalog )
{
static int callNumber = 0;
# if HAVE_LEFDEF && defined(LEF_ENABLED)
#if defined(HAVE_LEFDEF) && defined(LEF_ENABLED)
if ( !library )
throw Error ( "lefParser() : Library argument is NULL." );
@ -633,9 +633,9 @@ void lefParser ( const string libPath, Library* library, Catalog& catalog )
clibrary.open ( "r" );
lefrRead ( clibrary.getFile(), getString(&clibrary).c_str(), (void*)userData );
clibrary.close ();
# else // HAVE_LEFDEF
#else // HAVE_LEFDEF
cerr << Warning("Dummy LEF parser call for %s.",libPath.c_str()) << endl;
# endif // HAVE_LEFDEF
#endif // HAVE_LEFDEF
callNumber++;
}
@ -647,7 +647,7 @@ void CParsLEFTechno ( string fileTechno )
{
static int callNumber = 0;
# if HAVE_LEFDEF && defined(LEF_ENABLED)
# if defined(HAVE_LEFDEF) && defined(LEF_ENABLED)
string nameTechno = fileTechno;
nameTechno.erase ( 0, nameTechno.find_last_of ("/")+1 );
@ -682,9 +682,9 @@ void CParsLEFTechno ( string fileTechno )
throw ( Error("CParsLEFTechno() : Can't open file %s", fileTechno.c_str()) );
lefrRead(inLefFile, fileTechno.c_str(), (void*)(long)userData);
# else // HAVE_LEFDEF
#else // HAVE_LEFDEF
cerr << Warning("Dummy LEF technology parser call for \"%s\".",fileTechno.c_str()) << endl;
# endif // HAVE_LEFDEF
#endif // HAVE_LEFDEF
callNumber++;
}

25
lefdef/CMakeLists.txt Normal file
View File

@ -0,0 +1,25 @@
# -*- mode: CMAKE explicit-buffer-name: "CMakeLists.txt<lefdef>" -*-
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
project(LEFDEF)
cmake_minimum_required(VERSION 2.8.9)
list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}$ENV{CORIOLIS_TOP}/share/cmake/Modules/")
find_package(Bootstrap REQUIRED)
setup_project_paths(CORIOLIS)
list(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
print_cmake_module_path()
set_cmake_policies()
set_lib_link_mode()
setup_sysconfdir("${CMAKE_INSTALL_PREFIX}")
find_package(BISON REQUIRED)
find_package(FLEX REQUIRED)
add_subdirectory(src)
if(BUILD_DOC)
add_subdirectory(doc)
endif()

14
lefdef/doc/CMakeLists.txt Normal file
View File

@ -0,0 +1,14 @@
# -*- mode: CMAKE explicit-buffer-name: "CMakeLists.txt<lefdef/doc>" -*-
set ( htmlInstallDir share/doc/coriolis2/en/html )
set ( latexInstallDir share/doc/coriolis2/en/pdf )
set ( pdfInstallDir share/doc/coriolis2/en/pdf )
install ( DIRECTORY support
lefapi
defapi
lefdefref DESTINATION ${htmlInstallDir}/lefdef )
install ( FILES lefapi/lefapi.pdf
defapi/defapi.pdf
lefdefref/lefdefref.pdf DESTINATION ${pdfInstallDir}/lefdef )

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,404 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html xmlns="http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>DEF 5.8 C/C++ Programming Interface -- 1</title>
<META NAME="Approver" CONTENT="Technical Publications">
<META NAME="Author" CONTENT="Technical Publications">
<META NAME="CreateDate" CONTENT="2017-04-18">
<META NAME="CreateTime" CONTENT="1492498753">
<META NAME="DataType" CONTENT="Manuals">
<META NAME="Description" CONTENT="Describes the C/C++ programming interface used to read and write Design Exchange Format (DEF) files.">
<META NAME="DocTitle" CONTENT="DEF 5.8 C/C++ Programming Interface">
<META NAME="DocType" CONTENT="Reference">
<META NAME="EdmsRelease" CONTENT="FM-Wiki-1.0_P005">
<META NAME="FileTitle" CONTENT="1">
<META NAME="FileType" CONTENT="Chapter">
<META NAME="Keyword" CONTENT="defapi">
<META NAME="Language" CONTENT="English">
<META NAME="ModifiedDate" CONTENT="2017-04-18">
<META NAME="ModifiedTime" CONTENT="1492498753">
<META NAME="NextFile" CONTENT="ch2DEFsetup.html">
<META NAME="PageCount" CONTENT="4">
<META NAME="Platform" CONTENT="ALL">
<META NAME="PrevFile" CONTENT="preface.html">
<META NAME="Product" CONTENT="Languages">
<META NAME="ProductFamily" CONTENT="Cadence Shared Tools">
<META NAME="ProductVersion" CONTENT="5.8">
<META NAME="RightsManagement" CONTENT="Copyright 2017 Cadence Design Systems Inc.">
<META NAME="Title" CONTENT="DEF 5.8 C/C++ Programming Interface -- 1">
<META NAME="TopicTags" CONTENT="FALSE">
<META NAME="Version" CONTENT="5.8">
</head>
<body style="margin-left: 5%;">
<a name="pagetop"></a>
<a name="firstpage"></a>
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="36" width="650" colspan="10">
<img src="images/header_doc.gif" width="650" height="34">
</td>
</tr>
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="preface.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch2DEFsetup.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td height="20">
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
<p>
<hr>
<p>
<h3>
<center>
<font >
<div>DEF 5.8 C&#47;C++ Programming Interface (Open Licensing Program)</div>
<font >
<div></div>
</font>
</font>
</center>
</h3>
<br>
</p>
<div>
<h1>1<a name="1008781">&nbsp;</a></h1>
<h1><a name="1011663">Introduction</a></h1>
<p><a name="1019037">This chapter contains the following sections:</a></p>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1021416" title="1" name="1021408"><font color="#0000ff"><u>Overview</u></font></a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#WorkingModes" title="1" name="1021939"><font color="#0000ff"><u>DEF Reader Working Modes</u></font></a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1021813" title="1" name="1021414"><font color="#0000ff"><u>Comparison Utility</u></font></a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1021606" title="1" name="1021605"><font color="Blue"><u>Compressed DEF Files</u></font></a><a href="#1021606" title="1"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1019049" title="1" name="1021415"><font color="Blue"><u>Orientation Codes</u></font></a><a href="#1019049" title="1"> </a></td>
</tr>
</table>
</div>
<h2><a name="1021416">Overview</a></h2>
<p><a name="1020024">This manual describes the application programming interface (API) routines for the following Cadence</a><font color="#000000"><sup>&#174;</sup></font> Design Exchange Format (DEF) components:</p>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a name="1020027">DEF reader</a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a name="1019124">DEF writer</a></td>
</tr>
</table>
</div>
<p><a name="1019110">Cadence Design Systems, Inc. uses these routines internally with many tools that read and write DEF. The API supports DEF version 5.8, but also reads earlier versions of DEF. </a></p>
<p><a name="1019156">You can use the API routines documented in this manual with tools that write these older versions, as long as none of the tools in an interdependent flow introduce newer constructs.</a></p>
<p><font color="#000000"><strong>Note: </strong></font><a name="1020080">The writer portion of the API does not always optimize the DEF output.</a></p>
<h2><a name="WorkingModes"></a><a name="1020014">DEF Reader Working Modes</a></h2>
<p><a name="1021832">The DEF reader can work in two modes &#45; compatibility mode and session&#45;based mode.</a></p>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a name="1021833">Compatibility mode (session&#45;less mode) &#45; This mode is compatible with the old parser behavior. You can call the parser initialization once with </a><font size="2" face="'Courier New'" color="#000000">defrInit()</font>, adjust parsing settings and initialize the parser callbacks any time. The properties once defined in <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> sections will be also defined in all subsequent file reads.</td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a name="1021834">Session&#45;based mode &#45; This mode introduces the concept of the parsing session. In this mode, the order of calling parsing configuration and processing API is strict:</a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="37"
<div>&nbsp;</div>
</td>
<td width="26" align="left">
<div>
<nobr><font color="#000000"><strong> a. </strong></font></nobr>
</div>
</td>
<td><a name="1021835">Parser initialization: Call </a><font size="2" face="'Courier New'" color="#000000">defrInitSession()</font> instead of <font size="2" face="'Courier New'" color="#000000">defrInit()</font> to start a new parsing session and close any old parsing session, if opened.</td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="37"
<div>&nbsp;</div>
</td>
<td width="26" align="left">
<div>
<nobr><font color="#000000"><strong> b. </strong></font></nobr>
</div>
</td>
<td><a name="1021836">Parser configuration: Call multiple callback setters and parsing parameters setting functions.</a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="37"
<div>&nbsp;</div>
</td>
<td width="26" align="left">
<div>
<nobr><font color="#000000"><strong> c. </strong></font></nobr>
</div>
</td>
<td><a name="1021837">Data processing: Do one or multiple parsing of DEF files with the </a><font size="2" face="'Courier New'" color="#000000">defrRead()</font> function.</td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="37"
<div>&nbsp;</div>
</td>
<td width="26" align="left">
<div>
<nobr><font color="#000000"><strong> d. </strong></font></nobr>
</div>
</td>
<td><a name="1021838">Cleaning of the parsing configuration: Call the </a><font size="2" face="'Courier New'" color="#000000">defrClear()</font> function (optional). The call releases all parsing session data and closes the parsing session. If this is skipped, the data cleaning and the session closing is done by the next <font size="2" face="'Courier New'" color="#000000">defrInitSession()</font> call. </td>
</tr>
</table>
</div>
<blockquote><a name="1021824">In the session&#45;based mode, the properties once defined in </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> remain active in all the DEF file parsing cycles in the session and the properties definition data is cleaned when the parsing session ends. </blockquote>
<blockquote><a name="1021908">The session&#45;based mode does not require you to call callbacks and property unsetter functions. All callbacks and properties are set to default by the next </a><font size="2" face="'Courier New'" color="#000000">defrInitSession()</font> call. </blockquote>
<blockquote><a name="1021915">The session&#45;based mode allows you to avoid the lasting </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> data effect when not required as you can just configure your application to parse one file per session.</blockquote>
<p><a name="1021893">By default, the DEF parser works in the compatibility mode. To activate the session&#45;based mode, you must use </a><font size="2" face="'Courier New'" color="#000000">defrInitSession()</font> instead of <font size="2" face="'Courier New'" color="#000000">defrInit()</font>. </p>
<p><font color="#000000"><strong>Note: </strong></font><a name="1021894">Currently, the compatibility mode can be used in all old applications where the code has not been adjusted. The </a><font size="2" face="'Courier New'" color="#000000">def2oa</font> translator has already been adjusted to use the session&#45;based parsing mode.</p>
<h2><a name="1021813">Comparison Utility</a></h2>
<p><a name="1020007">The DEF file comparison utility, </a><font size="2" face="'Courier New'" color="#000000">lefdefdiff</font>, helps you verify that your usage of the API is consistent and complete. This utility reads two DEF files, generally an initial file and the resulting file from reading in an application, then writes out a DEF file. The comparison utility reads and writes the data so that the UNIX <font size="2" face="'Courier New'" color="#000000">diff</font> utility can be used to compare the files. </p>
<p><a name="1020271">Because the DEF file comparison utility works incrementally (writing out as it operates), the size of files it can process has no limitation. However, large files can have performance restrictions. In general, the utility is intended only to verify the use of the API; that is, the utility is not a component of a production design flow.</a></p>
<h2><a name="1021606">Compressed DEF Files</a></h2>
<p><a name="1021607">The DEF reader can parse compressed DEF files. To do so, you must link the </a><font size="2" face="'Courier New'" color="#000000">libdef.a</font> and <font size="2" face="'Courier New'" color="#000000">libdefzlib.a</font> libraries. </p>
<p><a name="1021614">A zlib compression library is also required in order to read compressed DEF files. The zlib source code is free software that can be downloaded from </a><a href="http://www.gnu.org" target="external_window"><font color="#0000ff"><u>www.gnu.com</u></font></a>. </p>
<p><a name="1021620">For information on compressed file routines, see </a><a href="../defapi/ch7DEFcompressed.html" target="external_window"><font color="#0000ff"><u>"DEF Compressed File Routines."</u></font></a> </p>
<h2><a name="1019049">Orientation Codes</a></h2>
<p><a name="1019238">Orientation codes are used throughout the DEF reader routines. The orientation codes are the same for all routines.</a></p>
<p><a name="1019050">A number from 0 to 7, corresponding to the compass direction orientations, represents the orientation of a site or component. The following figure shows the combination of mirroring and rotation that is used for each of the eight possible orientations.</a></p>
<p align="left"><a name="1021249"><img src="images/ch1Intro.04.1.1.png" alt=""><br> </a></p>
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="440">
<caption>
<tr>
<td cellpadding="4" valign="top" width="220">
<p><a name="1021253">orient 0 = N</a></p>
</td>
<td cellpadding="4" valign="top" width="220">
<p><a name="1021255">orient 4 = FN</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1021257">orient 1 = W</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1021259">orient 5 = FW</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1021261">orient 2 = S</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1021263">orient 6 = FS</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1021265">orient 3 = E</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1021267">orient 7 = FE</a></p>
</td>
</tr>
</table>
<p><font color="#000000"><strong>Note: </strong></font><a name="1021203">The location given is the lower left corner of the resulting site or component after the mirroring and rotation are applied. It is </a><font color="#000000"><em>not</em></font> the location of the origin of the child cell.</p>
</div>
<br>
<a href="#pagetop">Return to top of page</a>
<hr>
<hr align="left">
<div style="text-align: left;">
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="preface.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch2DEFsetup.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td>
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
</div>
<br>
<font size="-1" >
For support, see <a href="http://support.cadence.com" target="_blank">Cadence Online Support</a> service.</font>
<br>
<br>
<font size="-1" >
<font size="-1"><i>Copyright &#169; 2016, <a href ="http://www.cadence.com">Cadence Design Systems, Inc.</a></i></font>
</font>
<br>
<font size="-1" >
All rights reserved.</font>
<br>
<br>
</body>
</html>

View File

@ -0,0 +1,484 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html xmlns="http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>DEF 5.8 C/C++ Programming Interface -- 2</title>
<META NAME="Approver" CONTENT="Technical Publications">
<META NAME="Author" CONTENT="Technical Publications">
<META NAME="CreateDate" CONTENT="2017-04-18">
<META NAME="CreateTime" CONTENT="1492498753">
<META NAME="DataType" CONTENT="Manuals">
<META NAME="Description" CONTENT="Describes the C/C++ programming interface used to read and write Design Exchange Format (DEF) files.">
<META NAME="DocTitle" CONTENT="DEF 5.8 C/C++ Programming Interface">
<META NAME="DocType" CONTENT="Reference">
<META NAME="EdmsRelease" CONTENT="FM-Wiki-1.0_P005">
<META NAME="FileTitle" CONTENT="2">
<META NAME="Keywords" CONTENT="">
<META NAME="FileType" CONTENT="Chapter">
<META NAME="Keyword" CONTENT="defapi">
<META NAME="Language" CONTENT="English">
<META NAME="ModifiedDate" CONTENT="2017-04-18">
<META NAME="ModifiedTime" CONTENT="1492498753">
<META NAME="NextFile" CONTENT="ch3DEFcallback.html">
<META NAME="PageCount" CONTENT="8">
<META NAME="Platform" CONTENT="ALL">
<META NAME="PrevFile" CONTENT="ch1Intro.html">
<META NAME="Product" CONTENT="Languages">
<META NAME="ProductFamily" CONTENT="Cadence Shared Tools">
<META NAME="ProductVersion" CONTENT="5.8">
<META NAME="Syntax" CONTENT="// Initialize the reader. This routine has to call first. defrInit();,// Open the def file for the reader to readif ((f = fopen(&quot;defInputFileName&quot;,&quot;r&quot;)) == 0) {printf(&quot;CouldnÕt open input file Õ%sÕ\n&quot;, &quot;defInputFileName&quot;);return(2);}// Invoke the parserres = defrRead(f, &quot;defInputFileName&quot;, (void*)userData);if (res != 0) {printf(&quot;DEF parser returns an error\n&quot;);return(2);}fclose(f);return 0;},// Set user datadefrSetUserData ((void *)3);,defiUserData defrGetUserData(),int defrClear(),int defrGetAllowComponentNets(),int defrInit(),int defrInitSession (int startSession = 1),int defrRead(FILE* file,const char* fileName,defiUserData* data,int case_sensitive),int setupRoutine() {FILE* f;int res;int userData = 0x01020304;...,int* defrUnusedCallbackCount(void),void defrPrintUnusedCallbacks(FILE* log),void defrSetAddPathToNet(void),void defrSetAllowComponentNets(void),void defrSetCommentChar(char c),void defrSetRegisterUnusedCallbacks(void),void defrSetUserData(defiUserData* data)">
<META NAME="RightsManagement" CONTENT="Copyright 2017 Cadence Design Systems Inc.">
<META NAME="Title" CONTENT="DEF 5.8 C/C++ Programming Interface -- 2">
<META NAME="TopicTags" CONTENT="FALSE">
<META NAME="Version" CONTENT="5.8">
</head>
<body style="margin-left: 5%;">
<a name="pagetop"></a>
<a name="firstpage"></a>
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="36" width="650" colspan="10">
<img src="images/header_doc.gif" width="650" height="34">
</td>
</tr>
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch1Intro.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch3DEFcallback.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td height="20">
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
<p>
<hr>
<p>
<h3>
<center>
<font >
<div>DEF 5.8 C&#47;C++ Programming Interface (Open Licensing Program)</div>
<font >
<div></div>
</font>
</font>
</center>
</h3>
<br>
</p>
<div>
<h1>2<a name="1008781">&nbsp;</a></h1>
<h1><a name="1014156">DEF Reader Setup and Control Routines</a></h1>
<p><a name="1019932">The Cadence</a><font color="#000000"><sup>&#174;</sup></font> Design Exchange Format (DEF) reader provides several routines that initialize the reader and set global variables that are used by the reader.</p>
<p><a name="1022612">The following routines described in this section set options for reading a DEF file.</a></p>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1014302" title="2" name="1022671"><font color="Blue"><u>defrInit</u></font></a><a href="#1014302" title="2"></a> </td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#defrInitSession" title="2" name="1022675"><font color="Blue"><u>defrInitSession</u></font></a><a href="#defrInitSession" title="2"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#defrClear" title="2" name="1022688"><font color="Blue"><u>defrClear</u></font></a><a href="#defrClear" title="2"></a> </td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1014311" title="2" name="1022679"><font color="Blue"><u>defrRead</u></font></a><a href="#1014311" title="2"></a> </td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1023039" title="2" name="1014164"><font color="Blue"><u>defrSetUserData</u></font></a><a href="#1023039" title="2"></a> </td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1023070" title="2" name="1014166"><font color="Blue"><u>defrGetUserData</u></font></a><a href="#1023070" title="2"></a> </td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1020122" title="2" name="1022240"><font color="Blue"><u>defrSetAddPathToNet</u></font></a><a href="#1020122" title="2"></a> </td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1020145" title="2" name="1022245"><font color="Blue"><u>defrSetAllowComponentNets</u></font></a><a href="#1020145" title="2"></a> </td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#defrGetAllowComponentNets" title="2" name="1022252"><font color="Blue"><u>defrGetAllowComponentNets</u></font></a><a href="#defrGetAllowComponentNets" title="2"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1020181" title="2" name="1020273"><font color="Blue"><u>defrSetCommentChar</u></font></a><a href="#1020181" title="2"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1020919" title="2" name="1020274"><font color="Blue"><u>defrSetRegisterUnusedCallbacks</u></font></a><a href="#1020919" title="2"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1021121" title="2" name="1020275"><font color="Blue"><u>defrPrintUnusedCallbacks</u></font></a><a href="#1021121" title="2"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1020237" title="2" name="1021275"><font color="Blue"><u>defrUnusedCallbackCount</u></font></a><a href="#1020237" title="2"> </a></td>
</tr>
</table>
</div>
<h2><a name="1021276">DEF API Routines</a></h2>
<p><a name="1021277">The following DEF reader setup and control routines are available in the API.</a></p>
<h3><a name="1014302">defrInit</a></h3>
<p><a name="1020554">Initializes internal variables in the DEF reader. You must use this routine before using </a><font size="2" face="'Courier New'" color="#000000">defrRead</font>. You can use other routines to set callback functions before or after this routine.</p>
<h4><a name="1020525">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020526">int defrInit()</a></font>
</dl>
<h3><a name="defrInitSession"></a><a name="1022277">defrInitSession</a></h3>
<p><a name="1022278">Starts a new parsing session and closes any old parsing session, if open. You must use this routine before using </a><font size="2" face="'Courier New'" color="#000000">defrRead</font>.</p>
<h4><a name="1022279">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1022280">int defrInitSession (<dd>int startSession = 1)</a></font>
</dl>
<h4><a name="1022363">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1022364"><font size="2" face="'Courier New'" color="#000000"><em>startSession</em></font></a></strong>
</p>
<blockquote><a name="1022931">Boolean. If is non&#45;zero, performs the parser initialization in session&#45;based mode; otherwise, the function will initialize parsing in the compatibility mode, working exactly as a </a><font size="2" face="'Courier New'" color="#000000">defrInit()</font> call.</blockquote>
<h3><a name="defrClear"></a><a name="1022408">defrClear</a></h3>
<p><a name="1022409">Releases all parsing session data and closes the parsing session. If the call to </a><font size="2" face="'Courier New'" color="#000000">defrClear()</font> is skipped, the data cleaning and the session closing is done by the next <font size="2" face="'Courier New'" color="#000000">defrInitSession()</font> call. </p>
<h4><a name="1022410">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1022411">int defrClear()</a></font>
</dl>
<h3><a name="1014311">defrRead</a></h3>
<p><a name="1020648">Specifies the DEF file to read. Any callbacks that have been set are called from within this routine. If the file parses with no errors, that is, all callbacks return OK condition codes, this routine returns zero.</a></p>
<h4><a name="1020569">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020570">int defrRead(<dd>FILE* </a><font color="#000000"><em>file,<dd></em></font>const char* <font color="#000000"><em>fileName,<dd></em></font>defiUserData* <font color="#000000"><em>data,<dd></em></font>int <font size="2" face="'Courier New'" color="#000000"><em>case_sensitive</em></font>)</font>
</dl>
<h4><a name="1022954">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1022955"><font size="2" face="'Courier New'" color="#000000"><em>file</em></font></a></strong>
</p>
<blockquote><a name="1022965">Specifies a pointer to an already open file. This allows the parser to work with either a disk file or a piped stream. This argument is required. Any callbacks that have been set will be called from within this routine. </a></blockquote>
<p>
<strong></strong>
<strong><a name="1022956"><font size="2" face="'Courier New'" color="#000000"><em>fileName</em></font></a></strong>
</p>
<blockquote><a name="1022991">Specifies a UNIX filename using either a complete or a relative path specification.</a></blockquote>
<p>
<strong></strong>
<strong><a name="1020998"><font size="2" face="'Courier New'" color="#000000"><em>data</em></font></a></strong>
</p>
<blockquote><a name="1023036">Specifies the data type.</a></blockquote>
<p>
<strong></strong>
<strong><a name="1023037"><font size="2" face="'Courier New'" color="#000000"><em>case_sensitive</em></font></a></strong>
</p>
<blockquote><a name="1023062">Specifies whether the data is case sensitive.</a></blockquote>
<h3><a name="1023039">defrSetUserData</a></h3>
<p><a name="1020681">Sets the user&#45;provided data. The DEF reader does not look at this data, but passes an opaque </a><font size="2" face="'Courier New'" color="#000000">defiUserData</font> pointer back to the application with each callback. You can set or change the user data at any time using the <font size="2" face="'Courier New'" color="#000000">defrSetUserData</font> and <font size="2" face="'Courier New'" color="#000000">defrGetUserData</font> routines. Every callback returns user data as the third argument.</p>
<h4><a name="1020658">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020659">void defrSetUserData(<dd>defiUserData* </a><font color="#000000"><em>data</em></font>)</font>
</dl>
<h4><a name="1023067">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1023068"><font size="2" face="'Courier New'" color="#000000"><em>data</em></font></a></strong>
</p>
<blockquote><a name="1023078">Specifies the user&#45;provided data.</a></blockquote>
<h3><a name="1023070">defrGetUserData</a></h3>
<p><a name="1020748">Retrieves the user&#45;provided data. The DEF reader returns an opaque </a><font size="2" face="'Courier New'" color="#000000">defiUserData</font> pointer, which you set using <font size="2" face="'Courier New'" color="#000000">defrSetUserData</font>. You can set or change the user data at any time with the <font size="2" face="'Courier New'" color="#000000">defrSetUserData</font> and <font size="2" face="'Courier New'" color="#000000">defrGetUserData</font> calls. Every callback returns the user data as the third argument.</p>
<h4><a name="1020709">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020710">defiUserData defrGetUserData()</a></font>
</dl>
<h3><a name="1020122">defrSetAddPathToNet</a></h3>
<p><a name="1020790">Adds path data to the appropriate net data. When the net callback is used, the net class and structure information and the path information are returned. This statement does not require any additional arguments.</a></p>
<h4><a name="1020767">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020768">void defrSetAddPathToNet(void)</a></font>
</dl>
<h3><a name="1020145">defrSetAllowComponentNets</a></h3>
<p><a name="1020825">Ignores component net information. Component nets are valid DEF syntax but are no longer used. By default, the DEF reader reports component net data as a syntax error. This routine overrides the default so no error is reported. This statement does not require any additional arguments.</a></p>
<h4><a name="1020801">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020802">void defrSetAllowComponentNets(void)</a></font>
</dl>
<h3><a name="defrGetAllowComponentNets"></a><a name="1022194">defrGetAllowComponentNets</a></h3>
<p><a name="1022195">Returns non&#45;zero value if component nets are allowed. </a></p>
<h4><a name="1022196">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1022197">int defrGetAllowComponentNets()</a></font>
</dl>
<h3><a name="1020181">defrSetCommentChar</a></h3>
<p><a name="1020879">Changes the character used to indicate comments in the DEF file.</a></p>
<h4><a name="1020861">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020862">void defrSetCommentChar(char </a><font color="#000000"><em>c</em></font>)</font>
</dl>
<h4><a name="1023101">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1023130"><font size="2" face="'Courier New'" color="#000000"><em>c</em></font></a></strong>
</p>
<blockquote><a name="1023139">Specifies the comment character. The default is a pound sign (</a><font size="2" face="'Courier New'" color="#000000">#</font>).</blockquote>
<h3><a name="1020919">defrSetRegisterUnusedCallbacks</a></h3>
<p><a name="1021064">Keeps track of all the callback routines that are not set. You can use this routine to keep track of DEF constructs that are in the input file but do not trigger a callback. This statement does not require any additional arguments.</a></p>
<h4><a name="1020920">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1021119">void defrSetRegisterUnusedCallbacks(void)</a></font>
</dl>
<h3><a name="1021121">defrPrintUnusedCallbacks</a></h3>
<p><a name="1021068">Prints all callback routines that are not set but have constructs in the DEF file. </a></p>
<h4><a name="1020937">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020938">void defrPrintUnusedCallbacks(FILE* </a><font color="#000000"><em>log</em></font>)</font>
</dl>
<h4><a name="1021210">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1021211"><font size="2" face="'Courier New'" color="#000000"><em>log</em></font></a></strong>
</p>
<blockquote><a name="1023114">Specifies the file to which the unused callbacks are printed.</a></blockquote>
<h3><a name="1020237">defrUnusedCallbackCount</a></h3>
<p><a name="1021082">Returns the number of callback routines that are not set. That is, routines that have constructs in the input file but no callback trigger. This statement does not require any additional arguments.</a></p>
<h4><a name="1020948">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020949">int* defrUnusedCallbackCount(void)</a></font>
</dl>
<h3><a name="1021641">Example</a></h3>
<p><a name="1021642">The following example shows how to initialize the reader. </a></p>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1021643">int setupRoutine() {<dd>&nbsp;&nbsp;&nbsp;&nbsp;FILE* f;<dd>&nbsp;&nbsp;&nbsp;&nbsp;int res;<dd>&nbsp;&nbsp;&nbsp;&nbsp;int userData = 0x01020304;<dd>&nbsp;&nbsp;&nbsp;&nbsp;...</a></font>
</dl>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1021964"><dd>&nbsp;&nbsp;&nbsp;&nbsp;&#47;&#47; &nbsp;&nbsp;&nbsp;&nbsp;Initialize the reader. This routine has to call first. <dd>&nbsp;&nbsp;&nbsp;&nbsp;defrInit();</a></font>
</dl>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1021967"><dd>&nbsp;&nbsp;&nbsp;&nbsp;&#47;&#47; Set user data<dd>&nbsp;&nbsp;&nbsp;&nbsp;defrSetUserData ((void *)3);</a></font>
</dl>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1021968"><dd>&nbsp;&nbsp;&nbsp;&nbsp;&#47;&#47; Open the def file for the reader to read<dd>&nbsp;&nbsp;&nbsp;&nbsp;if ((f = fopen(&#34;defInputFileName&#34;,&#34;r&#34;)) == 0) {<dd>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;Couldn't open input file '%s'\n&#34;, <dd>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;defInputFileName&#34;);<dd>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(2);<dd>&nbsp;&nbsp;&nbsp;&nbsp;}<dd>&nbsp;&nbsp;&nbsp;&nbsp;&#47;&#47; Invoke the parser<dd>&nbsp;&nbsp;&nbsp;&nbsp;res = defrRead(f, &#34;defInputFileName&#34;, (void*)userData);<dd>&nbsp;&nbsp;&nbsp;&nbsp;if (res != 0) {<dd>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;DEF parser returns an error\n&#34;);<dd>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(2);<dd>&nbsp;&nbsp;&nbsp;&nbsp;}<dd>&nbsp;&nbsp;&nbsp;&nbsp;fclose(f);<dd>&nbsp;&nbsp;&nbsp;&nbsp;return 0;}</a></font>
</dl>
<p><a name="1021974">&nbsp;</a></p>
</div>
<br>
<a href="#pagetop">Return to top of page</a>
<hr>
<hr align="left">
<div style="text-align: left;">
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch1Intro.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch3DEFcallback.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td>
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
</div>
<br>
<font size="-1" >
For support, see <a href="http://support.cadence.com" target="_blank">Cadence Online Support</a> service.</font>
<br>
<br>
<font size="-1" >
<font size="-1"><i>Copyright &#169; 2016, <a href ="http://www.cadence.com">Cadence Design Systems, Inc.</a></i></font>
</font>
<br>
<font size="-1" >
All rights reserved.</font>
<br>
<br>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,737 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html xmlns="http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>DEF 5.8 C/C++ Programming Interface -- 5</title>
<META NAME="Approver" CONTENT="Technical Publications">
<META NAME="Author" CONTENT="Technical Publications">
<META NAME="CreateDate" CONTENT="2017-04-18">
<META NAME="CreateTime" CONTENT="1492498753">
<META NAME="DataType" CONTENT="Manuals">
<META NAME="Description" CONTENT="Describes the C/C++ programming interface used to read and write Design Exchange Format (DEF) files.">
<META NAME="DocTitle" CONTENT="DEF 5.8 C/C++ Programming Interface">
<META NAME="DocType" CONTENT="Reference">
<META NAME="EdmsRelease" CONTENT="FM-Wiki-1.0_P005">
<META NAME="FileTitle" CONTENT="5">
<META NAME="Keywords" CONTENT="">
<META NAME="FileType" CONTENT="Chapter">
<META NAME="Keyword" CONTENT="defapi">
<META NAME="Language" CONTENT="English">
<META NAME="ModifiedDate" CONTENT="2017-04-18">
<META NAME="ModifiedTime" CONTENT="1492498753">
<META NAME="NextFile" CONTENT="ch6DEFwriter.html">
<META NAME="PageCount" CONTENT="4">
<META NAME="Platform" CONTENT="ALL">
<META NAME="PrevFile" CONTENT="ch4DEFclasses.html">
<META NAME="Product" CONTENT="Languages">
<META NAME="ProductFamily" CONTENT="Cadence Shared Tools">
<META NAME="ProductVersion" CONTENT="5.8">
<META NAME="Syntax" CONTENT="int UserCallbackFunctions(defwCallbackType_e callBackType,defiUserData data)">
<META NAME="RightsManagement" CONTENT="Copyright 2017 Cadence Design Systems Inc.">
<META NAME="Title" CONTENT="DEF 5.8 C/C++ Programming Interface -- 5">
<META NAME="TopicTags" CONTENT="FALSE">
<META NAME="Version" CONTENT="5.8">
</head>
<body style="margin-left: 5%;">
<a name="pagetop"></a>
<a name="firstpage"></a>
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="36" width="650" colspan="10">
<img src="images/header_doc.gif" width="650" height="34">
</td>
</tr>
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch4DEFclasses.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch6DEFwriter.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td height="20">
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
<p>
<hr>
<p>
<h3>
<center>
<font >
<div>DEF 5.8 C&#47;C++ Programming Interface (Open Licensing Program)</div>
<font >
<div></div>
</font>
</font>
</center>
</h3>
<br>
</p>
<div>
<h1>5<a name="1016501">&nbsp;</a></h1>
<h1><a name="1016502">DEF Writer Callback Routines</a></h1>
<p><a name="1014242">You can use the Cadence</a><font color="#000000"><sup>&#174;</sup></font> Design Exchange Format (DEF) writer with callback routines, or you can call one writer function at a time.</p>
<p><a name="1016956">When you use callback routines, the writer creates a DEF file in the sequence shown in the following table. The writer also checks which sections are required for the file. If you do not provide a callback for a required section, the writer uses a default routine. If no default routine is available for a required section, the writer generates an error message.</a></p>
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="588">
<caption>
<tr>
<td cellpadding="4" border="0" bordercolor="#D3D3D3" valign="middle" width="240">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1017167">Section</a></strong></font>
</p>
</td>
<td cellpadding="4" border="0" bordercolor="#D3D3D3" valign="middle" width="252">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1017169">Required</a></strong></font>
</p>
</td>
<td cellpadding="4" border="0" bordercolor="#D3D3D3" valign="middle" width="96">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1017171">Default Available</a></strong></font>
</p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017447">Version</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017471">yes</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017495">yes</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017451">Bus Bit Characters</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017475">yes</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017499">yes</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017453">Divider</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017477">yes</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017501">yes</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017455">Design</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017479">yes</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017503">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017457">Technology</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017481">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017505">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017463">Units</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017487">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017511">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017465">History</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017489">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017513">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017467">Property Definition</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017491">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017515">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017469">Die Area</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017493">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017517">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017519">Rows</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017521">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017523">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017525">Tracks</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017527">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017529">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017669">Gcell Grid</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017671">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017673">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017645">Vias</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017647">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017649">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017639">Regions</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017641">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017643">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017633">Components</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017635">yes</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017637">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017627">Pins</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017629">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017631">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017621">Pin Properties</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017623">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017625">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017615">Special Nets</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017617">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017619">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017609">Nets</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017611">yes</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017613">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017597">Scan chains</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017599">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017601">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017585">Groups</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017587">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017589">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" valign="top">
<p><a name="1017579">Extensions</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017581">no</a></p>
</td>
<td cellpadding="4" valign="top">
<p><a name="1017583">no</a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
<p><a name="1017675">Design End</a></p>
</td>
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
<p><a name="1017677">yes</a></p>
</td>
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
<p><a name="1017679">no</a></p>
</td>
</tr>
</table>
<h2><a name="1017159">Callback Function Format</a></h2>
<p><a name="1014302">All callback functions use the following format.</a></p>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1018092">int UserCallbackFunctions(<dd>defwCallbackType_e </a><font size="2" face="'Courier New'" color="#000000"><em>callBackType</em></font>,<dd>defiUserData <font size="2" face="'Courier New'" color="#000000"><em>data</em></font>)</font>
</dl>
<h3><a name="1014342">Callback Type</a></h3>
<p><a name="1015949">The </a><font size="2" face="'Courier New'" color="#000000">callBackType</font> argument is a list of objects that contains a unique number assignment for each callback from the parser. This list allows you to use the same callback routine for different types of DEF data.</p>
<h3><a name="1015950">User Data</a></h3>
<p><a name="1015951">The data argument is a four&#45;byte data item that you set. The DEF writer contains only user data. The user data is most often set to a pointer to the design data so that it can be passed to the routines. </a></p>
<h2><a name="1014352">Callback Types and Setting Routines</a></h2>
<p><a name="1016006">The following table lists the DEF writer callback&#45;setting routines and the associated callback types.</a></p>
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="640">
<caption>
<tr>
<td cellpadding="4" border="0" valign="middle" width="120">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1016009"><font color="#000000"><strong>DEF Information</strong></font></a></strong></font>
</p>
</td>
<td cellpadding="4" border="0" valign="middle" width="269">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1016011">&nbsp;</a></strong></font>
</p>
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1016951">Setting Routine</a></strong></font>
</p>
</td>
<td cellpadding="4" border="0" valign="middle" width="250">
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1016013"> </a></strong></font>
</p>
<p>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1016950">Callback Types</a></strong></font>
</p>
</td>
</tr>
<tr>
<td cellpadding="4" border="1" valign="top">
<p><a name="1018085">Blockages</a></p>
</td>
<td cellpadding="4" border="1" valign="top">
<p><a name="1018087"><font color="#000000">void defwSetBlockageCbk <br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="1" valign="top">
<p><a name="1018089"><font color="#000000">defwBlockageCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016028">Bus Bit Characters</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016030"><font size="2" face="'Courier New'" color="#000000">void defwSetBusBitCbk<br>(</font></a>defwVoidCbkFnType)</p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016032"><font size="2" face="'Courier New'" color="#000000">defwBusBitCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016052">Components</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016054"><font size="2" face="'Courier New'" color="#000000">void defwSetComponentCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016056"><font size="2" face="'Courier New'" color="#000000">defwComponentCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016070">Design</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016072"><font size="2" face="'Courier New'" color="#000000">void defwSetDesignCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016074"><font size="2" face="'Courier New'" color="#000000">defwDesignCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016076">Design End</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016078"><font size="2" face="'Courier New'" color="#000000">void defwSetDesignEndCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016080"><font size="2" face="'Courier New'" color="#000000">defwDesignEndCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016082">Die Area</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016084"><font size="2" face="'Courier New'" color="#000000">void defwSetDieAreaCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016086"><font size="2" face="'Courier New'" color="#000000">defwDieAreaCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016088">Divider</a><font color="#000000"><strong> </strong></font></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016090"><font size="2" face="'Courier New'" color="#000000">void defwSetDividerCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016092"><font size="2" face="'Courier New'" color="#000000">defwDividerCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016094">Extensions</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016096"><font size="2" face="'Courier New'" color="#000000">void defwSetExtCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016098"><font size="2" face="'Courier New'" color="#000000">defwExtCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016106">Gcell Grid</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016108"><font size="2" face="'Courier New'" color="#000000">void defwSetGcellGridCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016110"><font size="2" face="'Courier New'" color="#000000">defwGcellGridCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016112">Groups</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016114"><font size="2" face="'Courier New'" color="#000000">void defwSetGroupCbk<br>(defwVoidFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016116"><font size="2" face="'Courier New'" color="#000000">defwGroupCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016118">History</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016120"><font size="2" face="'Courier New'" color="#000000">void defwSetHistoryCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016122"><font size="2" face="'Courier New'" color="#000000">defwHistoryCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016130">Nets</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016132"><font size="2" face="'Courier New'" color="#000000">void defwSetNetCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016134"><font size="2" face="'Courier New'" color="#000000">defwNetCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016136">Pins</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016138"><font size="2" face="'Courier New'" color="#000000">void defwSetPinCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016140"><font size="2" face="'Courier New'" color="#000000">defwPinCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016142">Pin Properties</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016144"><font size="2" face="'Courier New'" color="#000000">void defwSetPinPropCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016146"><font size="2" face="'Courier New'" color="#000000">defwPinPropCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016148">Property Definitions</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016150"><font size="2" face="'Courier New'" color="#000000">void defwSetPropDefCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016152"><font size="2" face="'Courier New'" color="#000000">defwPropDefCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016154">Regions</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016156"><font size="2" face="'Courier New'" color="#000000">void defwSetRegionCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016158"><font size="2" face="'Courier New'" color="#000000">defwRegionCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016160">Rows</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016162"><font size="2" face="'Courier New'" color="#000000">void defwSetRowCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016164"><font size="2" face="'Courier New'" color="#000000">defwRowCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016166">Special Nets</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016168"><font size="2" face="'Courier New'" color="#000000">void defwSetSNetCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016170"><font size="2" face="'Courier New'" color="#000000">defwSNetCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016172">Scan Chains</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016174"><font size="2" face="'Courier New'" color="#000000">void defwSetScanchainCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016176"><font size="2" face="'Courier New'" color="#000000">defwScanchainCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016178">Technology</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016180"><font size="2" face="'Courier New'" color="#000000">void defwSetTechnologyCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016182"><font size="2" face="'Courier New'" color="#000000">defwTechCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016184">Tracks</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016186"><font size="2" face="'Courier New'" color="#000000">void defwSetTrackCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016188"><font size="2" face="'Courier New'" color="#000000">defwTrackCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016190">Units</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016192"><font size="2" face="'Courier New'" color="#000000">void defwSetUnitsCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016194"><font size="2" face="'Courier New'" color="#000000">defwUnitsCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016196">Version</a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016198"><font size="2" face="'Courier New'" color="#000000">void defwSetVersionCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="0" valign="top">
<p><a name="1016201"><font size="2" face="'Courier New'" color="#000000">defwVersionCbkType</font></a></p>
</td>
</tr>
<tr>
<td cellpadding="4" border="1" valign="top">
<p><a name="1016203">Vias</a></p>
</td>
<td cellpadding="4" border="1" valign="top">
<p><a name="1016205"><font size="2" face="'Courier New'" color="#000000">void defwSetViaCbk<br>(defwVoidCbkFnType)</font></a></p>
</td>
<td cellpadding="4" border="1" valign="top">
<p><a name="1016207"><font size="2" face="'Courier New'" color="#000000">defwViaCbkType</font></a></p>
</td>
</tr>
</table>
<p><a name="1014355">&nbsp;</a></p>
</div>
<br>
<a href="#pagetop">Return to top of page</a>
<hr>
<hr align="left">
<div style="text-align: left;">
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch4DEFclasses.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch6DEFwriter.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td>
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
</div>
<br>
<font size="-1" >
For support, see <a href="http://support.cadence.com" target="_blank">Cadence Online Support</a> service.</font>
<br>
<br>
<font size="-1" >
<font size="-1"><i>Copyright &#169; 2016, <a href ="http://www.cadence.com">Cadence Design Systems, Inc.</a></i></font>
</font>
<br>
<font size="-1" >
All rights reserved.</font>
<br>
<br>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,320 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html xmlns="http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>DEF 5.8 C/C++ Programming Interface -- 7</title>
<META NAME="Approver" CONTENT="Technical Publications">
<META NAME="Author" CONTENT="Technical Publications">
<META NAME="CreateDate" CONTENT="2017-04-18">
<META NAME="CreateTime" CONTENT="1492498753">
<META NAME="DataType" CONTENT="Manuals">
<META NAME="Description" CONTENT="Describes the C/C++ programming interface used to read and write Design Exchange Format (DEF) files.">
<META NAME="DocTitle" CONTENT="DEF 5.8 C/C++ Programming Interface">
<META NAME="DocType" CONTENT="Reference">
<META NAME="EdmsRelease" CONTENT="FM-Wiki-1.0_P005">
<META NAME="FileTitle" CONTENT="7">
<META NAME="Keywords" CONTENT="">
<META NAME="FileType" CONTENT="Chapter">
<META NAME="Keyword" CONTENT="defapi">
<META NAME="Language" CONTENT="English">
<META NAME="ModifiedDate" CONTENT="2017-04-18">
<META NAME="ModifiedTime" CONTENT="1492498753">
<META NAME="NextFile" CONTENT="ch8lefdiff.html">
<META NAME="PageCount" CONTENT="2">
<META NAME="Platform" CONTENT="ALL">
<META NAME="PrevFile" CONTENT="ch6DEFwriter.html">
<META NAME="Product" CONTENT="Languages">
<META NAME="ProductFamily" CONTENT="Cadence Shared Tools">
<META NAME="ProductVersion" CONTENT="5.8">
<META NAME="Syntax" CONTENT="defGZFile defGZipOpen(const char* gzipFile,const char* mode);,int defGZipClose(defGZFile filePtr) ;">
<META NAME="RightsManagement" CONTENT="Copyright 2017 Cadence Design Systems Inc.">
<META NAME="Title" CONTENT="DEF 5.8 C/C++ Programming Interface -- 7">
<META NAME="TopicTags" CONTENT="FALSE">
<META NAME="Version" CONTENT="5.8">
</head>
<body style="margin-left: 5%;">
<a name="pagetop"></a>
<a name="firstpage"></a>
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="36" width="650" colspan="10">
<img src="images/header_doc.gif" width="650" height="34">
</td>
</tr>
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch6DEFwriter.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch8lefdiff.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td height="20">
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
<p>
<hr>
<p>
<h3>
<center>
<font >
<div>DEF 5.8 C&#47;C++ Programming Interface (Open Licensing Program)</div>
<font >
<div></div>
</font>
</font>
</center>
</h3>
<br>
</p>
<div>
<h1>7<a name="1008781">&nbsp;</a></h1>
<h1><a name="1014156">DEF Compressed File Routines</a></h1>
<p><a name="1019932">The Cadence</a><font color="#000000"><sup>&#174;</sup></font> Design Exchange Format (DEF) reader provides the following routines for opening and closing compressed DEF files. These routines are used instead of the <font size="2" face="'Courier New'" color="#000000">fopen</font> and <font size="2" face="'Courier New'" color="#000000">fclose</font> routines that are used for regular DEF files. </p>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1014302" title="7" name="1014158"><font color="Blue"><u>defGZipOpen</u></font></a><a href="#1014302" title="7"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1014311" title="7" name="1021275"><font color="Blue"><u>defGZipClose</u></font></a><a href="#1014311" title="7"> </a></td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="3" summary="">
<tr valign="baseline">
<td width="31.999679999999998">
<div>
<nobr>
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
</nobr>
</div>
</td>
<td><a href="#1021641" title="7" name="1022190"><font color="Blue"><u>Example</u></font></a><a href="#1021641" title="7"> </a></td>
</tr>
</table>
</div>
<h3><a name="1014302">defGZipOpen</a></h3>
<p><a name="1022170">Opens a compressed DEF file. If the file opens with no errors, this routine returns a pointer to the file.</a></p>
<h4><a name="1022171">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020526">defGZFile defGZipOpen(<dd>const char* </a><font size="2" face="'Courier New'" color="#000000"><em>gzipFile</em></font>,<dd>const char* <font size="2" face="'Courier New'" color="#000000"><em>mode</em></font>);</font>
</dl>
<h4><a name="1022176">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1022177"><font size="2" face="'Courier New'" color="#000000"><em>gzipFile</em></font></a></strong>
</p>
<blockquote><a name="1022500">Specifies the compressed file to open. </a></blockquote>
<p>
<strong></strong>
<strong><a name="1022513"><font size="2" face="'Courier New'" color="#000000"><em>mode</em></font></a></strong>
</p>
<blockquote><a name="1022520">Specifies how to open the file. Compressed files should be opened as read only; therefore, specify </a><font size="2" face="'Courier New'" color="#000000">"r"</font>. </blockquote>
<h3><a name="1014311">defGZipClose</a></h3>
<p><a name="1020648">Closes the compressed DEF file. If the file closes with no errors, this routine returns zero.</a></p>
<h4><a name="1020569">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020570">int defGZipClose(<dd>defGZFile </a><font size="2" face="'Courier New'" color="#000000"><em>filePtr</em></font>) ;</font>
</dl>
<h4><a name="1020593">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1020996"><font size="2" face="'Courier New'" color="#000000"><em>filePtr</em></font></a></strong>
</p>
<blockquote><a name="1022532">Specifies a pointer to the compressed file to close. </a></blockquote>
<h3><a name="1021641">Example</a></h3>
<p><a name="1021642">The following example uses the </a><font size="2" face="'Courier New'" color="#000000">defGZipOpen</font> and <font size="2" face="'Courier New'" color="#000000">defGZipClose</font> routines to open and close a compressed file. </p>
<p>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1021968">defrInit() ;</a></font>
</p>
<p>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022237">&nbsp;</a></font>
</p>
<p>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022238">for (fileCt = 0; fileCt &#60; numInFile; fileCt++) {</a></font>
</p>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022240">defrReset();</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022236">&#47;&#47; Open the compressed DEF file for the reader to read</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022248">if ((f = defGZipOpen(inFile[fileCt], "r")) == 0) {</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022249">&nbsp;&nbsp;&nbsp;fprintf(stderr, &#34;Couldn't open input file '%s'\n&#34;, inFile[fileCt]);</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022262">&nbsp;&nbsp;&nbsp;return(2) ;</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022270">}</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022271">&#47;&#47; Set case sensitive to 0 to start with, in History and PropertyDefinition</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022272">&#47;&#47; reset it to 1.</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022273">res = defrRead((FILE*)f, inFile[fileCt], (void*)userData, 1);</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022279">&nbsp;</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022281">if (res)</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022282">&nbsp;&nbsp;&nbsp;fprintf(stderr, "Reader returns bad status.\n", inFile[fileCt]);</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022283">&nbsp;</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022305">&#47;&#47; Close the compressed DEF file. </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022284">defGZipClose(f);</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022285">(void)defrPrintUnusedCallbacks(fout);</a></font>
</blockquote>
<p>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022286">}</a></font>
</p>
<p>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022291">fclose(fout);</a></font>
</p>
<p>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022292">&nbsp;</a></font>
</p>
<p>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022293">return 0;}</a></font>
</p>
<p><a name="1021974">&nbsp;</a></p>
</div>
<br>
<a href="#pagetop">Return to top of page</a>
<hr>
<hr align="left">
<div style="text-align: left;">
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch6DEFwriter.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="ch8lefdiff.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td>
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
</div>
<br>
<font size="-1" >
For support, see <a href="http://support.cadence.com" target="_blank">Cadence Online Support</a> service.</font>
<br>
<br>
<font size="-1" >
<font size="-1"><i>Copyright &#169; 2016, <a href ="http://www.cadence.com">Cadence Design Systems, Inc.</a></i></font>
</font>
<br>
<font size="-1" >
All rights reserved.</font>
<br>
<br>
</body>
</html>

View File

@ -0,0 +1,381 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html xmlns="http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>DEF 5.8 C/C++ Programming Interface -- 8</title>
<META NAME="Approver" CONTENT="Technical Publications">
<META NAME="Author" CONTENT="Technical Publications">
<META NAME="CreateDate" CONTENT="2017-04-18">
<META NAME="CreateTime" CONTENT="1492498753">
<META NAME="DataType" CONTENT="Manuals">
<META NAME="Description" CONTENT="Describes the C/C++ programming interface used to read and write Design Exchange Format (DEF) files.">
<META NAME="DocTitle" CONTENT="DEF 5.8 C/C++ Programming Interface">
<META NAME="DocType" CONTENT="Reference">
<META NAME="EdmsRelease" CONTENT="FM-Wiki-1.0_P005">
<META NAME="FileTitle" CONTENT="8">
<META NAME="Keywords" CONTENT="">
<META NAME="FileType" CONTENT="Chapter">
<META NAME="Keyword" CONTENT="defapi">
<META NAME="Language" CONTENT="English">
<META NAME="ModifiedDate" CONTENT="2017-04-18">
<META NAME="ModifiedTime" CONTENT="1492498753">
<META NAME="NextFile" CONTENT="appA_DEFexamples.html">
<META NAME="PageCount" CONTENT="4">
<META NAME="Platform" CONTENT="ALL">
<META NAME="PrevFile" CONTENT="ch7DEFcompressed.html">
<META NAME="Product" CONTENT="Languages">
<META NAME="ProductFamily" CONTENT="Cadence Shared Tools">
<META NAME="ProductVersion" CONTENT="5.8">
<META NAME="Syntax" CONTENT="lefdefdiff{-lef | -def} inFileName1 inFileName2 [-o outFileName] [-path pathName] [-quick] [-d] [-ignorePinExtra][-ignoreRowName][-h]">
<META NAME="RightsManagement" CONTENT="Copyright 2017 Cadence Design Systems Inc.">
<META NAME="Title" CONTENT="DEF 5.8 C/C++ Programming Interface -- 8">
<META NAME="TopicTags" CONTENT="FALSE">
<META NAME="Version" CONTENT="5.8">
</head>
<body style="margin-left: 5%;">
<a name="pagetop"></a>
<a name="firstpage"></a>
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="36" width="650" colspan="10">
<img src="images/header_doc.gif" width="650" height="34">
</td>
</tr>
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch7DEFcompressed.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="appA_DEFexamples.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td height="20">
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
<p>
<hr>
<p>
<h3>
<center>
<font >
<div>DEF 5.8 C&#47;C++ Programming Interface (Open Licensing Program)</div>
<font >
<div></div>
</font>
</font>
</center>
</h3>
<br>
</p>
<div>
<h1>8<a name="1008781">&nbsp;</a></h1>
<h1><a name="1014156">DEF File Comparison Utility</a></h1>
<p><a name="1019932">The Cadence</a><font color="#000000"><sup>&#174;</sup></font> Design Exchange Format (DEF) reader provides the following utility for comparing DEF files. </p>
<h3><a name="1022364">lefdefdiff</a></h3>
<p><a name="1022368">Compares two LEF or DEF files and reports any differences between them.</a></p>
<p><a name="1022503">Because LEF and DEF files can be very large, the </a><font size="2" face="'Courier New'" color="#000000">lefdefdiff</font> utility writes each construct from a file to an output file in the <font size="2" face="'Courier New'" color="#000000">&#47;tmp</font> directory. The utility writes the constructs using the format:</p>
<blockquote><a name="1022610"><font size="2" face="'Courier New'" color="#000000"><em>section_head</em></font></a><font size="2" face="'Courier New'" color="#000000">&#47;</font><font size="2" face="'Courier New'" color="#000000"><em>subsection</em></font><font size="2" face="'Courier New'" color="#000000">&#47;</font><font size="2" face="'Courier New'" color="#000000"><em>subsection</em></font><font size="2" face="'Courier New'" color="#000000">&#47;</font> ... <font size="2" face="'Courier New'" color="#000000">&#47;</font><font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> </blockquote>
<p><a name="1022612">The </a><font size="2" face="'Courier New'" color="#000000">lefdefdiff</font> utility then sorts the output files and uses the <font size="2" face="'Courier New'" color="#000000">diff</font> program to compare the two files. Always verify the accuracy of the <font size="2" face="'Courier New'" color="#000000">diff</font> results. </p>
<p><font color="#000000"><strong>Note: </strong></font><a name="1022623">You must specify the </a><font size="2" face="'Courier New'" color="#000000">&#45;lef</font> or <font size="2" face="'Courier New'" color="#000000">&#45;def</font>, <font size="2" face="'Courier New'" color="#000000"><em>inFileName1</em></font>, and <font size="2" face="'Courier New'" color="#000000"><em>inFileName2</em></font> arguments in the listed order. All other arguments can be specified in any order after these arguments. </p>
<h4><a name="1022171">Syntax</a></h4>
<dl>
<font size="2" face="'Courier New'" color="#000000"><a name="1020526">lefdefdiff<dd>{&#45;lef | &#45;def} <dd></a><font size="2" face="'Courier New'" color="#000000"><em>inFileName1</em></font> <dd><font size="2" face="'Courier New'" color="#000000"><em>inFileName2</em></font> <dd>[&#45;o <font size="2" face="'Courier New'" color="#000000"><em>outFileName</em></font>] <dd>[&#45;path <font size="2" face="'Courier New'" color="#000000"><em>pathName</em></font>] <dd>[&#45;quick] <dd>[&#45;d] <dd>[&#45;ignorePinExtra]<dd>[&#45;ignoreRowName]<dd>[&#45;h]</font>
</dl>
<h4><a name="1022176">Arguments</a></h4>
<p>
<strong></strong>
<strong><a name="1022388"><font size="2" face="'Courier New'" color="#000000">&#45;d</font></a></strong>
</p>
<blockquote><a name="1022924">Uses the gnu </a><font size="2" face="'Courier New'" color="#000000">diff</font> program to compare the files for a smaller set of differences. Use this argument only for UNIX platforms. </blockquote>
<p>
<strong></strong>
<strong><a name="1022938"><font size="2" face="'Courier New'" color="#000000">&#45;h</font></a></strong>
</p>
<blockquote><a name="1022945">Returns the syntax and command usage for the </a><font size="2" face="'Courier New'" color="#000000">lefdefdiff</font> utility. </blockquote>
<p>
<strong></strong>
<strong><a name="1022955"><font size="2" face="'Courier New'" color="#000000">&#45;ignorePinExtra</font></a></strong>
</p>
<blockquote><a name="1022962">Ignores any </a><font size="2" face="'Courier New'" color="#000000">.extra</font><font size="2" face="'Courier New'" color="#000000"><em>N</em></font> statements in the pin name. This argument can only be used when comparing DEF files.</blockquote>
<p>
<strong></strong>
<strong><a name="1022991"><font size="2" face="'Courier New'" color="#000000">&#45;ignoreRowName</font></a></strong>
</p>
<blockquote><a name="1022998">Ignores the row name when comparing </a><font size="2" face="'Courier New'" color="#000000">ROW</font> statements in the DEF files. This argument can only be used when comparing DEF files.</blockquote>
<p>
<strong></strong>
<strong><a name="1023008"><font size="2" face="'Courier New'" color="#000000"><em>inFileName1</em></font></a></strong>
</p>
<blockquote><a name="1023015">Specifies the first LEF or DEF file.</a></blockquote>
<p>
<strong></strong>
<strong><a name="1023025"><font size="2" face="'Courier New'" color="#000000"><em>inFileName2</em></font></a></strong>
</p>
<blockquote><a name="1023032">Specifies the LEF or DEF file to compare with the first file.</a></blockquote>
<p>
<strong></strong>
<strong><a name="1023042"><font size="2" face="'Courier New'" color="#000000">&#45;lef | &#45;def</font></a></strong>
</p>
<blockquote><a name="1023049">Specifies whether you are comparing LEF or DEF files. </a></blockquote>
<p>
<strong></strong>
<strong><a name="1023059"><font size="2" face="'Courier New'" color="#000000">&#45;o </font></a><font size="2" face="'Courier New'" color="#000000"><em>outFileName</em></font></strong>
</p>
<blockquote><a name="1023066">Outputs the results of the comparison to the specified file.<br></a><font color="#000000"><em>Default:</em></font> Outputs the results to the screen.</blockquote>
<p>
<strong></strong>
<strong><a name="1023076"><font size="2" face="'Courier New'" color="#000000">&#45;path </font></a><font size="2" face="'Courier New'" color="#000000"><em>pathName</em></font></strong>
</p>
<blockquote><a name="1023083">Temporarily stores the intermediate files created by the </a><font size="2" face="'Courier New'" color="#000000">lefdefdiff</font> utility in the specified path directory.<br><font color="#000000"><em>Default:</em></font> Temporarily stores the files in the current directory</blockquote>
<p>
<strong></strong>
<strong><a name="1023093"><font size="2" face="'Courier New'" color="#000000">&#45;quick</font></a></strong>
</p>
<blockquote><a name="1023100">Uses the </a><font size="2" face="'Courier New'" color="#000000">bdiff</font> program to perform a faster comparison.</blockquote>
<h3><a name="1021641">Example</a></h3>
<p><a name="1021642">The following example shows an output file created by the </a><font size="2" face="'Courier New'" color="#000000">lefdefdiff</font> utility after comparing two DEF files: </p>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022459">#The names of the two DEF files that were compared.</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022575">&#60; in.def </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022540">&#62; out.def </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022576">#Statements listed under Deleted were found in in.def but not in out.def.</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022545">Deleted:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022646">&#60; BLOCKAGE LAYER m3 RECT 455 454 344 890</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022651">&#60; BLOCKAGE LAYER m3 SLOTS</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022652">&#60; BLOCKAGE LAYER m4 FILLS</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022653">&#60; BLOCKAGE LAYER m4 RECT 455 454 344 890</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022654">&#60; BLOCKAGE LAYER m5 PUSHDOWN</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022655">&#60; BLOCKAGE LAYER m5 RECT 455 454 344 890</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022656">&#60; BLOCKAGE PLACEMENT</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022657">Deleted:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022658">&#60; BLOCKAGE PLACEMENT PUSHDOWN</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022659">Deleted:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022660">&#60; BLOCKAGE PLACEMENT RECT 4000 6000 8000 4000</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022661">&#60; BLOCKAGE PLACEMENT RECT 4000 6000 8000 4000</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022687">#Changed always contains two statements: the statement as it appears in in.def and the statement as it appears in out.def.</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022648">Changed:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022665">&#60; COMP |i1 UNPLACED</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022666">&#60; DESIGN muk</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022667">&#45;&#45;&#45;</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022668">&#62; DESIGN cell</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022670">Changed:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022704">&#60; NET net1 USE SCAN </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022705">&#45;&#45;&#45;</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022706">&#62; NET net1 WEIGHT 30 SOURCE TIMING ORIGINAL VDD USE SCAN </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022709">Changed:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022710">&#60; NET net3 SOURCE USER PATTERN BALANCED ORIGINAL extra_crispy USE SIGNAL </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022711">&#45;&#45;&#45;</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022712">&#62; NET net3 SOURCE USER PATTERN BALANCED ORIGINAL extra_crispy </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022671">#Statements listed under Added were found in out.def but not in in.def.</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022672">Added:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022727">&#62; NET SCAN ( PIN scanpin ) </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022728">Added:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022729">&#62; NET net1 ( PIN pin1 ) </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022722">Added:</a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022731">&#62; NET net2 ( PIN pin2 ) </a></font>
</blockquote>
<blockquote>
<font size="2" face="&quot;Courier New&quot;" color="#000000"></font>
<font size="2" face="&quot;Courier New&quot;" color="#000000"><a name="1022723">&nbsp;</a></font>
</blockquote>
<p><a name="1021974">&nbsp;</a></p>
</div>
<br>
<a href="#pagetop">Return to top of page</a>
<hr>
<hr align="left">
<div style="text-align: left;">
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<a href="defapiTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="ch7DEFcompressed.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="appA_DEFexamples.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td>
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
</div>
<br>
<font size="-1" >
For support, see <a href="http://support.cadence.com" target="_blank">Cadence Online Support</a> service.</font>
<br>
<br>
<font size="-1" >
<font size="-1"><i>Copyright &#169; 2016, <a href ="http://www.cadence.com">Cadence Design Systems, Inc.</a></i></font>
</font>
<br>
<font size="-1" >
All rights reserved.</font>
<br>
<br>
</body>
</html>

9477
lefdef/doc/defapi/defapi.pdf Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,557 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html xmlns="http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Table of Contents</title><META NAME="Approver" CONTENT="Technical Publications">
<META NAME="Author" CONTENT="Technical Publications">
<META NAME="CreateDate" CONTENT="2017-04-18">
<META NAME="CreateTime" CONTENT="1492498754">
<META NAME="DataType" CONTENT="Manuals">
<META NAME="Description" CONTENT="Describes the C/C++ programming interface used to read and write Design Exchange Format (DEF) files.">
<META NAME="DocTitle" CONTENT="DEF 5.8 C/C++ Programming Interface">
<META NAME="DocType" CONTENT="Reference">
<META NAME="EdmsRelease" CONTENT="FM-Wiki-1.0_P005">
<META NAME="FileTitle" CONTENT="Table of Contents">
<META NAME="FileType" CONTENT="TOC">
<META NAME="Keyword" CONTENT="defapi">
<META NAME="Language" CONTENT="English">
<META NAME="ModifiedDate" CONTENT="2017-04-18">
<META NAME="ModifiedTime" CONTENT="1492498754">
<META NAME="NextFile" CONTENT="preface.html">
<META NAME="PageCount" CONTENT="12">
<META NAME="Platform" CONTENT="ALL">
<META NAME="PrevFile" CONTENT="titlecopy.html">
<META NAME="Product" CONTENT="Languages">
<META NAME="ProductFamily" CONTENT="Cadence Shared Tools">
<META NAME="ProductVersion" CONTENT="5.8">
<META NAME="RightsManagement" CONTENT="Copyright 2017 Cadence Design Systems Inc.">
<META NAME="Title" CONTENT="DEF 5.8 C/C++ Programming Interface -- Table of Contents">
<META NAME="TopicTags" CONTENT="FALSE">
<META NAME="Version" CONTENT="5.8">
</head>
<body style="margin-left: 5%;">
<a name="pagetop"></a>
<a name="firstpage"></a>
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="36" width="650" colspan="10">
<img src="images/header_doc.gif" width="650" height="34">
</td>
</tr>
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<img src="../support/nav2_toc_b.gif" alt="Table of Contents" border="0">
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="titlecopy.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="preface.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td height="20">
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
<p>
<hr>
<p>
<h3>
<center>
<font >
<div>DEF 5.8 C&#47;C++ Programming Interface (Open Licensing Program)</div>
<font >
<div></div>
</font>
</font>
</center>
</h3>
<br>
</p><h1>Contents</h1>
<div>
<h2> <a name=""></a><a href="preface.html" title="Preface" name="129412"><font color="#0000ff"><u>Preface</u></font></a></h2>
<p> <a name=""></a><a href="preface.html#1016761" title="Preface" name="129414"><font color="#0000ff"><u>What's New</u></font></a></p>
<p> <a name=""></a><a href="preface.html#1016736" title="Preface" name="129416"><font color="#0000ff"><u>Related Documents</u></font></a></p>
<p> <a name=""></a><a href="preface.html#conventions" title="Preface" name="129418"><font color="#0000ff"><u>Typographic and Syntax Conventions</u></font></a></p>
<h2><a href="ch1Intro.html" title="1" name="129420"><font color="#0000ff"><u>1</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch1Intro.html#1011663" title="1" name="129422"><font color="#0000ff"><u>Introduction</u></font></a></h2>
<p> <a name=""></a><a href="ch1Intro.html#1021416" title="1" name="129424"><font color="#0000ff"><u>Overview</u></font></a></p>
<p> <a name=""></a><a href="ch1Intro.html#WorkingModes" title="1" name="129426"><font color="#0000ff"><u>DEF Reader Working Modes</u></font></a></p>
<p> <a name=""></a><a href="ch1Intro.html#1021813" title="1" name="129428"><font color="#0000ff"><u>Comparison Utility</u></font></a></p>
<p> <a name=""></a><a href="ch1Intro.html#1021606" title="1" name="129430"><font color="#0000ff"><u>Compressed DEF Files</u></font></a></p>
<p> <a name=""></a><a href="ch1Intro.html#1019049" title="1" name="129432"><font color="#0000ff"><u>Orientation Codes</u></font></a></p>
<h2><a href="ch2DEFsetup.html" title="2" name="129434"><font color="#0000ff"><u>2</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch2DEFsetup.html#1014156" title="2" name="129436"><font color="#0000ff"><u>DEF Reader Setup and Control Routines</u></font></a></h2>
<p> <a name=""></a><a href="ch2DEFsetup.html#1021276" title="2" name="129438"><font color="#0000ff"><u>DEF API Routines</u></font></a></p>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1014302" title="2" name="129440"><font color="#0000ff"><u>defrInit</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#defrInitSession" title="2" name="129442"><font color="#0000ff"><u>defrInitSession</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#defrClear" title="2" name="129444"><font color="#0000ff"><u>defrClear</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1014311" title="2" name="129446"><font color="#0000ff"><u>defrRead</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1023039" title="2" name="129448"><font color="#0000ff"><u>defrSetUserData</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1023070" title="2" name="129450"><font color="#0000ff"><u>defrGetUserData</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1020122" title="2" name="129452"><font color="#0000ff"><u>defrSetAddPathToNet</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1020145" title="2" name="129454"><font color="#0000ff"><u>defrSetAllowComponentNets</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#defrGetAllowComponentNets" title="2" name="129456"><font color="#0000ff"><u>defrGetAllowComponentNets</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1020181" title="2" name="129458"><font color="#0000ff"><u>defrSetCommentChar</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1020919" title="2" name="129460"><font color="#0000ff"><u>defrSetRegisterUnusedCallbacks</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1021121" title="2" name="129462"><font color="#0000ff"><u>defrPrintUnusedCallbacks</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1020237" title="2" name="129464"><font color="#0000ff"><u>defrUnusedCallbackCount</u></font></a></dd>
<dd> <a name=""></a><a href="ch2DEFsetup.html#1021641" title="2" name="129466"><font color="#0000ff"><u>Example</u></font></a></dd>
<h2><a href="ch3DEFcallback.html" title="3" name="129468"><font color="#0000ff"><u>3</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch3DEFcallback.html#1019035" title="3" name="129470"><font color="#0000ff"><u>DEF Reader Callback Routines</u></font></a></h2>
<p> <a name=""></a><a href="ch3DEFcallback.html#1046501" title="3" name="129472"><font color="#0000ff"><u>Callback Function Format</u></font></a></p>
<dd> <a name=""></a><a href="ch3DEFcallback.html#1037508" title="3" name="129474"><font color="#0000ff"><u>Callback Type</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#1037520" title="3" name="129476"><font color="#0000ff"><u>DEF_Data</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#1037587" title="3" name="129478"><font color="#0000ff"><u>User Data</u></font></a></dd>
<p> <a name=""></a><a href="ch3DEFcallback.html#1037614" title="3" name="129480"><font color="#0000ff"><u>Callback Types and Setting Routines</u></font></a></p>
<dd> <a name=""></a><a href="ch3DEFcallback.html#1046787" title="3" name="129482"><font color="#0000ff"><u>Examples</u></font></a></dd>
<p> <a name=""></a><a href="ch3DEFcallback.html#1046476" title="3" name="129484"><font color="#0000ff"><u>User Callback Routines</u></font></a></p>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrBlockageCbkFnType" title="3" name="129486"><font color="#0000ff"><u>defrBlockageCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrBoxCbkFnType" title="3" name="129488"><font color="#0000ff"><u>defrBoxCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrComponentCbkFnType" title="3" name="129490"><font color="#0000ff"><u>defrComponentCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#1053925" title="3" name="129492"><font color="#0000ff"><u>defrComponentMaskShiftLayerCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrDoubleCbkFnType" title="3" name="129494"><font color="#0000ff"><u>defrDoubleCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrFillCbkFnType" title="3" name="129496"><font color="#0000ff"><u>defrFillCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrGcellGridCbkFnType" title="3" name="129498"><font color="#0000ff"><u>defrGcellGridCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrGroupCbkFnType" title="3" name="129500"><font color="#0000ff"><u>defrGroupCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrIntegerCbkFnType" title="3" name="129502"><font color="#0000ff"><u>defrIntegerCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrNetCbkFnType" title="3" name="129504"><font color="#0000ff"><u>defrNetCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrNonDefaultCbkFnType" title="3" name="129506"><font color="#0000ff"><u>defrNonDefaultCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrPathCbkFnType" title="3" name="129508"><font color="#0000ff"><u>defrPathCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrPinCbkFnType" title="3" name="129510"><font color="#0000ff"><u>defrPinCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrPinPropCbkFnType" title="3" name="129512"><font color="#0000ff"><u>defrPinPropCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrPropCbkFnType" title="3" name="129514"><font color="#0000ff"><u>defrPropCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrRegionCbkFnType" title="3" name="129516"><font color="#0000ff"><u>defrRegionCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrRowCbkFnType" title="3" name="129518"><font color="#0000ff"><u>defrRowCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrScanchainCbkFnType" title="3" name="129520"><font color="#0000ff"><u>defrScanchainCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrSlotCbkFnType" title="3" name="129522"><font color="#0000ff"><u>defrSlotCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#1048248" title="3" name="129524"><font color="#0000ff"><u>defrStringCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrStylesCbkFnType" title="3" name="129526"><font color="#0000ff"><u>defrStylesCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrTrackCbkFnType" title="3" name="129528"><font color="#0000ff"><u>defrTrackCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrViaCbkFnType" title="3" name="129530"><font color="#0000ff"><u>defrViaCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#defrVoidCbkFnType" title="3" name="129532"><font color="#0000ff"><u>defrVoidCbkFnType</u></font></a></dd>
<dd> <a name=""></a><a href="ch3DEFcallback.html#1044431" title="3" name="129534"><font color="#0000ff"><u>Examples</u></font></a></dd>
<h2><a href="ch4DEFclasses.html" title="4" name="129536"><font color="#0000ff"><u>4</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch4DEFclasses.html#1011663" title="4" name="129538"><font color="#0000ff"><u>DEF Reader Classes</u></font></a></h2>
<p> <a name=""></a><a href="ch4DEFclasses.html#1031356" title="4" name="129540"><font color="#0000ff"><u>Introduction</u></font></a></p>
<p> <a name=""></a><a href="ch4DEFclasses.html#1028550" title="4" name="129542"><font color="#0000ff"><u>Callback Style Interface</u></font></a></p>
<p> <a name=""></a><a href="ch4DEFclasses.html#1028553" title="4" name="129544"><font color="#0000ff"><u>Retrieving Repeating DEF Data</u></font></a></p>
<p> <a name=""></a><a href="ch4DEFclasses.html#1028946" title="4" name="129546"><font color="#0000ff"><u>Deriving C Syntax from C++ Syntax</u></font></a></p>
<dd> <a name=""></a><a href="ch4DEFclasses.html#1028568" title="4" name="129548"><font color="#0000ff"><u>C++ Syntax</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#1028571" title="4" name="129550"><font color="#0000ff"><u>C Syntax</u></font></a></dd>
<p> <a name=""></a><a href="ch4DEFclasses.html#1026628" title="4" name="129552"><font color="#0000ff"><u>DEF Reader Class Routines</u></font></a></p>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiBlockage" title="4" name="129554"><font color="#0000ff"><u>defiBlockage</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiBox" title="4" name="129556"><font color="#0000ff"><u>defiBox</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiComponent" title="4" name="129558"><font color="#0000ff"><u>defiComponent</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiComponentMaskShiftLayer" title="4" name="129560"><font color="#0000ff"><u>defiComponentMaskShiftLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiFill" title="4" name="129562"><font color="#0000ff"><u>defiFill</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#1021932" title="4" name="129564"><font color="#0000ff"><u>defiGcellGrid</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiGeometries" title="4" name="129566"><font color="#0000ff"><u>defiGeometries</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiGroup" title="4" name="129568"><font color="#0000ff"><u>defiGroup</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiNet" title="4" name="129570"><font color="#0000ff"><u>defiNet</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiNonDefault" title="4" name="129572"><font color="#0000ff"><u>defiNonDefault</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiOrdered" title="4" name="129574"><font color="#0000ff"><u>defiOrdered</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiPath" title="4" name="129576"><font color="#0000ff"><u>defiPath</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiPin" title="4" name="129578"><font color="#0000ff"><u>defiPin</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiPinAntennaModel" title="4" name="129580"><font color="#0000ff"><u>defiPinAntennaModel</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiPinPort" title="4" name="129582"><font color="#0000ff"><u>defiPinPort</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiPinProp" title="4" name="129584"><font color="#0000ff"><u>defiPinProp</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiPoints" title="4" name="129586"><font color="#0000ff"><u>defiPoints</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiProp" title="4" name="129588"><font color="#0000ff"><u>defiProp</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiRegion" title="4" name="129590"><font color="#0000ff"><u>defiRegion</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiRow" title="4" name="129592"><font color="#0000ff"><u>defiRow</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#1029330" title="4" name="129594"><font color="#0000ff"><u>defiScanchain</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiShield" title="4" name="129596"><font color="#0000ff"><u>defiShield</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiSite" title="4" name="129598"><font color="#0000ff"><u>defiSite</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiSlot" title="4" name="129600"><font color="#0000ff"><u>defiSlot</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiStyles" title="4" name="129602"><font color="#0000ff"><u>defiStyles</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#1021237" title="4" name="129604"><font color="#0000ff"><u>defiSubnet</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiTrack" title="4" name="129606"><font color="#0000ff"><u>defiTrack</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiVia" title="4" name="129608"><font color="#0000ff"><u>defiVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiViaData" title="4" name="129610"><font color="#0000ff"><u>defiViaData</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#1024435" title="4" name="129612"><font color="#0000ff"><u>defiVpin</u></font></a></dd>
<dd> <a name=""></a><a href="ch4DEFclasses.html#defiWire" title="4" name="129614"><font color="#0000ff"><u>defiWire</u></font></a></dd>
<h2><a href="ch5DEFwritercallback.html" title="5" name="129616"><font color="#0000ff"><u>5</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch5DEFwritercallback.html#1016502" title="5" name="129618"><font color="#0000ff"><u>DEF Writer Callback Routines</u></font></a></h2>
<p> <a name=""></a><a href="ch5DEFwritercallback.html#1017159" title="5" name="129620"><font color="#0000ff"><u>Callback Function Format</u></font></a></p>
<dd> <a name=""></a><a href="ch5DEFwritercallback.html#1014342" title="5" name="129622"><font color="#0000ff"><u>Callback Type</u></font></a></dd>
<dd> <a name=""></a><a href="ch5DEFwritercallback.html#1015950" title="5" name="129624"><font color="#0000ff"><u>User Data</u></font></a></dd>
<p> <a name=""></a><a href="ch5DEFwritercallback.html#1014352" title="5" name="129626"><font color="#0000ff"><u>Callback Types and Setting Routines</u></font></a></p>
<h2><a href="ch6DEFwriter.html" title="6" name="129628"><font color="#0000ff"><u>6</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch6DEFwriter.html#1023330" title="6" name="129630"><font color="#0000ff"><u>DEF Writer Routines</u></font></a></h2>
<p> <a name=""></a><a href="ch6DEFwriter.html#1037914" title="6" name="129632"><font color="#0000ff"><u>DEF Writer Setup and Control</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025734" title="6" name="129634"><font color="#0000ff"><u>defwInit</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwInitCbk" title="6" name="129636"><font color="#0000ff"><u>defwInitCbk</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1058340" title="6" name="129638"><font color="#0000ff"><u>defwEnd</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1023752" title="6" name="129640"><font color="#0000ff"><u>defwCurrentLineNumber</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1023771" title="6" name="129642"><font color="#0000ff"><u>defwNewLine</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047436" title="6" name="129644"><font color="#0000ff"><u>defwAddComment</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047440" title="6" name="129646"><font color="#0000ff"><u>defwAddIntent</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1023779" title="6" name="129648"><font color="#0000ff"><u>defwPrintError</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047554" title="6" name="129650"><font color="#0000ff"><u>Setup Examples</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#Blockages" title="6" name="129652"><font color="#0000ff"><u>Blockages</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwStartBlockages" title="6" name="129654"><font color="#0000ff"><u>defwStartBlockages</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwEndBlockages" title="6" name="129656"><font color="#0000ff"><u>defwEndBlockages</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageDesignRuleWidth" title="6" name="129658"><font color="#0000ff"><u>defwBlockageDesignRuleWidth</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesLayerDesignRuleWidth" title="6" name="129660"><font color="#0000ff"><u>defwBlockagesLayerDesignRuleWidth</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageLayer" title="6" name="129662"><font color="#0000ff"><u>defwBlockageLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesLayer" title="6" name="129664"><font color="#0000ff"><u>defwBlockagesLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesLayerComponent" title="6" name="129666"><font color="#0000ff"><u>defwBlockagesLayerComponent</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageLayerExceptpgnet" title="6" name="129668"><font color="#0000ff"><u>defwBlockageLayerExceptpgnet</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesLayerExceptpgnet" title="6" name="129670"><font color="#0000ff"><u>defwBlockagesLayerExceptpgnet</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageLayerFills" title="6" name="129672"><font color="#0000ff"><u>defwBlockageLayerFills</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesLayerFills" title="6" name="129674"><font color="#0000ff"><u>defwBlockagesLayerFills</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageLayerPushdown" title="6" name="129676"><font color="#0000ff"><u>defwBlockageLayerPushdown</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesLayerPushdown" title="6" name="129678"><font color="#0000ff"><u>defwBlockagesLayerPushdown</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageLayerSlots" title="6" name="129680"><font color="#0000ff"><u>defwBlockageLayerSlots</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagePlacement" title="6" name="129682"><font color="#0000ff"><u>defwBlockagePlacement</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesPlacement" title="6" name="129684"><font color="#0000ff"><u>defwBlockagesPlacement</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagePlacementComponent" title="6" name="129686"><font color="#0000ff"><u>defwBlockagePlacementComponent</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesPlacementComponent" title="6" name="129688"><font color="#0000ff"><u>defwBlockagesPlacementComponent</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagePlacementPartial" title="6" name="129690"><font color="#0000ff"><u>defwBlockagePlacementPartial</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesPlacementPartial" title="6" name="129692"><font color="#0000ff"><u>defwBlockagesPlacementPartial</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagePlacementPushdown" title="6" name="129694"><font color="#0000ff"><u>defwBlockagePlacementPushdown</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesPlacementPushdown" title="6" name="129696"><font color="#0000ff"><u>defwBlockagesPlacementPushdown</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagePlacementSoft" title="6" name="129698"><font color="#0000ff"><u>defwBlockagePlacementSoft</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesPlacementSoft" title="6" name="129700"><font color="#0000ff"><u>defwBlockagesPlacementSoft</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagePolygon" title="6" name="129702"><font color="#0000ff"><u>defwBlockagePolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesPolygon" title="6" name="129704"><font color="#0000ff"><u>defwBlockagesPolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageRect" title="6" name="129706"><font color="#0000ff"><u>defwBlockageRect</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesRect" title="6" name="129708"><font color="#0000ff"><u>defwBlockagesRect</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockagesLayerMask" title="6" name="129710"><font color="#0000ff"><u>defwBlockagesLayerMask</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBlockageSpacing" title="6" name="129712"><font color="#0000ff"><u>defwBlockageSpacing</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1058435" title="6" name="129714"><font color="#0000ff"><u>Bus Bit Characters</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBusBitChars" title="6" name="129716"><font color="#0000ff"><u>defwBusBitChars</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#Components" title="6" name="129718"><font color="#0000ff"><u>Components</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025186" title="6" name="129720"><font color="#0000ff"><u>defwStartComponents</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1023801" title="6" name="129722"><font color="#0000ff"><u>defwEndComponents</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1023813" title="6" name="129724"><font color="#0000ff"><u>defwComponent</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1052197" title="6" name="129726"><font color="#0000ff"><u>defwComponentStr</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwComponentHalo" title="6" name="129728"><font color="#0000ff"><u>defwComponentHalo</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwComponentHaloSoft" title="6" name="129730"><font color="#0000ff"><u>defwComponentHaloSoft</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwComponentRouteHalo" title="6" name="129732"><font color="#0000ff"><u>defwComponentRouteHalo</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1058513" title="6" name="129734"><font color="#0000ff"><u>Design Name</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwDesignName" title="6" name="129736"><font color="#0000ff"><u>defwDesignName</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1059998" title="6" name="129738"><font color="#0000ff"><u>Die Area</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025188" title="6" name="129740"><font color="#0000ff"><u>defwDieArea</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwDieAreaList" title="6" name="129742"><font color="#0000ff"><u>defwDieAreaList</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047560" title="6" name="129744"><font color="#0000ff"><u>Die Area Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1058485" title="6" name="129746"><font color="#0000ff"><u>Divider Character</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwDividerChar" title="6" name="129748"><font color="#0000ff"><u>defwDividerChar</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1024021" title="6" name="129750"><font color="#0000ff"><u>Extensions</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025198" title="6" name="129752"><font color="#0000ff"><u>defwStartBeginext</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024031" title="6" name="129754"><font color="#0000ff"><u>defwEndBeginext</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024041" title="6" name="129756"><font color="#0000ff"><u>defwBeginextCreator</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024051" title="6" name="129758"><font color="#0000ff"><u>defwBeginextDate</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024059" title="6" name="129760"><font color="#0000ff"><u>defwBeginextRevision</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwBeginextSyntax" title="6" name="129762"><font color="#0000ff"><u>defwBeginextSyntax</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047561" title="6" name="129764"><font color="#0000ff"><u>Extensions Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1052847" title="6" name="129766"><font color="#0000ff"><u>Fills</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwStartFills" title="6" name="129768"><font color="#0000ff"><u>defwStartFills</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwEndFills" title="6" name="129770"><font color="#0000ff"><u>defwEndFills</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwFillLayer" title="6" name="129772"><font color="#0000ff"><u>defwFillLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwFillLayerOPC" title="6" name="129774"><font color="#0000ff"><u>defwFillLayerOPC</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwFillPoints" title="6" name="129776"><font color="#0000ff"><u>defwFillPoints</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwFillPolygon" title="6" name="129778"><font color="#0000ff"><u>defwFillPolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwFillRect" title="6" name="129780"><font color="#0000ff"><u>defwFillRect</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwFillVia" title="6" name="129782"><font color="#0000ff"><u>defwFillVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwFillViaOPC" title="6" name="129784"><font color="#0000ff"><u>defwFillViaOPC</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1045795" title="6" name="129786"><font color="#0000ff"><u>GCell Grid</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030329" title="6" name="129788"><font color="#0000ff"><u>defwGcellGrid</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047566" title="6" name="129790"><font color="#0000ff"><u>Gcell Grid Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1025201" title="6" name="129792"><font color="#0000ff"><u>Groups</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025205" title="6" name="129794"><font color="#0000ff"><u>defwStartGroups</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024088" title="6" name="129796"><font color="#0000ff"><u>defwEndGroups</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024095" title="6" name="129798"><font color="#0000ff"><u>defwGroup</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1039967" title="6" name="129800"><font color="#0000ff"><u>defwGroupRegion</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1025497" title="6" name="129802"><font color="#0000ff"><u>History</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025511" title="6" name="129804"><font color="#0000ff"><u>defwHistory</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#Nets" title="6" name="129806"><font color="#0000ff"><u>Nets</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025206" title="6" name="129808"><font color="#0000ff"><u>defwStartNets</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024196" title="6" name="129810"><font color="#0000ff"><u>defwEndNets</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024204" title="6" name="129812"><font color="#0000ff"><u>defwNet</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1058156" title="6" name="129814"><font color="#0000ff"><u>defwNetMustjoinConnection</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047507" title="6" name="129816"><font color="#0000ff"><u>defwNetEndOneNet</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1031492" title="6" name="129818"><font color="#0000ff"><u>defwNetConnection</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1059534" title="6" name="129820"><font color="#0000ff"><u>defwNetEstCap</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNetFixedBump" title="6" name="129822"><font color="#0000ff"><u>defwNetFixedBump</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNetFrequency" title="6" name="129824"><font color="#0000ff"><u>defwNetFrequency</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024234" title="6" name="129826"><font color="#0000ff"><u>defwNetNondefaultRule</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024245" title="6" name="129828"><font color="#0000ff"><u>defwNetOriginal</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1041024" title="6" name="129830"><font color="#0000ff"><u>defwNetPattern</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024262" title="6" name="129832"><font color="#0000ff"><u>defwNetSource</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1056351" title="6" name="129834"><font color="#0000ff"><u>defwNetUse</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024281" title="6" name="129836"><font color="#0000ff"><u>defwNetVpin</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1054682" title="6" name="129838"><font color="#0000ff"><u>defwNetVpinStr</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024287" title="6" name="129840"><font color="#0000ff"><u>defwNetWeight</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024292" title="6" name="129842"><font color="#0000ff"><u>defwNetXtalk</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1050045" title="6" name="129844"><font color="#0000ff"><u>Nets Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1031995" title="6" name="129846"><font color="#0000ff"><u>Regular Wiring</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1032006" title="6" name="129848"><font color="#0000ff"><u>defwNetPathStart</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1032014" title="6" name="129850"><font color="#0000ff"><u>defwNetPathEnd</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1041541" title="6" name="129852"><font color="#0000ff"><u>defwNetPathLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1032031" title="6" name="129854"><font color="#0000ff"><u>defwNetPathPoint</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNetPathStyle" title="6" name="129856"><font color="#0000ff"><u>defwNetPathStyle</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1060900" title="6" name="129858"><font color="#0000ff"><u>defwNetPathVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNetPathViaWithOrient" title="6" name="129860"><font color="#0000ff"><u>defwNetPathViaWithOrient</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNetPathViaWithOrientStr" title="6" name="129862"><font color="#0000ff"><u>defwNetPathViaWithOrientStr</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047571" title="6" name="129864"><font color="#0000ff"><u>Regular Wiring Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1048341" title="6" name="129866"><font color="#0000ff"><u>Subnet</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025209" title="6" name="129868"><font color="#0000ff"><u>defwNetSubnetStart</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024537" title="6" name="129870"><font color="#0000ff"><u>defwNetSubnetEnd</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024544" title="6" name="129872"><font color="#0000ff"><u>defwNetSubnetPin</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047572" title="6" name="129874"><font color="#0000ff"><u>Subnet Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1061879" title="6" name="129876"><font color="#0000ff"><u>Nondefault Rules</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwStartNonDefaultRules" title="6" name="129878"><font color="#0000ff"><u>defwStartNonDefaultRules</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwEndNonDefaultRules" title="6" name="129880"><font color="#0000ff"><u>defwEndNonDefaultRules</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNonDefaultRule" title="6" name="129882"><font color="#0000ff"><u>defwNonDefaultRule</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNonDefaultRuleLayer" title="6" name="129884"><font color="#0000ff"><u>defwNonDefaultRuleLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNonDefaultRuleMinCuts" title="6" name="129886"><font color="#0000ff"><u>defwNonDefaultRuleMinCuts</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNonDefaultRuleVia" title="6" name="129888"><font color="#0000ff"><u>defwNonDefaultRuleVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwNonDefaultRuleViaRule" title="6" name="129890"><font color="#0000ff"><u>defwNonDefaultRuleViaRule</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1024550" title="6" name="129892"><font color="#0000ff"><u>Pins</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwStartPins" title="6" name="129894"><font color="#0000ff"><u>defwStartPins</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwEndPins" title="6" name="129896"><font color="#0000ff"><u>defwEndPins</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPin" title="6" name="129898"><font color="#0000ff"><u>defwPin</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinStr" title="6" name="129900"><font color="#0000ff"><u>defwPinStr</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaModel" title="6" name="129902"><font color="#0000ff"><u>defwPinAntennaModel</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinDiffArea" title="6" name="129904"><font color="#0000ff"><u>defwPinAntennaPinDiffArea</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinGateArea" title="6" name="129906"><font color="#0000ff"><u>defwPinAntennaPinGateArea</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinMaxAreaCar" title="6" name="129908"><font color="#0000ff"><u>defwPinAntennaPinMaxAreaCar</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinMaxCutCar" title="6" name="129910"><font color="#0000ff"><u>defwPinAntennaPinMaxCutCar</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinMaxSideAreaCar" title="6" name="129912"><font color="#0000ff"><u>defwPinAntennaPinMaxSideAreaCar</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinPartialCutArea" title="6" name="129914"><font color="#0000ff"><u>defwPinAntennaPinPartialCutArea</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinPartialMetalArea" title="6" name="129916"><font color="#0000ff"><u>defwPinAntennaPinPartialMetalArea</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinAntennaPinPartialMetalSideArea" title="6" name="129918"><font color="#0000ff"><u>defwPinAntennaPinPartialMetalSideArea</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinGroundSensitivity" title="6" name="129920"><font color="#0000ff"><u>defwPinGroundSensitivity</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinLayer" title="6" name="129922"><font color="#0000ff"><u>defwPinLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinNetExpr" title="6" name="129924"><font color="#0000ff"><u>defwPinNetExpr</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinPolygon" title="6" name="129926"><font color="#0000ff"><u>defwPinPolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinPort" title="6" name="129928"><font color="#0000ff"><u>defwPinPort</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinPortLayer" title="6" name="129930"><font color="#0000ff"><u>defwPinPortLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinPortLocation" title="6" name="129932"><font color="#0000ff"><u>defwPinPortLocation</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinPortPolygon" title="6" name="129934"><font color="#0000ff"><u>defwPinPortPolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinPortVia" title="6" name="129936"><font color="#0000ff"><u>defwPinPortVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinSupplySensitivity" title="6" name="129938"><font color="#0000ff"><u>defwPinSupplySensitivity</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwPinVia" title="6" name="129940"><font color="#0000ff"><u>defwPinVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047573" title="6" name="129942"><font color="#0000ff"><u>Pins Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1024591" title="6" name="129944"><font color="#0000ff"><u>Pin Properties</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025210" title="6" name="129946"><font color="#0000ff"><u>defwStartPinProperties</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024605" title="6" name="129948"><font color="#0000ff"><u>defwEndPinProperties</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024617" title="6" name="129950"><font color="#0000ff"><u>defwPinProperty</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1048674" title="6" name="129952"><font color="#0000ff"><u>Pin Properties Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1048676" title="6" name="129954"><font color="#0000ff"><u>Property Definitions</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025211" title="6" name="129956"><font color="#0000ff"><u>defwStartPropDef</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024640" title="6" name="129958"><font color="#0000ff"><u>defwEndPropDef</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047335" title="6" name="129960"><font color="#0000ff"><u>defwIntPropDef</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047352" title="6" name="129962"><font color="#0000ff"><u>defwRealPropDef</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047369" title="6" name="129964"><font color="#0000ff"><u>defwStringPropDef</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047582" title="6" name="129966"><font color="#0000ff"><u>Property Definitions Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1032848" title="6" name="129968"><font color="#0000ff"><u>Property Statements</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1032857" title="6" name="129970"><font color="#0000ff"><u>defwIntProperty</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1042569" title="6" name="129972"><font color="#0000ff"><u>defwRealProperty</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024686" title="6" name="129974"><font color="#0000ff"><u>defwStringProperty</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1050379" title="6" name="129976"><font color="#0000ff"><u>Property Statements Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1035438" title="6" name="129978"><font color="#0000ff"><u>Regions</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029887" title="6" name="129980"><font color="#0000ff"><u>defwStartRegions</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029901" title="6" name="129982"><font color="#0000ff"><u>defwEndRegions</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1042792" title="6" name="129984"><font color="#0000ff"><u>defwRegionName</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029926" title="6" name="129986"><font color="#0000ff"><u>defwRegionPoints</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwRegionType" title="6" name="129988"><font color="#0000ff"><u>defwRegionType</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047584" title="6" name="129990"><font color="#0000ff"><u>Regions Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1030184" title="6" name="129992"><font color="#0000ff"><u>Rows</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030204" title="6" name="129994"><font color="#0000ff"><u>defwRow</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1052043" title="6" name="129996"><font color="#0000ff"><u>defwRowStr</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047585" title="6" name="129998"><font color="#0000ff"><u>Rows Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1024695" title="6" name="130000"><font color="#0000ff"><u>Scan Chains</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025213" title="6" name="130002"><font color="#0000ff"><u>defwStartScanchains</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1069935" title="6" name="130004"><font color="#0000ff"><u>defwEndScanchains</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024714" title="6" name="130006"><font color="#0000ff"><u>defwScanchain</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024720" title="6" name="130008"><font color="#0000ff"><u>defwScanchainCommonscanpins</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024725" title="6" name="130010"><font color="#0000ff"><u>defwScanchainFloating</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwScanchainFloatingBits" title="6" name="130012"><font color="#0000ff"><u>defwScanchainFloatingBits</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1059196" title="6" name="130014"><font color="#0000ff"><u>defwScanchainOrdered</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwScanchainOrderedBits" title="6" name="130016"><font color="#0000ff"><u>defwScanchainOrderedBits</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwScanchainPartition" title="6" name="130018"><font color="#0000ff"><u>defwScanchainPartition</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1058211" title="6" name="130020"><font color="#0000ff"><u>defwScanchainStart</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024745" title="6" name="130022"><font color="#0000ff"><u>defwScanchainStop</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1048984" title="6" name="130024"><font color="#0000ff"><u>Scan Chain Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#SpecialNets" title="6" name="130026"><font color="#0000ff"><u>Special Nets</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029945" title="6" name="130028"><font color="#0000ff"><u>defwStartSpecialNets</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029962" title="6" name="130030"><font color="#0000ff"><u>defwEndSpecialNets</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029971" title="6" name="130032"><font color="#0000ff"><u>defwSpecialNet</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029991" title="6" name="130034"><font color="#0000ff"><u>defwSpecialNetEndOneNet</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1032173" title="6" name="130036"><font color="#0000ff"><u>defwSpecialNetConnection</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1059550" title="6" name="130038"><font color="#0000ff"><u>defwSpecialNetEstCap</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetFixedBump" title="6" name="130040"><font color="#0000ff"><u>defwSpecialNetFixedBump</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1058062" title="6" name="130042"><font color="#0000ff"><u>defwSpecialNetOriginal</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1058295" title="6" name="130044"><font color="#0000ff"><u>defwSpecialNetPattern</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030056" title="6" name="130046"><font color="#0000ff"><u>defwSpecialNetSource</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030084" title="6" name="130048"><font color="#0000ff"><u>defwSpecialNetUse</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030094" title="6" name="130050"><font color="#0000ff"><u>defwSpecialNetVoltage</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030103" title="6" name="130052"><font color="#0000ff"><u>defwSpecialNetWeight</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047591" title="6" name="130054"><font color="#0000ff"><u>Special Nets Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1030116" title="6" name="130056"><font color="#0000ff"><u>Special Wiring</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030124" title="6" name="130058"><font color="#0000ff"><u>defwSpecialNetPathStart</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030133" title="6" name="130060"><font color="#0000ff"><u>defwSpecialNetPathEnd</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1030144" title="6" name="130062"><font color="#0000ff"><u>defwSpecialNetPathLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1062725" title="6" name="130064"><font color="#0000ff"><u>defwSpecialNetPathPoint</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetPathPointWithWireExt" title="6" name="130066"><font color="#0000ff"><u>defwSpecialNetPathPointWithWireExt</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1064178" title="6" name="130068"><font color="#0000ff"><u>defwSpecialNetPathShape</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetPathStyle" title="6" name="130070"><font color="#0000ff"><u>defwSpecialNetPathStyle</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1063137" title="6" name="130072"><font color="#0000ff"><u>defwSpecialNetPathVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetPathViaData" title="6" name="130074"><font color="#0000ff"><u>defwSpecialNetPathViaData</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1058315" title="6" name="130076"><font color="#0000ff"><u>defwSpecialNetPathWidth</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetShieldNetName" title="6" name="130078"><font color="#0000ff"><u>defwSpecialNetShieldNetName</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetPolygon" title="6" name="130080"><font color="#0000ff"><u>defwSpecialNetPolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetRect" title="6" name="130082"><font color="#0000ff"><u>defwSpecialNetRect</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047592" title="6" name="130084"><font color="#0000ff"><u>Special Wiring Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1051269" title="6" name="130086"><font color="#0000ff"><u>Shielded Routing</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1051238" title="6" name="130088"><font color="#0000ff"><u>defwSpecialNetShieldStart</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1049292" title="6" name="130090"><font color="#0000ff"><u>defwSpecialNetShieldEnd</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1049299" title="6" name="130092"><font color="#0000ff"><u>defwSpecialNetShieldLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetShieldPoint" title="6" name="130094"><font color="#0000ff"><u>defwSpecialNetShieldPoint</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1049328" title="6" name="130096"><font color="#0000ff"><u>defwSpecialNetShieldShape</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1049362" title="6" name="130098"><font color="#0000ff"><u>defwSpecialNetShieldVia</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetShieldViaData" title="6" name="130100"><font color="#0000ff"><u>defwSpecialNetShieldViaData</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSpecialNetShieldWidth" title="6" name="130102"><font color="#0000ff"><u>defwSpecialNetShieldWidth</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1049460" title="6" name="130104"><font color="#0000ff"><u>Shielded Routing Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1052810" title="6" name="130106"><font color="#0000ff"><u>Slots</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwStartSlots" title="6" name="130108"><font color="#0000ff"><u>defwStartSlots</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwEndSlots" title="6" name="130110"><font color="#0000ff"><u>defwEndSlots</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSlotLayer" title="6" name="130112"><font color="#0000ff"><u>defwSlotLayer</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSlotPolygon" title="6" name="130114"><font color="#0000ff"><u>defwSlotPolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwSlotRect" title="6" name="130116"><font color="#0000ff"><u>defwSlotRect</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1062343" title="6" name="130118"><font color="#0000ff"><u>Styles</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwStartStyles" title="6" name="130120"><font color="#0000ff"><u>defwStartStyles</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwEndStyles" title="6" name="130122"><font color="#0000ff"><u>defwEndStyles</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwStyles" title="6" name="130124"><font color="#0000ff"><u>defwStyles</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1058605" title="6" name="130126"><font color="#0000ff"><u>Technology</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwTechnology" title="6" name="130128"><font color="#0000ff"><u>defwTechnology</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1045530" title="6" name="130130"><font color="#0000ff"><u>Tracks</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1029872" title="6" name="130132"><font color="#0000ff"><u>defwTracks</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1047593" title="6" name="130134"><font color="#0000ff"><u>Tracks Example</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1058627" title="6" name="130136"><font color="#0000ff"><u>Units</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwUnits" title="6" name="130138"><font color="#0000ff"><u>defwUnits</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1058387" title="6" name="130140"><font color="#0000ff"><u>Version</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwVersion" title="6" name="130142"><font color="#0000ff"><u>defwVersion</u></font></a></dd>
<p> <a name=""></a><a href="ch6DEFwriter.html#1024881" title="6" name="130144"><font color="#0000ff"><u>Vias</u></font></a></p>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1025215" title="6" name="130146"><font color="#0000ff"><u>defwStartVias</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024891" title="6" name="130148"><font color="#0000ff"><u>defwEndVias</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1033722" title="6" name="130150"><font color="#0000ff"><u>defwViaName</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1033824" title="6" name="130152"><font color="#0000ff"><u>defwOneViaEnd</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwViaPolygon" title="6" name="130154"><font color="#0000ff"><u>defwViaPolygon</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1024821" title="6" name="130156"><font color="#0000ff"><u>defwViaRect</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwViaViarule" title="6" name="130158"><font color="#0000ff"><u>defwViaViarule</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwViaViaruleRowCol" title="6" name="130160"><font color="#0000ff"><u>defwViaViaruleRowCol</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwViaViaruleOrigin" title="6" name="130162"><font color="#0000ff"><u>defwViaViaruleOrigin</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwViaViaruleOffset" title="6" name="130164"><font color="#0000ff"><u>defwViaViaruleOffset</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#defwViaViarulePattern" title="6" name="130166"><font color="#0000ff"><u>defwViaViarulePattern</u></font></a></dd>
<dd> <a name=""></a><a href="ch6DEFwriter.html#1060298" title="6" name="130168"><font color="#0000ff"><u>Vias Example</u></font></a></dd>
<h2><a href="ch7DEFcompressed.html" title="7" name="130170"><font color="#0000ff"><u>7</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch7DEFcompressed.html#1014156" title="7" name="130172"><font color="#0000ff"><u>DEF Compressed File Routines</u></font></a></h2>
<dd> <a name=""></a><a href="ch7DEFcompressed.html#1014302" title="7" name="130174"><font color="#0000ff"><u>defGZipOpen</u></font></a></dd>
<dd> <a name=""></a><a href="ch7DEFcompressed.html#1014311" title="7" name="130176"><font color="#0000ff"><u>defGZipClose</u></font></a></dd>
<dd> <a name=""></a><a href="ch7DEFcompressed.html#1021641" title="7" name="130178"><font color="#0000ff"><u>Example</u></font></a></dd>
<h2><a href="ch8lefdiff.html" title="8" name="130180"><font color="#0000ff"><u>8</u></font>
</a></h2>
<h2> <a name=""></a><a href="ch8lefdiff.html#1014156" title="8" name="130182"><font color="#0000ff"><u>DEF File Comparison Utility</u></font></a></h2>
<dd> <a name=""></a><a href="ch8lefdiff.html#1022364" title="8" name="130184"><font color="#0000ff"><u>lefdefdiff</u></font></a></dd>
<dd> <a name=""></a><a href="ch8lefdiff.html#1021641" title="8" name="130186"><font color="#0000ff"><u>Example</u></font></a></dd>
<h2><a href="appA_DEFexamples.html" title="A" name="130188"><font color="#0000ff"><u>A</u></font>
</a></h2>
<h2> <a name=""></a><a href="appA_DEFexamples.html#1011663" title="A" name="130190"><font color="#0000ff"><u>DEF Reader and Writer Examples</u></font></a></h2>
<p> <a name=""></a><a href="appA_DEFexamples.html#1016399" title="A" name="130192"><font color="#0000ff"><u>DEF Reader Example</u></font></a></p>
<p> <a name=""></a><a href="appA_DEFexamples.html#1021125" title="A" name="130194"><font color="#0000ff"><u>DEF Writer Example</u></font></a></p>
</div>
<br>
<a href="#pagetop">Return to top of page</a>
<hr>
<hr align="left">
<div style="text-align: left;">
<!-- Begin Buttons -->
<table width="650" cellpadding="0" cellspacing="0" border="0">
<tr>
<td height="20" width="59">
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
</td>
<td height="20" width="73">
<img src="../support/nav2_toc_b.gif" alt="Table of Contents" border="0">
</td>
<td height="20" width="46">
<img src="../support/nav2_index_b.gif" border="0">
</td>
<td>
<a href="titlecopy.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
</td>
<td>
<a href="preface.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
</td>
<td>
<a>
<a href="defapi.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
</a>
</td>
<td height="20" width="61">
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
</td>
<td height="20" width="76">
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
</td>
<td height="20" width="43">
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
</td>
<td height="20" width="37">
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
</td>
</tr>
</table>
<!-- End Buttons -->
</div>
<br>
<font size="-1" >
For support, see <a href="http://support.cadence.com" target="_blank">Cadence Online Support</a> service.</font>
<br>
<br>
<font size="-1" >
<font size="-1"><i>Copyright &#169; 2016, <a href ="http://www.cadence.com">Cadence Design Systems, Inc.</a></i></font>
</font>
<br>
<font size="-1" >
All rights reserved.</font>
<br>
<br>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Some files were not shown because too many files have changed in this diff Show More