Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The BUILD_PCS SCS MACRO Creates a Named PHYSICALNamed SPACING_CONSTRAINT_SET (PCSSCS) which can be applied to matching NetNames or referenced by an Electrical Constraint Set (ECS)netNames

Table of Contents

Page Tree
root@self

Image RemovedImage AddedPhysical
Constraint

SPACING Constraint Sets (SCS)

A Physical SPACE Constraint Set is use used to constrain the PHYSICAL attributes the LINE_TO_LINE attributes of signals on each routing  layer. The dal Stackup tool creates named PCS for each impedance rule extracted from the stackup spreadsheet.

If more impedance rules are needed, the BUILD_PCS macro can be used to easily define them in a few rows

BUILD_PCS can define impedance width and spacing rules for each layer as well as the minimum width required for matching power nets.

It can also create rules to exclude routing layers for target nets



BUILD_PCS  

BUILD_SCS  

This Line tells dal constraints to create a new named PCS SCS 

syntax: 

BUILD_PCS  SCS  | NAME=> | NAME_FOR_PCS

TYPE

the TYPE=> Attribute  tells dal constraints what type of PCS the user wants to create

Valid options are: DIFF_IMPEDANCE, SINGLE_ENDED_IMPEDANCE and POWERSCS



UNITS

The UNITS=>Attribute tells dal constraints what units to use for the PCS SCS 

Valid options are: MILS and MM

ON_LAYERS

the ON_LAYERS=> attribute lets the user exclude certain routing layers for the target nets



The ON_LAYERS attribute is converted to AllegroPCB ALLOW_ETCH contraints 

All nets default to ALLOW_ETCH =1 for every layer.

The ON_LAYERS lets us turn off the ALLOW_ETCH for specific layers

Syntax:

ON_LAYERS=>-12,-15 

this command says that the target nets are allowed on every layer except  Layers 12 and 15

TRACE_WIDTH_PARAMETERS

the TRACE_WIDTH_PARAMETERS

LINE_TO_LINE

the LINE_TO_LINE attribute provides a list of routing widths and spacing for each routing layer (using the UNITS attribute)

example syntax for TYPE=>DIFF_IMPEDANCE  

TRACE_WIDTH_PARAMETERS=> L1,L24=10/7.5:L4,L5,L8,L9,L16,L17,L20,L21=3.7/5

This specifies that target diff_pair nets  on Layers 1 and 24  should be routed at 10 mils and 7.5 mil edge to edge spacing. On layers 4,5,6,7,8,9,16,17 and 21 target diff_pairs should be routed at 3.75 mils and 5  mil spacing

example syntax for TYPE=>SINGLE_ENDED_IMPEDANCE 

TRACE_WIDTH_PARAMETERS

Syntax:  

LINE_TO_LINE=>LayerList1=ReqSpace1:LayerList2=ReqSpace2...:LayerListN=ReqSpaceN

Example:

LINE_TO_LINE=> L1,L24=1218:L4,L5,L8,L9,L16,L17,L20,L21=615

This specifies that target single_ended nets  all nets on Layers 1 and 24  should be routed at 12 mils, On 24 must be kept 18 mils apart from the target nets on Layers 1 and 24, and on layers 4,5,6,7,8,9,16,17 and 21 target single_ended nets should be routed at 6 mils

example syntax for TYPE=>POWER

TRACE_WIDTH_PARAMETERS=> L1,L24=25:L4,L5,L8,L9,L16,L17,L20,L21=18

all nets must be kept 15 mils away from the target nets.



MEMBERS

The MEMBERS=> Attribute tells dal constraints what nets to apply the new PCS SCS to. 

This is an optional attribute when you are creating a PCS SCS that will be assigned from an ECS.

Syntax:

The syntax is MEMBERS=>net_match1,net_match2.... net_matchNlike

Example:

MEMBERS=>P48V,P48V_RTN

This tells dal constraints to assign this PCS SCS to any net containing 'P48V' or 'P48V_RTN'

in this case the net_match is a simple text pattern 


The MEMBERS net_matches are treated as regular expressions by dal constraints and are quite powerful.

To see more information on regular expression entry see  Regular Expressions In CadEnhance Tools



NOT_MATCHING

The NOT_MATCHING=>Attribute is optional and works together with the MEMBERS attribute to fully define the set of target nets

The NOT_MATCHING is a  comma separated list of patterns that will be used to exclude nets from the set of nets that match the MEMBER patterns

Together the 2 attributes make very simple to define a large set of nets without having to create a very large list of specific matches



Anchor
NEXT_PHASE_SCS
NEXT_PHASE_SCS

NEXT PHASE SCS Enhancement Plan

Background on the SPACE_CONSTRAINT

The SPACE CONSTRAINT  specifies many different TYPE_TO_TYPE spacing rules on every layer of the board

for example as shown here in the constraint manager view, there is a constraint for LINE_TO_XXX where XXX is one of the following

  1. LINE
  2. THRU_PIN
  3. SMD_PIN
  4. TEST_PIN
  5. THRU_VIA
  6. BB_VIA
  7. TEST_VIA
  8. SHAPE
  9. BOND_FINGER
  10. HOLE

Then there is  the same list of constraints for PIN_TO_XXX, VIA_TO_XXX, SHAPE_TO_XXX, HOLE_TO_XXX, BOND_FINGER_TO_XXX BB_VIA_TO_XXX

Image Added


When Creating a SPACE CONSTRAINT, dal constraints currently only supports the LINE_TO_LINE Attribute.

So It creates an SCS with all the other spacing constraints set to the value of the DEFAULT setting and then overwrites the LINE_TO_LINE setting

Add ETCH_TO_ECTH Attribute 

In the next PHASE it would be a good idea to add an ETCH_TO_ETCH Attribute where ALL the spacing constraints are set to the value specified by the ETCH_TO_ETCH setting

Add an  APPLY_SCS Attribute to the BUILD_ECS MACRO

This would allow the user the convenience of adding an SCS assignment as part of an ECS definition so that all member nets can be assigned an SCS.