AR# 3999

FPGA Express - Verilog での I/O のインスタンシエーション

説明

キーワード : FPGA Express, instantiate, I/O, IBUF, OBUF, BUFG, インスタンシエーション

重要度 : 標準

概要 :
Verilog で、I/O セルを手動でインスタンシエートする方法について説明します。

FPGA Express 2.x かそれ以前は、デザインに I/O をすべて挿入するか、全く挿入しないかのいずれかを選択できます。したがって、デザインでいずれかの I/O がインスタンシエートされると、すべての I/O をインスタンシエートする必要があります。

FPGA Express 3.x は不特定の I/O を挿入します。したがって、一部の I/O をインスタンシエートし、残りが挿入されます。

ソリューション

1

入力信号

1. IBUF

// IBUF instantiation
IBUF INPUTSIG_IBUF (.I(INPUTSIG_PI), .O(INPUTSIG));

INPUTSIG は内部ロジックに接続できます。 UCF ファイルで次の構文を使用してピンを固定します。
NET INPUTSIG_PI LOC=Pxx;

2. IFD

// IFD instantiation
IFD DATAIN_IFD (.D(DATAIN_PI), .C(CLK), .Q(DATAIN_R));

DATAIN_R は内部ロジックに接続できます。 UCF ファイルで次の構文を使用してピンを固定します。
NET DATAIN_PI LOC=Pxx;

2

クロック信号

1. BUFG
ここでは、入力信号で直接駆動されるグローバル バッファをインスタンシエートする方法について説明します。 グローバル バッファは内部ノードや外部の入力信号によって駆動される場合もあるため、これには XNF ネットリストの変更も含まれます。

グローバル バッファを直接駆動せず、信号を IBUF を介して BUFG に接続する場合、ソリューション 1 の IBUF を使用し、BUFG をインスタンシエートします。これにより、XNF を変更する必要はありません。

// BUFG instantiation
BUFG CLK_BUFG (.I(CLK_PI), .O(CLK));

XNF ネットリストで、ファイルの最後に次のような行があります。
SIG, CLK_PI, PIN=CLK_PI

これを次のように変更します。
EXT, CLK_PI, I

CLK は内部ロジックに接続できます。 UCF ファイルで次の構文を使用してピンをクロック IOB に固定します。
NET CLK_PI LOC=Pxx;

3

出力信号

1. OBUF

// OBUF instantiation
OBUF OUTPUTSIG_OBUF (.I(OUTPUTSIG), .O(OUTPUTSIG_PO));

OUTPUTSIG は内部ロジックに接続できます。 UCF ファイルで次の構文を使用してピンを固定します。
NET OUTPUTSIG_PO LOC=Pxx;

2. OFD

// OFD instantiation
OFD DATAOUT_OFD (.D(DATAOUT), .C(CLK), .Q(DATAOUT_PO));

DATAOUT は内部ロジックに接続できます。 UCF ファイルで次の構文を使用してピンを固定します。
NET DATAOUT_PO LOC=Pxx;

3. OBUFT

// OBUFT instantiation
OBUFT DATAOUT_OBUFT (.I(DATAOUT), .T(CONTROL), .O(DATAOUT_PO));

DATAOUT は内部ロジックに接続できます。

メモ : OBUFE マクロはインスタンシエートできません。 T 制御ピンに接続された信号は、OBUFE として使用するため反転させる必要があります。
AR# 3999
日付 08/11/2003
ステータス アーカイブ
種類 一般