UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 21635

7.1i XST - 「FATAL_ERROR:Xst:Portability/export/Port_Main.h:127:1.13.276.1」 というエラー メッセージが表示される

説明

キーワード : signal, initialize, synthesis, synthesize, 信号, 初期化, 合成

重要度 : 標準

概要 :
デザインを合成すると、次のような致命的エラー メッセージが表示されます。

"FATAL_ERROR:Xst:Portability/export/Port_Main.h:127:1.13.276.1"

ザイリンクスでは、問題をデバッグしやすくするため、エラー メッセージを変更していく予定です。 このアンサーでは、このエラーを修正するソリューションの一部を紹介します。

ソリューション

1

特殊なテスト ケースでは、集合の順序が宣言の順序と異なる場合があります。この問題を回避するには、宣言に合わせて集合を書き換えます。

例 :
type t_request is record
in1 : std_logic_vector(6 downto 0);
in2 : unsigned(12 downto 0);
in3 : unsigned(11 downto 0);
in4 : std_logic;
end record

次に、type t_request 信号をデフォルト値に初期化します。
(in4 => '0',
in1 => (others => '0'),
in2 => (others => '0'),
in3 => (others => '0'))

これにより、致命的なエラーが発生する場合があります。その場合は、宣言に合わせて次のように書き換える必要があります。
(in1 => (others => '0'),
in2 => (others => '0'),
in3 => (others => '0'),
in4 => '0')

この問題は、ISE 8.1i で修正される予定です。

2

バスの代入を 1 つの文で記述すると、この問題が発生する場合があります。

例 :
rx_fifo [rx_fifo_wptr] [7:0] <= rx_byte;

次のように各ビットに対して個別に代入文を記述すると、場合によってはエラーが修正されます。

rx_fifo [rx_fifo_wptr] [7] <= rx_byte[7];
rx_fifo [rx_fifo_wptr] [6] <= rx_byte[6];
rx_fifo [rx_fifo_wptr] [5] <= rx_byte[5];
rx_fifo [rx_fifo_wptr] [4] <= rx_byte[4];
rx_fifo [rx_fifo_wptr] [3] <= rx_byte[3];
rx_fifo [rx_fifo_wptr] [2] <= rx_byte[2];
rx_fifo [rx_fifo_wptr] [1] <= rx_byte[1];
rx_fifo [rx_fifo_wptr] [0] <= rx_byte[0];

これにより、一部の致命的なエラーが修正されます。

この問題は、ISE 8.1i で修正される予定です。

3

次のような状況でもこのエラーが発生します。

subtype を宣言すると、subtype に natural range (自然数の範囲) を使用できます。

ユーザー定義の範囲を使用すると、XST でこのエラーが発生します。

この問題は、ISE 8.1i で修正される予定です。

4

(Xilinx Answer 21492) も参照してください。

5

次のような状況でも、このエラーが発生します。

次の型を宣言した場合 :

type STATE2_T is (IDLE, FIXED0, FIXED1, FIXED2, FIXED3, FIXED4, CUSTOM0, CUSTOM1);
type STATE2_1_T is (IDLE, S2_1, S2_2);

signal STATE2 : STATE2_T;
signal STATE2_1 : STATE2_1_T;

2 番目の信号名には _1 が含まれており、これがエラーの原因となります。 2 番目の信号名を変更すると、問題を回避できます。

この問題は、ISE 8.1i で修正される予定です。

6

エラーが発生する前の警告メッセージを確認してみてください。 警告メッセージには、エラーの原因の特定に役立つ情報が含まれている場合があります。

7

-safe_implementation オプションを使用してみてください。

このオプションの詳細は、『XST ガイド』を参照してください。

8

この問題は、パッケージ本体を定義したファイルの代わりにパッケージを定義するファイルが PRJ ファイルに含まれている場合に発生します。

関数の呼び出しでパッケージ本体が検出されないために XST が停止します。

この問題は、ISE 8.2i で修正される予定です。

9

最上位で 2 つの信号がグランドに接続されています。 これらの信号にポートを追加し、グランドに常時接続されないようにすると、このエラーを回避できます。

この問題は、ISE 9.1i で修正される予定です。

10

インスタンス文でポートが一致していないと、この問題が発生します。

次に例を示します。

次のポートがあります。
rdaddress : in std_logic_vector(R_DATA_WIDTH-1 downto 0);
rddata : out std_logic_vector(R_ADDRESS_WIDTH-1 downto 0)

次のように変更します。
rdaddress : in std_logic_vector(R_ADDRESS_WIDTH-1 downto 0);
rddata : out std_logic_vector(R_DATA_WIDTH-1 downto 0)

これで問題が修正されます。

この問題は、ISE 8.2i で修正される予定です。
AR# 21635
日付 01/08/2009
ステータス アーカイブ
種類 一般
このページをブックマークに追加