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!

Showing results for 
Search instead for 
Did you mean: 
Visitor batukur
Registered: ‎06-20-2017

IDF and DONT_TOUCH Attribute


I have a question regarding the DONT_TOUCH attribute while using IDF. According to XAPP1222 and XAPP1256, IPI adds the DONT_TOUCH attribute automatically when an IP is instantiated, and because this prevents the IDF tools to work properly, we should create a wrapper around the IP and mark the wrapper as isolated instead of the IP:

"However, there is one feature to be mindful of when creating isolated designs in Vivado IP integrator. To preserve the IP being instantiated, IP integrator automatically adds the DONT_TOUCH property to all instances of IP. This is a good thing, because it adds the IP vendors’ IP without modification. However, this impacts the feature of IDF where isolated nets can drive multiple isolated regions. In this case, the Vivado tool attempts to split that net to follow IDF rules but is prevented from doing so due to the DONT_TOUCH attribute."

"IPI introduces some design complexities by automatically adding DONT_TOUCH properties on every design block of an IPI design. This conflicts with IDF where multi-regional nets are concerned. To split multi-regional nets to meet IDF rules, the tools must modify the design by adding LUT buffers. However, DON’T_TOUCH prevents any modification by the tools. Much of this complexity can be minimized by adding a wrapper around modules intended for isolation. Ultimately, it is the wrapper that is marked as isolated."

However, when I create a wrapper around the IP to be isolated and mark the HD.ISOLATED attribute on the wrapper, Vivado automatically adds the DONT_TOUCH attribute too; and I cannot untick it. It seems that the two of them go together (I am using Vivado 2018.2).

Did I miss something here?  What good is it to create a wrapper if the DONT_TOUCH attribute cannot be unmarked?



0 Kudos