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# 14299

8.1i Virtex-4 MAP - "ERROR:Pack:1118 - The symbol U2/SRL16E was unable to be implemented in a slice containing no other symbols..."

Description

The following error occurs when I use a BEL constraint on a SRL16 (or RAM 16X1) to constrain a symbol to the F-LUT:

"ERROR:Pack:1118 - The symbol U2/SRL16E was unable to be implemented in a slice containing no other symbols. RAM cannot be placed in F in RAM 16x1 or 1SHIFT mode. Check that the constraints on this symbol make sense in isolation."

(BEL constraints are used to specify that a particular piece of logic within a slice be used. In this case, the F-LUT was specified with the constraint "INST "U2" BEL = F;".)

Solution

This error occurs because the Virtex hardware does not support the configuration that the BEL constraint was being used to specify. The reason for this is that the LUTRAM write-enable control hardware is actually only in the G LUT site. If the G LUT is not programmed as RAM or SRL, then the write-enable strobe is not active for either LUT site.

If the BEL constraint is removed, the shift register will successfully map to the G-LUT.

NOTE: This Answer Record applies to all architectures from Virtex to Virtex-4.