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

7.0 Synplify - インスタンシエートした FDRE、FDR、FDSE、FDS プリミティブが保存できない

説明

キーワード : Synplify, Virtex, Virtex-II, System, Generator, FDR, FDS, preserve, primitive, 保存, プリミティブ

重要度 : 重要

概要 :
インスタンシエートされた同期セット/リセット フリップフロップ プリミティブ (FDR、FDRE、FDS、FDSE) が Virtex デザインに含まれています。 マップ後に Synplify がそのインスタンシエートされたプリミティブを FD と置き換えてしまいます。

この問題は、Synplify および Synplify Pro 7.0 でのバグが原因となっており、FDR、FDRE、FDRE、または FDS プリミティブに影響を与えてしまいます。 このバグは、これらのフリップフロップの制御信号 (クロック イネーブルおよびセット/リセット) が定数になっている場合に発生します。

この問題はバージョン 7.0.1 で修正されています。最新版の Synplify は http://www.synplicity.com から入手できます。


この問題を回避するには、ポートを信号/ワイヤに接続し、その信号/ワイヤに syn_keep 属性を付けます。

ソリューション

1

VHDL の例 :

fdse_reg : FDSE
port map(c => clk,
d => in_sig,
q => out_sig,
ce => '1',
s => '0');

クロック イネーブルを 1 に、セットを 0 に設定すると、通常の FD コンポーネントのように動作をします。 このため、Synplify でこの FDSE が FD に変更されます。 この結果、レジスタのパワー アップ値が 1 から 0 に変更されます。 FDSE はインスタンシエートされているため、Synplify でこの値を変更すると問題が発生します。

パッチをインストールせずに問題を回避するには、コンポーネントを次のようにインスタンシエートします。

signal zero : std_logic;
signal one : std_logic;

attribute syn_keep : Boolean;
attribute syn_keep of zero : signal is true;
attribute syn_keep of one : signal is true;

fdse_reg : fdse
port map(c => clk,
d => in_sig,
q => out_sig,
ce => one,
s => zero);

2

Verilog の例 :

FDSE u1 (.D(d), .C(clk), .Q(q), .CE(1'b1), .S(1'b0));

クロック イネーブルを 1 に、セットを 0 に設定すると、通常の FD コンポーネントのように動作をします。 このため、Synplify でこの FDSE が FD に変更されます。 この結果、レジスタのパワー アップ値が 1 から 0 に変更されます。 FDSE はインスタンシエートされているため、Synplify でこの値を変更すると問題が発生します。

パッチをインストールせずに問題を回避するには、コンポーネントを次のようにインスタンシエートします。

wire zero /* synthesis syn_keep=1 */;
wire one /* synthesis syn_keep=1 */;

FDSE u1 (.D(d), .C(clk), .Q(q), .CE(one), .S(zero));
AR# 12953
日付 10/24/2005
ステータス アーカイブ
種類 ??????
このページをブックマークに追加