The Structure and Syntax of the CadEnhance Symbol Description Language (SDL) is described here
Symbol Description Language Structure
The Symbol Description Language was designed to be brief, simple to understand and easy to enter.
A Symbol Description Language File is a collection of ordered Symbol_Name_Definitions which wrap around Match_Statements and Spacer_Commands
Symbol_Name_Definitions and Match_Statements and Spacer_Commands can also appear between Loop_Directives
Symbol_Name_Definition
A Symbol_Name_Definition is used to instruct partBuilder to start organizing pins into a named symbol.
It has 2 parts, a beginning:
SymbolName=
and an end which is just the terminating semicolon.
';'
The SymbolName is the actual name you want to use for the symbol and it should not contain spaces
in the simple sample file, the start of the first Symbol_Name_Definition was
DRAM_ACTL_PINS=
That was followed by several Match_Statements
and was terminated by the
';'
character
It instructed partBuilder to reserve a Symbol named DRAM_ACTL_PINS as a place to add the pins matching the containing Match_Statements that follow.
Match_Statements
Match_Statements are what tell partBuilder which pins to place within the current symbol, what side to place them on and any other modifier to enable creating special graphics or properites for the pins that match.
Match_Statements are built out of LOCATOR, MODIFIER and PIN_MATCH elements
The simplest Match_Statement has not modifier and is entered as
LOCATOR=>PIN_MATCH
MODIFIERS are added on the left hand side of the '=>' either before or after the LOCATOR, but in all our examples willshow the LOCATOR first.
The structure of a Match_Statement with multiple modifiers is as follows
LOCATOR;MOD1:MOD2:...MODn=>PIN_MATCH.
There is no restriction on the number of valid MODIFIERS that can be added to a MATCH_STATEMENT
LOCATOR
Valid Locators are mostly obvious, and are explained in the following table
Locator | Effect |
---|---|
LEFT | place matching pins on the Left Hand Side of the symbol |
RIGHT | place matching pins on the Right Hand Side of the symbol |
BOTH | distribute the matching pins equally on the Left and Right Hand sides of the symbol |
TOP | place matching pins on the top side of the symbol |
BOT or BOTTOM | place matching pins on the bottom side of the symbol |
AUTO | place matching INPUT pins on the Left Hand Side of the symbol place matching OUTPUT or INOUT pins on the Right Hand Side of the symbol distribute all other pin_types equally on the Left and Right Hand Sides of the symbol |
MODIFIER
Valid Modifiers are explained in the following table. Modifiers may be further broken down by partBuilder to impart extra information as shown
MODIFIER | Effect | Special Notes |
---|---|---|
DOT or BUBBLE | Instructs PartBuilder to Add an Inversion Bubble in the proper place for any matching pin | |
CLK or CLOCK | Instructs PartBuilder to Add a clock indicator like '>' in the proper place for any matching pin | |
SHORT | Instructs PartBuilder to create a SHORT Pin | works for Eagle and Orcad Symbols |
ZERO | Instructs PartBuilder ORCAD zero Length Pins | |
HIDDEN | Instructs partBuilder to create a Hidden Pin. | This currently only works with AllegroHDL and is not reccomended |
VECTOR or VECTORED | Instructs PartBuilder to create one symbol pin to represent 2 or more pins. | This currently only works with AllegroHDL and can be used to significantly reduce the size of power symbols |
IS_PIN | Instructs PartBuilder that the PIN_MATCH should be applied to the Pin Number instead of the Pin Name | This makes it very easy to create connectors and parts which are built like their physical layout |
DPAIR DPAIR_{OPT_SUFFIX} | Instructs PartBuilder to place both the matching diff_pair pin AND its mate pin in sequence | The DPAIR Modifier can be appended with a suffix to impart more information to override the default diff_pair spacing that is configured for partBuilder. |
PSG_{swapGroupName} | Instructs PartBuilder that the matching pins are a member of a PIN_SWAP_GROUP. PartBuilder maintains a list of all the PIN_SWAP group names and properly annotates the matching pins so they can be included in the PIN_SWAP in the PCB side. | The name of the pinSwapGroup must be provided in the suffix to the PSG_ modifier. This is supported directly for AllegroHDL |
PIN_MATCH
The PIN_MATCH is the string that PartBuilder uses to test all pins in the extracted pinData for a match.
PIN_MATCHES may be entered as a simple string or with a wildcard.
They may also be entered as a valid Perl Regular Expression
Add Comment