The BUILD_ECS MACRO Creates a Named ELECTRICAL_CONSTRAINT_SET (ECS) which can be applied to matching NetNames
Electrical Constraint Sets
An Electrical Constraint Set (ECS) is use to constrain the Electrical attributes of signals on each routing layer. Nets
BUILD_ECS can constrain many different parameters for a group of signals, and can also apply a PHYSICAL_CONSTRANT_SET (PCS) to the same group.
PARAMETERS that can be constrained include VIAS_MAX,VIAS_MATCH,MIN_PROP_DLY,MAX_PROP_DLY,MIN_TOTAL_ETCH,MAX_TOTAL_ETCH,
TOP_MAP_MODE,TOP_VERIFY_SCHEDULE,TOP_SCHEDULE_CONTROL,STUB_LENGTH,MAX_EXPOSED,MAX_PARALLEL,LAYER_SETS
BUILD_ECS
This Line tells dal constraints to create a new named ECS
syntax:
BUILD_ECS | NAME=> | NAME_FOR_ECS
the TYPE=> Attribute tells dal constraints what type of ECS the user wants to create
Valid options are: DIFF_PAIR and SINGLE_ENDED
UNITS
The UNITS=>Attribute tells dal constraints what units to use for the PCS
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 15Syntax:
TYPE=>[DIFF_PAIR|SINGLE_ENDED]
The DIFF_PAIR ECS is used to create Dynamic (DPA) and Static Differential Pair Routing Rules.
These are very powerful constraints which Allegro PCB uses to control the skew between the diff_pair mate nets.
The DYNAMIC
ASSIGN_PCS
The ASSIGN_PCS=>Attribute assigns an existing PCS to any nets assigned to this ECS
The PCS may have been created using the BUILD_PCS MACRO or when dal constraints imported the stackup.
Syntax:
ASSIGN_PCS=>PCS_NAME
Example
ASSIGN_PCS=>90_OHM_DIFF
TRACE_WIDTH_PARAMETERS
the TRACE_WIDTH_PARAMETERS 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=> L1,L24=12:L4,L5,L8,L9,L16,L17,L20,L21=6
This specifies that target single_ended nets on Layers 1 and 24 should be routed at 12 mils, 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=18MEMBERS
The MEMBERS=> Attribute tells dal constraints what nets to apply the new PCS to.
This is an optional attribute when you are creating a PCS that will be assigned from an ECS.
The syntax is MEMBERS=>net_match1,net_match2.... net_matchN
like
MEMBERS=>P48V,P48V_RTN
This tells dal constraints to assign this PCS 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 seperated 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