AR# 2713

Synplify - 最適化されたネットリスト ファイル (XNF、EDIF、NGC、CORE Generator で使用されるファイル、LogiBLOX で使用されるファイル) をブラック ボックスとして HDL (Verilog/VHDL) でインスタンシエートする方法

説明

キーワード : Synplify, instantiate, VHDL, Verilog, blackbox, インスタンシエート, ブラックボックス

重要度 : 標準

概要 :
最適化されたネットリスト ファイル (XNF、EDIF、NGC、CORE Generator で使用されるファイル、LogiBLOX で使用されるファイル) を、ブラック ボックスとして Synplify HDL フローでインスタンシエートする方法を示します。

ソリューション

1

syn_black_box 属性を使用して、インスタンシエートするコンポーネントがブラック ボックスであることを指定します (たとえば、合成にインターフェイスのみを定義するなど)。

ブラック ボックスを使用する状況 :

- Xilinx プリミティブのインスタンシエーション

- ユーザーがデザインしたマクロで、回路図エディタの他の入力ソースで機能を定義したもの

注 : Synplify ネットリストおよびあらかじめ最適化されたネットリストで使用するバス表記は、一致させる必要があります。 詳細については、(ザイリンクス アンサー #4272) を参照してください。 Synplify 5.x で生成した EDIF フォーマットは、3.0 以前のバージョンで生成した XNF 出力ファイルとバス表記が異なります。

+------+------+------+------------------------------+
| Ver. | 3.x | 5.x | コメント |
+------+------+------+------------------------------+
| XNF | B<|> | B<|> | バス信号拡張 |
+------+------+------+------------------------------+
| EDIF | X | B(I) | 「syn_noarrayports」を使用しない |
+------+------+------+------------------------------+
| EDIF | X | B[I] | 「syn_noarrayports」を使用 |
+------+------+------+------------------------------+

---------------------------------------------
VHDL ブラック ボックスの例
---------------------------------------------

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;

entity tenths_ex is
port ( clkint, clkenable : in STD_LOGIC;
xcountout : out STD_LOGIC_VECTOR(9 downto 0));
end tenths_ex;

architecture xilinx of tenths_ex is

attribute syn_black_box : boolean;

component tenths
port ( CLOCK : in STD_LOGIC;
CLK_EN : in STD_LOGIC;
Q_OUT : out STD_LOGIC_VECTOR(9 downto 0));
end component;
attribute syn_black_box of tenths : component is true;

begin

XCOUNTER : tenths port map( CLOCK => clkint,
CLK_EN => clkenable,
Q_OUT => xcountout
);

end xilinx;

2

-----------------------------------------------
Verilog ブラック ボックスの例
-----------------------------------------------

module tenths_ex (clkint, clkenable, xcountout);
input clkint, clkenable;
output [9:0] xcountout;

tenths XCOUNTER (.CLOCK (clkint), .CLK_EN (clkenable),
.Q_OUT (xcountout));

endmodule

module tenths (CLOCK, CLK_EN, Q_OUT) /* synthesis syn_black_box */;
input CLOCK, CLK_EN;
output [9:0] Q_OUT;

endmodule
AR# 2713
日付 02/20/2012
ステータス アーカイブ
種類 一般