PIN2UCF
PIN2UCF is a program that generates pin locking constraints in a UCF file by reading a placed NCD file for FPGAs or GYD file for CPLDs. PIN2UCF writes its output to an existing UCF file. If there is no existing UCF file, PIN2UCF creates a new file.
The PIN2UCF is used to back-annotate pin locking constraints to the UCF file from a successfully placed and routed design (FPGAs) or successfully fit design (CPLDs).
The following list describes PIN2UCF.
- The program extracts pin locations and logical pad names from an existing NCD or GYD file and writes this information to a UCF file.
- Pin locking constraints are written to a PINLOCK section in the UCF file. The PINLOCK section begins with the statement #PINLOCK BEGIN and ends with the statement #PINLOCK END.
- By default, PIN2UCF does not write conflicting constraints to a UCF file. Prior to creating a PINLOCK section, if PIN2UCF discovers conflicting constraints, it writes information to a report file, named pinlock.rpt.
- The report file has two sections: Constraint Conflicts Information and List of Errors and Warnings.
- The Constraints Conflicts Information section does not display if there are fatal input errors, for example, missing inputs or invalid inputs. However, the created report file will contains the List of Errors and Warnings.
- The Constraints Conflicts Information section has two subsections:
-- Net name conflicts on the pins
-- Pin name conflicts on the nets
If there are no conflicting constraints, both subsections under the Constraint Conflicts Information section contain a single line indicating that there are no conflicts.
- The List of Errors and Warnings displays only if there are errors or warnings.
- User-specified pin locking constraints are never overwritten in a UCF file. However, if the user-specified constraints are exact matches of PIN2UCF generated constraints, a pound sign (#) is added in front of all matching user-specified location constraint statements. The pound sign indicates that a statement is a comment. To restore the original UCF file (the file without the PINLOCK section), remove the PINLOCK section and delete the pound sign from each of the user-specified statements.
- PIN2UCF does not check if existing constraints in the UCF file are valid pin locking constraints.
- PIN2UCF writes to an existing UCF file under the following conditions.
- The contents in the PINLOCK section are all pin lock matches and there are no conflicts between the PINLOCK section and the rest of the UCF file.
- The PINLOCK section contents are all comments and there are no conflicts outside the PINLOCK section.
- There is no PINLOCK section and no other conflicts in the UCF file.
- Comments inside an existing PINLOCK section are never preserved by a new run of PIN2UCF.
- If PIN2UCF finds a CSTTRANS comment, it equates INST name to NET name and then checks for comments.