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

SYNPLIFY - HDL での FMAP または HMAP (RLOC) のインスタンシエート方法について

説明

キーワード : Verilog、VHDL、Synplify、FMAP、HMAP

重要度 : 標準

概要 :
HDL での FMAP または HMAP (RLOC) のインスタンシエート方法について

ソリューション

1

FMAP または HMAP を HDL でインスタンシエートするには、Xilinx デバイス アーキテクチャに精通している必要があります。また Synplicity でこの機能を詳しく説明している文書はありません。

Synplify では Verilog/VHDL コードで FMAP または HMAP を直接インスタンシエーションすることはサポートされていません。
ただし、Synplicity では xc_map 属性を使用して、FMAP/HMAP を特定の LUT ロジックに指定できます。

xc_map 属性はモジュールまたは VHDL アーキテクチャに配置されます。 属性内容は単一出力を持つ単純な論理式にする必要があります。 xc_map では hmap または fmap という値を指定できます。 XC5200 シリーズでは FMAP は入力を 5 つまで持つことができます。

ただし、これは Virtex ではサポートされていません。 詳細については Synplicity にお問い合わせください。

3.0c1 バージョンではサポートされていますが、完全にテストされていないため、詳細が文書に記載されていません。

2

module fmap_xor4 (z, a, b, c, d); /* synthesis xc_map=fmap */
output z;
input a, b, c, d;

assign z = a ^ b ^ c ^ d;

endmodule

module hmap_xor3 (z, a, b, c); /* synthesis xc_map=hmap */
output z;
input a, b, c;

assign z = a ^ b ^ c;

endmodule

module clb_xor9 (z, a);
output z;
input [8:0] a;

wire z03, z47;

fmap_xor4 x03 /* synthesis xc_uset="SET1" xc_rloc="R0C0.f" */
(z03, a[0], a[1], a[2], a[3]);
fmap_xor4 x47 /* synthesis xc_uset="SET1" xc_rloc="R0C0.g" */
(z47, a[4], a[5], a[6], a[7]);
hmap_xor3 zz /* synthesis xc_uset="SET1" xc_rloc="R0C0.h" */
(z, z03, z47, a[8]);

endmodule

module xor9top (z, a);
output z;
input [8:0] a;

clb_xor9 x (z, a);

endmodule

3

library IEEE;
use IEEE.std_logic_1164.all;

entity fmap_xor4 is
port ( a, b, c, d : in std_logic;
z : out std_logic);
end fmap_xor4;
architecture rtl of fmap_xor4 is
attribute xc_map : STRING;
attribute xc_map of rtl : architecture is "fmap";

begin

z <= a xor b xor c xor d;

end rtl;

library IEEE;
use IEEE.std_logic_1164.all;

entity hmap_xor3 is
port ( a, b, c : in std_logic;
z : out std_logic);
end hmap_xor3;
architecture rtl of hmap_xor3 is
attribute xc_map : STRING;
attribute xc_map of rtl : architecture is "hmap";

begin

z <= a xor b xor c;

end rtl;

library IEEE;
use IEEE.std_logic_1164.all;

entity clb_xor9 is
port ( a : in std_logic_vector(8 downto 0);
z : out std_logic
);
end clb_xor9;

architecture rtl of clb_xor9 is

signal z03, z47 : std_logic;

component hmap_xor3
port ( a : in std_logic;
b : in std_logic;
c : in std_logic;
z : out std_logic
);
end component;

component fmap_xor4
port ( a : in std_logic;
b : in std_logic;
c : in std_logic;
d : in std_logic;
z : out std_logic
);
end component;
attribute xc_uset : string;
attribute xc_rloc : string;
attribute xc_uset of x03 : label is "SET1";
attribute xc_rloc of x03 : label is "R0C0.f";
attribute xc_uset of x47 : label is "SET1";
attribute xc_rloc of x47 : label is "R0C0.g";
attribute xc_uset of zz : label is "SET1";
attribute xc_rloc of zz : label is "R0C0.h";

begin

x03 : fmap_xor4 port map(a(0), a(1), a(2), a(3), z03);
x47 : fmap_xor4 port map(a(4), a(5), a(6), a(7), z47);
zz : hmap_xor3 port map(z03, z47, a(8), z);

end rtl;

library IEEE;
use IEEE.std_logic_1164.all;

entity xor9top is
port ( a : in std_logic_vector(8 downto 0);
z : out std_logic
);
end xor9top;

architecture rtl of xor9top is

component clb_xor9
port ( a : in std_logic_vector (8 downto 0);
z : out std_logic);
end component;

begin

U1: clb_xor9 port map (a, z);

end rtl;
AR# 3924
日付 04/24/2007
ステータス アーカイブ
種類 一般