READ_PIN_REPORT
The READ_PIN_REPORT goes through several steps:
Read and Verify Pin Report File
The First step is to read the Selected PIN_REPORT_FILE. The PIN_REPORT_TYPE setting tells PartBuilder what kind of file to expect
PartBuilder builds an internal database of all the pins it finds in the PIN_REPORT and stores:
- Pin name,
- Pin Number,
- Pin Type
- IO_STD if present
- Pin Delay if present
Rename Pins
If a RENAME_RULE is provided or if RENAME_RULES points to a file containing multiple RENAME_RULES, PartBuilder will go through the current pin database and rename any pins that match the RENAME_RULES. PartBuilder stores off the orginal name and then uses the new Name going forward
Override Pin Types
if a PinTypeOverride file exists, PartBuilder will go through the current pin database and change the PIN_TYPE for any pinnames that match the override rule
Override rules can be created in a text file by hand, or the PinExplorer pop-up can be used to add pin-mapping types to the file
Find Diff Pairs
After the Pins have been Renamed and PIN_TYPES assigned, PartBuilder goes through the internal Pin database and hunts for DIFF_PAIRS using the DIFF_PAIR_MATCH_POL rules.
Report Warnings
PartBuilder will report the following warnings
- Unrecognized lines in the specified PIN_REPORT_FILE
- The specified NUM_PINS entry does not match the number of pins found in the PIN_REPORT_FILE
- If the user sets up the configuration setting for PIN_ROW_CHK and PIN_COL_CHK in the PINOUT_CONTROL TAB of CONFIGURATION SETTINGS, PartBuilder will report the pins it didn't find
- Any Pins that do not have a PIN_TYPE mapped
Smart-Frac
After all the pins have been renamed and pin_types resolved, Smart-Frac runs on the internal pin database and uses a complex sorting algorithm to create the 2 SDL Template files.
- It finds and slices multi-level busses into manageable Chunks
- It finds and groups diff_pairs and adds the dpair modifier to reduce the amount of match_statements neccessary to define the symbols
- It separates I/O and power signals into 2 groups of MATCH_STATEMENTS
- typically the POWER pins will not need to be sliced into smaller busses since they will just be added onto a symbol in large chunks
- typically the POWER pins will not need to be sliced into smaller busses since they will just be added onto a symbol in large chunks
- It auto assigns the left locator to inputs, the right locator to outputs and a CHOOSE_SIDE placeholder locator for all other signal types
These provide the user a head start to create the SDL
- auto_SDL_template.txt
- Plain text file for use with a text editor.
- auto_SDL_template.csv
- csv file to edit in EXCEL or another spreadheet editor
The user can copy one of the template files to the working SDL file.
The SDL creation process then becomes a matter of
- organizing the pre-genereated MATCH_STATEMENTS into SYMBOL_DEFINTION wrappers
- changing the LOCATOR elements to place the pins onto the desired the side of the symbols
- adding SPACER directives to tweak the layout of the symbols
...