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: 
Registered: ‎08-24-2008

Issue with use_dsp48 synthesis directive



  I have three questions regarding the use of use_dsp48 synthesis directive (target device: Virtex 4):


1) When synthesis directive (*use_dsp48="yes"*) is used on a signal and only the associated multiplication operation needs to be mapped to a DSP48 block, does it matter under any case if the USE DSP48 setting in synthesis properties is set to NO? I assume it should not matter. If I set it to yes or auto, then other multiplication operations may also get mapped to DSP48 which I do not want.


2) UG627 (XST User Guide for Virtex-4, Virtex-5, Spartan-3, and Newer CPLD Devices) says that ISE will decompose a bigger multiplication (one that cannot fit in one DSP48) into smaller ones so that it  fits over multiple DSP48 blocks. However, does ISE do this only when it infers DSP48 (by setting USE DSP48 setting in synthesis properties is set to YES or AUTO)? My experiments do not demonstrate that it is able to do so when (*use_dsp48="yes"*) is explicitly applied to the corresponding signal (see (c) below)


3) When ISE infers DSP48 and breaks a bigger multiplication into smaller ones so that it fits over multiple DSP48s, does it insert extra pipelines that would be needed to balance the path which converges at some point with the bigger multiplication path?


I have attached my code for analysis. I have found the following things:


a) When I apply (*use_dsp48="yes"*) to r1 and r5 in the attached design ( with  USE DSP48 setting in synthesis properties set to NO), ISE uses two DSP48 which are used only for r5 (based on MAP report) and ignores the directive on r1. Is it possible that there is some inbuilt rule in ISE which overrides this explicit directive on r1?


b) When I apply (*use_dsp48="yes"*) to r5 and r8 in the attached designn ( with  USE DSP48 setting in synthesis properties set to NO), both of which are big multiplications, ISE does not map either of them to DSP48.


Any comments/inputs  would be  greatly appreciated. I am using ISE14.4




Tags (2)
0 Kudos