We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Page Bookmarked

AR# 1987

8.1i CPLD - How do I preserve, keep, save, or prohibit software from using certain pins?


Keywords: 7.1i,6.3i, 6.2i, 6.1i, 5.2i, 5.1i, 4.2i, 4.1i, 3.1i, reserve, XC9500, XC9500XL, XC9500XV, CoolRunner XPLA3, CoolRunner-II

I want to reserve particular I/O pins on the device for future use. Logic is not yet connected to these pins in my design, but I still want the software to use these pins for any other signals.



The Prohibit attribute performs this functionality. (This constraint is available for all families.)
This attribute prevents the tools from mapping any I/O to the specified pin.

Beginning in 6.1i, the Assign Package Pins process provides a graphical method for using the Prohibit attribute. You can prohibit pins by selecting Tools -> Prohibit Mode, and then clicking any pin that you want to preserve. To undo a prohibited pin, select Allow Mode.

For previous versions of ISE, you must add this attribute in the User Constraint File (UCF). In the UCF, add a line for each pin that you want to preserve.

For example:



If you want to avoid using the UCF, you can try this alternate method:

To preserve a given I/O pin, use the following circuit:


The software does not trim this logic out because it does not interpret the logic associated with the pin as sourceless or loadless. Also, since it is "used," it does not route any other signals to this pin. As a result, the pin is permanently placed in a 3-state condition. Apply the appropriate LOC attribute to preserve the desired pin.

For other common CPLD questions, please see the CPLD Tech Tips FAQ:
AR# 1987
Date 04/26/2006
Status Active
Type General Article