AR# 12545

|

4.1i XST - 「Internal_Error: XST:cmain.c.3004:1.63"/"FATAL_ERROR:Xst:Portability/export/Port_Main.h:116:1.9」というエラー メッセージが表示される

説明

キーワード : XST, fatal, error, internal, crash, main, portability, エラー, 内部, 停止, クラッシュ, 移植性

重要度 : 標準

概要 :
次のようなエラー メッセージが表示されることがあります。

"INTERNAL_ERROR:Xst:cmain.c:3004:1.63 - To resolve this error, please consult the Answers Database and other online resources at http://support.xilinx.com";

"FATAL_ERROR:Xst:Portability/export/Port_Main.h:116:1.9 - This application has discovered an exceptional condition from which it cannot recover. Process will terminate. To resolve this error, please consult the Answers Database and other online resources at http://support.xilinx.com";

このアンサー レコードで説明されている問題の多くは、XST 5.1i で修正されています。

ソリューション

1

process 文で宣言された定数が原因で、このエラーが発生することがあります。 この問題を回避するには、process 文の外で定数を宣言します。

例 :

:
:
process (clk, reset)
constant static_value : std_logic_vector (2 downto 0) := "001";
begin
:
:

上記のコードを次のように変更します。
<architecture_declaration>
:
constant static_value : std_logic_vector (2 downto 0) := "001";
begin
:
:
process (clk, reset)
begin
:
:

2

ステート マシンも、上記のエラーを引き起こす可能性があります。 この場合、FSM エンコーディング スタイルを使用しないようにするのが唯一の回避策です。

ISE の GUI の場合 :

1. プロセス ウィンドウで [Synthesize] を右クリックします。
2. [HDL Options] タブをクリックします。
3. [FSM Encoding Algorithm] を [None] に変更します。

XST コマンド ラインの場合 :

1. 「-fsm_encoding Auto」を「-fsm_encoding None」に変更します。

3

VHDL プロジェクトの場合、パッケージを作業ライブラリからユーザー定義のライブラリに移動すると、この問題を回避できます。

4

このエラー メッセージは、ポートが未接続のままのときにも発生します。 ポートを接続すると、この問題を解決できます。

5

上記のエラーは、スライスのパック機能が原因で発生することもあります。 次は、XST でのスライスのパックについての定義です。

スライス パック (SLICE_PACKING) オプションを使用すると、XST の内部パックが使用できます。XST 内部パック プログラムは、グローバル最適化の出力をスライスにパックします。 この XST のパック プログラムは、1 つのスライス内または CLB 内の、クリティカルな LUT-to-LUT 接続をパックしようとします。この時、CLB 内の LUT 間の高速フィードバック接続が利用されます。 詳細は、『制約ガイド』の「SLICE_PACKING」のセクションを参照してください。

スライス パック オプションをオフにするには、次の手順に従います。

ISE の GUI の場合 :

1. プロセス ウィンドウで [Synthesize] を右クリックします。
2. [Xilinx Specific Options] タブをクリックします。
3. [Slice Packing] オプションをオフにします。

XST コマンド ラインの場合 :

1. 「-slice_packing YES」を「-slice_packing NO」に変更します。

6

Windows NT が原因でこのエラーが発生している可能性があります。 上記のソリューションで問題が解決しない場合は、Windows 2000 または UNIX でソフトウェア ツールを起動してみてください。

7

もうひとつの回避策として、case 文にワイルド カードを使用します。 次に示すのは、変更前と変更後の Verilog コードです。

変更前 :

:
:
case (protocol)

2'b1? :
begin // moto cs high...

hcsn <= 1'b1;
hrdn <= 1'b1;
hwrn <= 1'b0;

end

default : begin

hcsn <= 1'b0;

end

endcase
:
:

変更後 :

:
:
casez (protocol) // changed from case to casez

2'b1? :
begin // moto cs high...

hcsn <= 1'b1;
hrdn <= 1'b1;
hwrn <= 1'b0;

end

default : begin

hcsn <= 1'b0;

end

endcase
:
:
AR# 12545
日付 08/06/2003
ステータス アーカイブ
種類 一般
People Also Viewed