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

Vivado Synthesis - CRITICAL WARNING: [Netlist 29-180] Cell 'FDCPE' is not a supported primitive for virtexu part

Description

I am getting a CRITICAL WARNING about a cell called FDCPE. 

CRITICAL WARNING: [Netlist 29-180] Cell 'FDCPE' is not a supported primitive for virtexu part. 32 instances of this cell will be treated as black boxes, not architecture primitives.

The RTL for this is as follows:

always@(posedge clk or posedge reset)
  begin 
     if (reset)
       count <= value;
     else if (enable)
       count <= count + 1;
  end


Solution

The problem is that while there is a control signal here called "reset" it is not really resetting (to 0) or setting (to 1) the flop.  

Instead it is looking for another value that could be 1 or 0. 

In order to get this type of logic, the only primitive in the Xilinx arsenal is the FDCPE which has both a set and a reset.  

The solution for this is to either make the reset a synchronous reset or change the reset to assign either a 1 or a 0 to the register.

Otherwise, opt_design will fail due to an unresolved black box.


Note: starting from the 2015.3 release, Vivado Synthesis will give this Critical Warning if the design contains either instantiated or inferred FDCPE or FDCP primitives when targeting UltraScale devices. 

In versions prior to 2015.3, these primitives are retargeted to a combination of FDCE, FDPE, LDCE and LUT, which could cause potential timing issues.

AR# 64032
Date Created 03/24/2015
Last Updated 04/09/2015
Status Active
Type Known Issues
Tools
  • Vivado Design Suite