AR# 9864

3.x FPGA Express - FDCE の代わりに FDCOE が推論される (XC9500XL ファミリ)

説明

キーワード : FPGA Express, flip, flop, ff, flip-flop, FDCPE, FDCE, infer, 9500, XL, 9500XL, XC9500, XC9500XL, XC, フリップ, フロップ, フリップフロップ, 推論

重要度 : 標準

概要 :
XC9500XL デバイスの場合、FDCE を推論するように HDL を記述しても、FPGA Express で FDCPE が推論されてしまいます (FDCPE には FDCP プリミティブに加え、XC9500XL ファミリに含まれる専用クロック イネーブル ラインを使用しないほかのロジックが含まれています)。

FDCE を推論する VHDL および Verilog コードは次のようになります。

VHDL:

library ieee;
use ieee.std_logic_1164.all;

entity test is
port (data : in std_logic;
clk : in std_logic;
en : in std_logic;
q : out std_logic);
end entity;

architecture arch_test of test is
begin

process (clk) begin
if clk'event and clk = '1' then
if en = '1' then
q<=data;
end if;
end if;
end process;
end architecture;

Verilog:

module test(data,clk,en,q);

input data,clk,en;
output q;
reg q ;

always@(posedge clk) begin
if (en)
q <= data;
end
endmodule

ソリューション

FDCE が必要な場合は、インスタンシエートします。

VHDL:

library ieee;
use ieee.std_logic_1164.all;

entity ff is
port (data: in std_logic;
clk : in std_logic;
en : in std_logic;
q : out std_logic);
end entity;

architecture ff_arch of ff is

component FDCE
port (D : in std_logic;
C : in std_logic;
CE : in std_logic;
CLR : in std_logic;
Q : out std_logic);
end component;

signal ground : std_logic;

begin

ground <= '0';

u1: FDCE port map(data,clk,en,ground,q);

end architecture;

Verilog:

module test(data,clk,en,q);

input data,clk,en;
output q;
reg q ;
wire ground=1'b0;

FDCE my_fdce(.D(data), .C(clk),.CE(en),.Q(q),.CLR(ground));
endmodule
AR# 9864
日付 08/11/2003
ステータス アーカイブ
種類 一般