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

Vivado Synthesis - INFO: [Synth 8-4618] Found max_fanout attribute set to 50 on net rst_int. Fanout reduced from 1024 to 1024 by creating 0 replicas.

描述

When a max_fanout attribute is applied to a register which has a constant VCC/GND input, the attribute is not honored and the following message is issued:

INFO: [Synth 8-4618] Found max_fanout attribute set to 50 on net rst_int. Fanout reduced from 1024 to 1024 by creating 0 replicas.
(* max_fanout = 50 *) reg rst_int;

always@(posedge clk or posedge rst_tmp)
begin
     if(rst_tmp)
        rst_int <= 1;
     else
        rst_int = 0;
end

解决方案

This is a known issue that is fixed in Vivado 2015.3. The problem occurs due to the lack of proper constant evaluation of the inputs. Vivado Synthesis fails to honor correct replication when the input to the flop is a constant.

A possible work-around is to create a dummy register, as in the following example:

module test (input clk, input rst, input [1023:0] din, output reg [1023:0] dout);

reg rst_tmp;
(* keep = "true" *) reg rst_tmp_0 = 0;
(* max_fanout = 50 *) reg rst_int;

always@(posedge clk)
begin
    rst_tmp <= rst;
    rst_tmp_0 <= 0;
end

always@(posedge clk or posedge rst_tmp)
begin
    if(rst_tmp)
        rst_int <= 1;
    else
        rst_int <= rst_tmp_0;
end

always@(posedge clk or posedge rst_int)
begin
    if(rst_int)
        dout <= 0;
    else
        dout <= din;
end

endmodule
AR# 64387
日期 09/27/2016
状态 Active
Type 综合文章
Tools
  • Vivado Design Suite - 2015.1
的页面