AR# 1481

FGPA Express - FPGA IOB でプルアップまたはプルダウンを使用/インスタンシエートする方法

説明

キーワード : pull, up, down, pullup, pulldown, instantiate, FPGA Express, Foundation Express, IOB, Virtex, プルアップ, プルダウン, インスタンシエート

重要度 : 標準

概要 :
FPGA IOB でプルアップまたはプルダウンを使用/インスタンシエートする方法について

ソリューション

1

プルアップまたはプルダウンは、デザインをインプリメントした後に指定できます。 ポート専用のプルアップまたはプルダウンは、Constraints GUI で指定できます。

1. FPGA Express でデザインをインプリメント後、そのデザインをプロジェクト ウィンドウで右クリックし、[Edit Constraints] を選択し、Constraints ウィンドウを開きます。

2. [Ports] に、そのデザインに対する外部ピンがすべてリストされます。 このダイアログ ボックスで、該当するピンの [Resistance] という列を選択します。 次に、使用する抵抗の種類を選択します。[PULLUP] または [PULLDOWN] を選択します。

3. [Constraints] ウィンドウを閉じ、インプリメンテーションを最適化します。

メモ : Virtex デバイス用のプルアップ、プルダウン、およびキーパは、FPGA Express の Constraints Editor ではまだサポートされていません。 この問題を回避するには、次のソリューションに記述してあるように HDL でこれらのコンポーネントをインスタンシエートします。 抵抗コンポーネントがポートに適用される場合は、I/O コンポーネント (OBUFT、OFD など) をインスタンシエートする必要があります。

2

プルアップまたはプルダウンは、HDL コードでもインスタンシエートできます。 内部ロジックでインスタンシエートできるのはプルアップで、外部ピン用のインスタンシエートは、プルアップまたはプルダウンのどちらでもできます。

VHDL の例 (IBUF および AND ファンクションを使用した例) :

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity pullup_test is
Port ( a : in std_logic;
b : in std_logic;
c : out std_logic);
end pullup_test;

architecture Behavioral of pullup_test is

component PULLUP
port (
O : out std_logic);
end component;


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

signal hello : STD_LOGIC;
signal middle : STD_LOGIC;


begin

U1: PULLUP port map (O => hello);
U2: IBUF port map (I => hello, O => middle);
U3: c <= (middle and b);
hello <= a;

end Behavioral;


Verilog の例 :

PULLUP U1 (.O(signal));

メモ :
- プルダウンは、外部 I/O とのみ使用できます。
- プルアップは、外部 I/O または、トライステートなどの (BUFT、BUFE) 内部ロジックとオープン ドレイン (DECODE、WAND、WORAND) エレメントと使用できます。 プルアップが有効に使用できない場合にインスタンシエートされると、FPGA Express では XNF ファイルにそのインスタンシエーションが記述されません。
- プルアップは、XC9500 デザインには不要です (使用できません)。

3

プルアップを使って入力ポートを直接駆動できない点に注意してください。 つまり、入力ポートにプルアップを設定する必要がある場合、その入力ポートで駆動される一時的な信号を作成し、プルアップ ポート マップでその信号を使用する必要があります。

VHDL の例
Input A にプルアップを接続する:

Entity test is
port (A : in std_logic;
B : out std_logic);
end test;

architecture RTL of Test is

component PULLUP
port (O : out STD_LOGIC);
end component;

signal temp : std_logic;

begin

temp <= A;

U1: PULLUP port map (O => temp);
AR# 1481
日付 04/11/2012
ステータス アーカイブ
種類 一般