AR# 6085

FPGA Express:HDL コードでの I/O パッドのインスタンシエーション方法

説明

キーワード:Foundation, Express, Synopsys, port, input, output, hierarchy, lower, module, instantiate, ポート, 入力, 出力, 階層構造, 低, モジュール, インスタンシエート, インスタンシエーション

重要度 :標準

概要:
最上部のポート宣言にポートが含まれていれば、FPGA Express はI/O バッファおよびレジスタの両方またはいずれかを最上部に挿入します。この際、I/O ポートを最上部以外に挿入できますか。また I/O ポートを最上部で最上部のポートとして宣言せずに挿入できますか。これはどちらも可能で、ポートの PAD および I/O バッファの両方をインスタンシエートすると実行できます。

I/O パッドとバッファの組み合わせをインスタンシエートする際、最上部レベルのポート宣言にポートを含まないようにしてください。

また I/O バッファ (または I/O フリップフロップ) および IPAD/OPAD の両方をインスタンシエートする必要があります。IPAD/OPAD コンポーネントには PAD というピンが必ず 1 つ含まれます。

双方向信号を使用する場合、IOPAD (ピン名 IOPAD)、入力バッファ、および出力トライステート バッファをインスタンシエートします。

例えば、下の例ではフリップフロップが推論されます。クロックおよびリセットは 1 つ上のレベルのため、DIN および DOUT ピンはこのレベルでインスタンシエートされます。

ソリューション

1

VHDL example:

library IEEE;
use IEEE.std_logic_1164.all;

entity LVDSIO is
port (CLK, RST : in STD_LOGIC); -- note that DIN and DOUT are not listed here
end LOWER;

architecture lower_arch of LOWER is

signal DIN, DOUT:STD_LOGIC; -- ports DIN and DOUT are declared here
signal DIN_INT, DOUT_INT:STD_LOGIC;

component IBUF
port (I :in STD_LOGIC; O :out STD_LOGIC);
end component;

component IPAD
port (PAD :out STD_LOGIC); -- note the direction is OUT
end component;

component OBUF
port (I :in STD_LOGIC; O :out STD_LOGIC
end component;

component OPAD
port (PAD :in STD_LOGIC); -- note the direction is IN
end component;

begin

clocked:process(CLK, RST) begin
if(RST='1') then
DOUT_INT <= '0';
elsif rising_edge(CLK) then
DOUT_INT <= DIN_INT;
end if;
end process;

IBUF_inst:IBUF port map (I => DIN, O => DIN_INT);

IPAD_inst:IPAD port map (PAD => DIN);

OBUF_inst:OBUF port map (I => DOUT_INT, O => DOUT);

OPAD_inst:OPAD port map (PAD => DOUT);

end lower_arch;

2

注 :IPAD および OPAD コンポーネントは合成ライブラリに含まれていないため、FPGA Express では認識されません。以下のような警告は無視しても問題ありません。

Warning:Cell 'IPAD_inst':'IPAD' is not a primitive for XC4000XL'.(FPGA-INTERNAL-xlx-8)

Warning:Cannot link cell 'LOWER/IPAD_inst' to its reference design 'IPAD'.(FPGA-LINK-2)

Warning:Cell 'OPAD_inst':'OPAD' is not a primitive for 'XC4000XL'.(FPGA-INTERNAL-xlx-8)

Warning:Cannot link cell 'LOWER/OPAD_inst' to its reference design 'OPAD'.(FPGA-LINK-2)

Warning:The cell '/TOP-1/U1/IPAD_inst' is not linked to any design.(FPGA-CHECK-4)

Warning:The cell '/TOP-1/U1/OPAD_inst' is not linked to any design.(FPGA-CHECK-4)

Xilinx インプリメンテーション ツールで PAD レポートを開きすべての I/O が正しく接続されているか確認してください。ポートが下のレベルでインスタンシエートされた場合には、ポートの最終名に階層上の名前が含まれ、パッド レポートで以下のようになります。

U1_DIN INPUT P12

3

Verilog:

module LOWER (CLK, RST) ; // note that DIN and DOUT are not listed here

input CLK, RST;

wire DIN, DIN_INT, DOUT;// ports DIN and DOUT are declared here reg DOUT_INT;

IBUF IBUF_inst (.I(DIN), .O(DIN_INT));
IPAD IPAD_inst (.PAD(DIN));
OBUF OBUF_inst (.I(DOUT_INT), .O(DOUT));
OPAD OPAD_inst (.PAD(DOUT));

always @ (posedge CLK or posedge RST)
begin
if (RST)
DOUT_INT = 1'b0;
else
DOUT_INT = DIN_INT;
end

endmodule
AR# 6085
日付 08/11/2003
ステータス アーカイブ
種類 一般