Allegro (.PCB) Script Files Write
Overview
CAMCAD creates a series of Allegro script files in
the destination directory selected during the export procedure.
The *.psr files are padstack scripts. The *.scr files with
corresponding *.txt files are Package Symbol scripts. The
other *.scr files are Shape Symbol, Mechanical Symbol, and
Format Symbol scripts. There is additionally one other .scr
file, the "autobrd.scr" file. The "autobrd.scr" is the script
file which creates the Layout design.
For directions on loading the script files into Allegro,
please see the Using the
Script Files section.
Versions Supported
At present we support Versions 13.5 and 13.6 of Cadence
Allegro with both Skill and non-Skill outputs. Cadence Allegro
Version 14 is supported only using non-Skill output. Please
make sure your settings in your "Allegro.out"
file are correct for your version and Skill/non-Skill
preference. (Cadence APD is not supported.)
Specific Export Procedures
Once you have imported and verified the design data you are
exporting to the Cadence Allegro Layout format you are ready
to export Cadence Allegro script files. Select File
| Export from the menu. Select Cadence
Allegro PCB (Script) write from the "Licensed"
column of the Export File Format dialog. After that you will
you will be asked to save the file as *.scr. Enter a base
name for the script files and click the Save
button.
Rules, Options & Settings
The "Allegro Export Format" dialogue will appear:
This dialogue indicates the default location
and file names of the rule files that will
be used during the writing of the Allegro Script files. The
text boxes are editable and browse buttons are provided for
the selection of custom configured rules files.
The ALLEGRO.CHK file contains commands that
set, by an object type, the acceptable name length in
Allegro as well as the allowed characters to be used. This
is followed by an object name prefix. This prefix will be
used in conjunction with an auto-generated incremental
four-digit number, starting with 0001 and incrementing in
steps of one to 9999, to generate a unique and acceptable
object name for objects whose name violates the assigned
rule. In general the default ALLEGRO.CHK file should be
configured to the known allowed naming conventions of
Cadence Allegro. Additional commands are available in the
ALLEGRO.CHK to allow for partial and full string substitutions
for a specified object type. These commands are very useful
and allow for controlled renaming of objects that do not
comply with the naming rules.
The ALLEGRO.OUT file contains commands that
enable or disable options and configure settings of the
Allegro Script Writer. Some of the settings are output unit
dependant and great care should be used in modifying the
parameters of these commands or when modifying the output
units command. This file also contains Layer Mapping
settings. The mapping of the flat layer structure in the
CAMCAD environment to the object dependant Class/Subclass
layer structure in the Allegro design environment is
complicated two step process that will be further detailed
in Layer Mapping subsection.
Select the desired rules files to be used or keep the
defaults and click "OK" to continue.
Layer Mapping
The Allegro
Layer Editor dialogue will appear. On the left side you have
the Original layer names and on the right side you have the
Generic Allegro Subclass names.
You may want to turn some layers off/on-
this will all depend on the layers you want to use.
The configuration file we use is a file called Allegro.out.
This file can be changed (edited) to reflect the desired layers
you may want to use. Keep in mind your Allegro.out will have
to agree with the layers you assign in the layer mapping.
Tips, Notes and Exporting Questions
Allegro Plane Support
The types of plane data generated and supported by various
ECAD systems varies almost as much as the ECAD systems vary
one from the other.
The types of planes supported by and how to implement these
structures in Allegro is well defined. Plane definitions in
Allegro are dependant on the type of layer it is placed
on.
On positive electrical layers a filled shape is added
(must be wholly inside the route keepin),
void/keepout/Anti Etch area(s) are added (if
needed/desired), the pour shape is assigned to the proper
net, clearance rules are applied, the AutoVoid process is
run, and then the shape is filled. The Allegro design
system will then generate the final plane shape to conform
to the applied rules. The generated plane shape will
consist of a pour outline, void shapes for clearances, and
possibly thermal tie lines (if connected pins were not
flooded).
On negative electrical layers Allegro allows for a
single-net negative or a multi-net split negative (CAM)
plane to be created. Allegro will use specific types of
elements on the Anti Etch class for this plane layer as
well as route keepouts for the specific subclass and ALL
to create splits for either type of negative plane. Once
Anti Etch and keepouts have been added a filled shape must
be added (must be wholly inside the route keepin) and
assigned to the proper net to define the plane coverage
area. With a split negative plane multiple filled shapes
will be defined. Split planes require further definition
using the Edit | Split Plane | Create menu command
in the Allegro environment and requires the user to
re-assign net names to the filled shapes on the plane
layer.
The following is a list of helpful topics in the Allegro
On-Line help documentation:
- Creating a Positive Plane
- Creating a Negative Plane
- Creating a Split Plane
- About Positive and Negative Planes
- About Positive Artwork
- About Negative Artwork
Once it is understood what types of planes are acceptable
in Allegro and how the planes are constructed we can compare
this to the types of planes from other ECAD systems in CAMCAD,
how they are constructed, and how these constructs are written
to the Allegro script output.
ECAD System Plane Types and Corresponding Constructs in the
CAMCAD Environment:
Positive Pour Boundary Area Definition only:
Positive Pour Boundary: Some ECAD systems may only
store the boundary shape for a poured region and
dynamically generate the actual copper regions in the
design environment. Other ECAD systems may store the
boundary shape up until it is
poured/filled/hatched/processed through some design
function to generate the actual board copper. It is
possible that ECAD environments that operate in this
manner may store the boundary shape in
conjunction with and after the actual board copper is
processed (if changes are made and the shape is
re-poured/filled/etc.). In these cases the import
configuration file for the specific format may have a
command to recognize either the boundary or the
processed copper. In general CAMCAD will import a pour
boundary shape as a closed polygon with a boundary
flag (optional), a NETNAME attribute assignment (if
available), and a Graphic Class of ETCH (optional).
The Optional items depend on the specific reader and
the If Available item depends on the format being
read.
Reader Examples: OrCAD, SuperMAX (DDE), and Mentor
Boardstation (Reader Option)
Processed or Derived Positive Pour Definition as a True
Representation of Board Copper.
Positive Pour with Voids (Paint and Scratch): Some
ECAD systems may store only the processed or derived
board copper, or this is the structure read in by the
particular reader, as a poured polygon (paint/copper)
with voids (scratch/remove copper). The resulting
structure in CAMCAD is a Poly Structure. A Poly
structure is comprised of one or more polygons that
make up a single logical entity. Certain properties
can only be applied to the poly structure (Graphic
Class and Attributes) and other properties can only be
applied to polygons (filled, boundary, void). In the
case of a positive pour with voids the poly structure
would contain a polygon for the pour outline flagged
as Closed and Filled as well as a polygon for each
void area flagged as Closed, Filled, and Void. The
poly structure should have a assigned Graphic Class of
Etch and have a NETNAME attribute with the value of
the assigned net. This method is the most concise in
storing the actual processed or derived copper areas
as fabricated.
Reader Examples: Accel EDA/PCAD 200x, Cadence Allegro,
and Pads Power PCB
Positive Hatch Pour: Some ECAD systems may store
only the processed or derived board copper as a series
of hatch lines and hatch boundaries. The import
configuration file for the specific format(s) that
store hatch data may contain a command option to
ignore the hatch line data (if it is independently identifiable)
and may also contain a command option to ignore the
the hatch boundary data (again if it is independently identifiable).
If the complete hatch is imported CAMCAD will store
the hatch lines and boundaries in a single poly
structure comprised of individual Closed polygons for
each boundary structure and 2 point polygons (lines)
for each of the individual hatch line segments. The
poly structure should have a assigned Graphic Class of
ETCH and have a NETNAME attribute with the value of
the assigned net. If only the hatch boundaries are
imported (hatch boundaries are used to smooth all
edges of the hatched area) CAMCAD will store the
boundaries in a single poly structure comprised of
individual Closed polygons for each boundary
structure. The poly structure should have a assigned
Graphic Class of ETCH and have a NETNAME attribute
with the value of the assigned net. Full hatched areas
can consist of thousands of polygons in a poly
structure and the hatch boundaries can consist of
hundreds of polygons with thousands of vertices.
Reader Examples: Protel for Windows
Positive Cracked Pour: Some ECAD systems may store
the processed or derived board copper as a single
polygon where the pour boundary has first been
modified to conform, according to applicable rules, to
the surrounding pins, vias, traces, etc. (this can at
times result in several disjointed shapes), this shape
is then cracked at locations and segments are added to
create isolation around pins as an integral part of
the generated single closed filled polygon. In CAMCAD
the result is a poly structure consisting of one or
more Closed Filled polygons. The poly structure should
have a assigned Graphic Class of ETCH and have a
NETNAME attribute with the value of the assigned net.
The process of cracking the polygon, extending the
polygon to a pin for isolation, outlining the pin and
proceeding to connect back to the other endpoint of
the crack adds many vertices and produces an
coincident line anomaly that can not be handled by
some of the output/target systems. The resulting
polygon can consist of thousands to hundreds of
thousands of vertices.
Reader Examples: Mentor Boardstation
Negative Plane Definitions: Most ECAD systems follow
similar conventions for setting up CAM planes. In general
the following steps, though not necessarily in this order,
are used to set up a CAM Plane: The electrical layer to be
used as a CAM Plane must be identified properly according
to the type of plane it is. Net(s) are assigned to the
plane. Splits and cutout/anti etch areas are defined.
Areas are defined for each net on a plane layer and are
assigned the appropriate net. The following lists three
possible types of Negative or CAM planes:
Single Net CAM Plane: A layer being assigned as
Negative, CAM, or Plane having only one net
assignment. These plane layers may contain split
lines, cutouts, anti etch, or route keepouts that have
an effect on the CAM output for this layer. Some ECAD
systems may require a area definition for the plane.
Inside the plane area the thermal and donut
connectivity data will be generated. The area
definitions may be closed or closed filled polygons.
The ECAD system may generate the connectivity
information in real-time, as part of an internal ECAD
process, or it may be generated only during the CAM
file generation process (Gerber output). For systems
that generate the connection information in real-time
or as part of an internal ECAD process this connection
information (thermals and donuts) may or may not be
stored in the file(s) read by CAMCAD. Additionally,
some ECAD systems allow the user to specify the CAM or
Artwork generation to produce a positive or negative
layer.
Multi-Net (Split) CAM Plane: A layer being assigned
as Negative, CAM, or Plane having multiple net
assignments. These plane layers may contain split
lines, cutouts, anti etch, or route keepouts that have
an effect on the CAM output for this layer. ECAD
systems typically require a area definition for each
net attached to the plane. Inside the plane area the
thermal and donut connectivity data will be generated.
The area definitions may be closed or closed filled
polygons. The ECAD system may generate the
connectivity information in real-time, as part of an
internal ECAD process, or it may be generated only
during the CAM file generation process (Gerber
output). For systems that generate the connection
information in real-time or as part of an internal
ECAD process this connection information (thermals and
donuts) may or may not be stored in the file(s) read
by CAMCAD. Additionally, some ECAD systems allow the
user to specify the CAM or Artwork generation to
produce a positive or negative layer.
Multi-Net Mixed Plane: The mixed plane has become
uncommon in the ECAD industry due to advancements in
the ECAD systems ability to process and store positive
pours natively (Positive pour with voids has a
distinct size advantage over positive hatch) as well
as in CAM formats (Gerber G36 poly fill command and
support for negative/void flashes and draws) that
allow positive pour data to be as concisely
represented as negative plane data. In any case, ECAD
systems that support this plane methodology will have
a layer set up as a mixed signal and plane layer. As
with the other plane types, these plane layers may
contain split lines, cutouts, anti etch, route
keepouts, plane net assignments, and CAM/negative
plane area definitions as well as routed traces from
pins and vias, board copper, and positive poured
regions. All of these objects have an effect on
the CAM output for this layer. Additionally, some ECAD
systems allow the user to specify the CAM or Artwork
generation to produce a positive or negative layer.
With all of the plane types the data constructs in CAMCAD
depends solely on the data that is stored in the file(s)
read by CAMCAD and the interpretation of this data according
to the format specification. It is our desire to represent
all data read as accurately as possible in the CAMCAD
environment.
The CAMCAD Allegro Script Writer, What it Does and Why:
Cadence Allegro does not have an ASCII layout database
file format counterpart to their binary layout database and
it is necessary to use the Allegro script interface to pass
individual commands to the Allegro design environment to
build the layout design.
These scripts can take a long time to load in the Allegro
design environment, therefore, certain optimizations have
been made to the script output to speed the load time into
Allegro. Specifically, all routes, copper, and plane areas
are loaded without net assignments to the board layout prior
to the netlist load and component placement is performed.
After the board layout has been loaded the user must
initiated the Allegro Derive Connectivity function that will
convert lines and shapes on Etch subclasses into connect
lines with net assignments and also assigns net names to
vias.
There several other factors that also contribute to
issues identified with working with plane information in
Cadence Allegro. Cadence Allegro has a limitation on what it
considers an acceptable outline for a filled shape. Allegro
will not accept a filled shape that crosses itself, however,
this limitation also considers coincident lines (lines that
do not cross but occupy the same space or touch) in a filled
shape to be crossing. Also, it is the users responsibility
to set up the electrical stackup (cross section) and film
type for the translated and required Etch subclass layers
and save this to an "unnamed.brd" file in the
script/design directory prior to loading the board script.
Etch subclasses not properly defined by the user will have
an adverse effect on the loaded data.
The information CAMCAD writes to the board script depends
on the construct in the CAMCAD environment. The following
are typical scenarios of CAMCAD constructs and how they are
written to Allegro and may not reflect the original intent
of the construct:
Closed polygons on electrical layers will be written
to the Allegro class/subclass assigned during layer
mapping as a unfilled shape (ufshape) with the
appropriate line width (if it is a zero width line it
will be assigned a width of one mil, 0.001").
This shape is then loaded into Allegro through the
board script prior to net load and component placement
and it will not have a net assignment. It is possible
that the shape will cross or intersect pins, vias,
and/or routes on the board and can cause problems
during the Derive Connectivity. Because of the
potential to corrupt the design integrity it is
suggested to take one of the following measures to
ensure data integrity:
Delete the offending constructs in the original
ECAD system and regenerate the file(s) for load
into CAMCAD or delete the offending constructs in
the CAMCAD environment. These areas will need to
be re-digitized in Allegro after the board script
is loaded, the Derive Connectivity is run, and DRC
errors have been cleared.
Move the offending constructs to a graphical
(non-electrical) layer in CAMCAD for conversion to
a Board Geometry subclass in Allegro for use as a
an outline template. These areas will need to be
re-digitized in Allegro after the board script is
loaded, the Derive Connectivity is run, and DRC
errors have been cleared.
Edit the offending constructs to be closed
filled polygons and move them to a graphical
(non-electrical) layer in CAMCAD for conversion to
a Class/Subclass that allows filled shapes in
Allegro. After the board script is loaded, the
Derive Connectivity is run, and DRC errors have
been cleared it should be possible to enter into
shape edit mode, select the desired filled shape,
modify the Class/Subclass, assign the appropriate
net, set the desired fill parameters and fill the
shape. This method should be applicable to both
positive and negative layer types, however, the
layer and plane settings should be properly
configured beforehand.
Closed & filled polygons on electrical layers
will be written to the Allegro class/subclass assigned
during layer mapping as a filled shape (fshape), if
the target class/subclass supports filled shapes, with
a zero width (Allegro does not allow for a filled
shape to have a width assigned, the poly vertices will
be written in order without consideration for the
dropped line width). This shape is then loaded into
Allegro through the board script prior to net load and
component placement and it will not have a net
assignment. It is possible that the shape will cross
or intersect pins, vias, and/or routes on the board
and can cause problems during the Derive Connectivity.
Because of the potential to corrupt the design
integrity it is suggested to take one of the following
measures to ensure data integrity:
Delete the offending constructs in the original
ECAD system and regenerate the file(s) for load
into CAMCAD or delete the offending constructs in
the CAMCAD environment. These areas will need to
be re-digitized in Allegro after the board script
is loaded, the Derive Connectivity is run, and DRC
errors have been cleared.
Move the offending constructs to a graphical
(non-electrical) layer in CAMCAD for conversion to
a Class/Subclass that allows filled shapes in
Allegro. After the board script is loaded, the
Derive Connectivity is run, and DRC errors have
been cleared it should be possible to enter into
shape edit mode, select the desired filled shape,
modify the Class/Subclass, assign the appropriate
net, set the desired fill parameters and fill the
shape. This method should be applicable to both
positive and negative layer types, however, the
layer and plane settings should be properly
configured beforehand.
Poly structures will be split apart and
written as individual structures. The closed polygons
will be handled as outlined in #1 above (i.e. Hatch
Bounaries). Closed &
filled polygons will be handled as outlined in #2
above (i.e. Poured polygon from a Positive Pour with
Voids).
Void polygons will be written to an
automatically generated Board Geometry subclass as
unfilled shapes (ufshape). The generated subclass is
named after the Etch subclass the voids belong to and
appended with a "_AFILL" suffix (i.e. voids
for the ETCH class, TOP subclass will be written to
BOARD_GEOMETRY class, TOP_AFILL subclass).
Void elements that are no longer on an Etch subclass
are not considered during the Derive Connectivity,
however, their absence from the filled area to which
they originally belong will render the filled area unusable
and cause design integrity issues.
All other poly elements of the poly structure, line
segments, arc segments and non-closed polygons, will be
written to the Allegro class/subclass assigned during layer
mapping as lines and arcs (i.e. hatch lines and
thermal tie lines). These
elements are written to the board script like any
other etch or connect line. This can result in an
unmanageable amount of potential connection
lines that must be processed by the Derive
Connectivity function in Allegro. This will add a considerable
amount of processing time required by the Derive
Connectivity function. Add to this that the Derive
Connectivity function attempts to determine pin to pin
routed connections and, due to this, most of the hatch
lines may not receive a net assignment and/or some pin
to pin, pin to via, and via to via connections may not
be determinable by the function (no endpoint to
endpoint direct route).
Because the individual elements of the poly
structure are handled independently it is suggested
that poly structures be exploded to their individual
poly elements in the CAMCAD environment. Closed
polygons should be addressed according to #1 above.
Closed & filled polygons should be addressed
according to #2 above. Void polygons may be deleted as
they will ultimately be segregated to a graphical
(non-electrical) subclass and will not have an impact
on the Derive Connectivity and will only serve to
clutter the design with unnecessary data. Hatch lines
and thermal tie lines are not suggested to be
translated at all and should be removed from the
design before translation.
NOTE: This discussion did not cover the Positive Pour method
referred to as "Positive Cracked Pour" as it
is understood that this structure will almost
certainly contain coincident lines and it is also
understood that Allegro will not accept this type of
structure as a unfilled shape or as a filled shape.
CAMCAD, while writing the Allegro script output, will independently
identify violating structures (it looks at each and
every closed polygon and closed & filled polygon)
and skip them (they are not written). Each violating
structure that is skipped will be identified in the
Allegro writer log file (allegro.log).
ADDITIONAL NOTE: It is always suggested to
re-create the pour areas in the target design
environment of a PCB Translation as this results in areas that are dynamic
and reactive to design changes in that design
environment and will likely
produced the desired results on CAM generation.
NOTE: This discussion did not cover the Positive Pour method
referred to as "Positive Cracked Pour" as it
is understood that this structure will almost
certainly contain coincident lines and it is also
understood that Allegro will not accept this type of
structure as a unfilled shape or as a filled shape.
CAMCAD, while writing the Allegro script output, will independently
identify violating structures (it looks at each and
every closed polygon and closed & filled polygon)
and skip them (they are not written). Each violating
structure that is skipped will be identified in the
Allegro writer log file (allegro.log).
ADDITIONAL NOTE: It is always suggested to
re-create the pour areas in the target design
environment of a PCB Translation as this results in areas that are dynamic
and reactive to design changes in that design
environment and will likely
produced the desired results on CAM generation.
|
|
|