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 合成 - 「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.」というエラー メッセージが表示される

説明

定数 VCC/GND 入力のあるレジスタに max_fanout 属性が適用されると、この属性は処理されず、次のメッセージが表示されます。

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

ソリューション

これは Vivado 2015.3 で修正される既知の問題です。この問題は、入力の定数評価が正しく実行されないために発生します。Vivado 合成では、フロップへの入力が定数の場合に複製処理が適切に実行されません。

次の例に示すようにダミー レジスタを作成すると、この問題を回避することができます。

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
ステータス アクティブ
種類 一般
ツール
  • Vivado Design Suite - 2015.1
このページをブックマークに追加