UPGRADE YOUR BROWSER

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!

AR# 35504

11.5 MAP - What is the difference between the "S" (Save) and "KEEP" constraint?

Description

I have some unused logic in a module in my design that is being trimmed. I would like to prevent the trimming for now until I get the module connected properly. I am confused about whether to use the "S" constraint or the "KEEP" constraint. Which of these constraints will affect trimming?

Solution

The "S" property is the correct property to use to block logic trimming. The functionality of the "S" property was expanded in ISE 10.1 software so that it will also block constant optimization from propagating through the net and logic connected to a net with an "S" property will not be removed. Also, "S" properties can be applied directly to logical instances to prevent their removal.

The "KEEP" net property has a different purpose and can be thought of as a packing constraint. It is used to keep a signal from being entirely merged into a component so that the signal would not exist in the physical design. It has no effect on the trimming of unused logic or on constant optimization. It can be used to control packing behavior, but only to the extent that it blocks packs that would otherwise cause the signal to disappear.

See (Xilinx Answer 30112) for an explanation of the new "S" property behavior introduced in ISE 10.1 software and some of the problems that can result from their use.
AR# 35504
Date Created 05/06/2010
Last Updated 02/11/2013
Status Active
Type General Article
Tools
  • ISE - 10.1
  • ISE Design Suite - 11.1
  • ISE Design Suite - 11.2
  • More
  • ISE Design Suite - 11.3
  • ISE Design Suite - 11.4
  • ISE Design Suite - 11.5
  • ISE Design Suite - 12.1
  • ISE Design Suite - 12.2
  • Less