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

8.1i Virtex-4 MAP - PlanAhead design fails with pack error due to failed inverter push

Description

My design fails with the following pack error when constrained by PlanAhead using LOC constraints. All of this logic packs into a slice successfully without constraints. Why does the pack fail when the logic is constrained?

"ERROR:Pack:679 - Unable to obey design constraints (LOC=SLICE_X51Y40) which

require the combination of the following symbols into a single SLICE

component:

LUT symbol "receiver/synchroTOPInst/CFOCorri/cordInIM[0]" (Output Signal =

receiver/synchroTOPInst/CFOCorri/cordInIM[0])

MUXCY symbol "receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3_cry_0"

(Output Signal = receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3_cry_0/O)

MUXCY symbol "receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3_cry_1"

(Output Signal = receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3_cry_1/O)

XORCY symbol "receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3_s_1" (Output

Signal = receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3[1])

The function generator receiver/synchroTOPInst/CFOCorri/cordInIM[0] is unable

to be placed in the F position because the output signal doesn't match other

symbols' use of the F signal. The signal

receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3_axb_0 already uses F. The

function generator receiver/synchroTOPInst/CFOCorri/cordInIM[0] is unable to

be placed in the G position because the output signal doesn't match other

symbols' use of the G signal. The signal

receiver/synchroTOPInst/CFOCorri/CordicGPInst/I_3_axb_1 already uses G.

Please correct the design constraints accordingly."

Solution

The key logic involved looks like this:

LUT3-->LUT1-->MUXCY.S

where PlanAhead has applied the same LOC constraint on the LUT3 and MUXCY. The packer has a rule that inverters and buffers are not pushed backwards to LOC'd LUTs. This rule is used to control delay in certain applications. Since the LUT3 and LUT1 are not combined into a single LUT, the directed pack fails.

This pack rule can be relaxed in 8.1i by setting the following environment variable:

Windows

SET XIL_MAP_ALLOW_LOC_BACKWARD_PUSH=1

Linux and Solaris

setenv XIL_MAP_ALLOW_LOC_BACKWARD_PUSH 1

For general information about setting ISE environment variables, see (Xilinx Answer 11630).

AR# 23694
Date Created 09/04/2007
Last Updated 12/15/2012
Status Active
Type General Article