contact us
     
 
RSI Websites 

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. 

  1. 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).

  2. 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:

  1. 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)

  2. 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

  3. 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:

  1. 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.

  2. 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.

  3. 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.