Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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

LocatorEffect
LEFTplace matching pins on the Left Hand Side of the symbol
RIGHTplace matching pins on the Right Hand Side of the symbol
BOTHdistribute the matching pins equally on the Left and Right Hand sides of the symbol
TOPplace matching pins on the top side of the symbol
BOT or BOTTOMplace 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

MODIFIEREffectSpecial Notes
DOT or BUBBLEInstructs PartBuilder to Add an Inversion Bubble in the proper place for any matching pin
CLK or CLOCKInstructs PartBuilder to Add a clock indicator like '>' in the proper place for any matching pin
SHORTInstructs PartBuilder to create a SHORT Pinworks for Eagle and Orcad Symbols
ZEROInstructs 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_PINInstructs PartBuilder that the PIN_MATCH should be applied to the Pin Number instead of the Pin NameThis 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 sequenceThe 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


  • No labels