AR# 32512

11.1 EDK - Windows XP で、 PCI および USB コアの問題により XST で「xst.exe has encountered a problem and needs to close」というメッセージが表示される

説明

キーワード : PCI, USB, fatal, error, embedded, design

PCI コアを含むデザインを XPS で実行すると、次のようなメッセージが表示されます。

"xst.exe has encountered a problem and needs to close.
We are sorry for the inconvenience."

この問題の回避策を教えてください。

ソリューション

ソリューション 1 :
この問題は、Linux では発生しません。

ソリューション 2 :
この問題を回避するには、次の手順に従います。

1. MHS ファイルを開き、PCI/USB インスタンスをファイルの最後に移動します。
2 . XPS で [Generate Netlist] を再実行します。PCI または USB コアが MHS ファイルの最後に配置されているので、PCI または USB コアに達する前にすべてのコアが合成されます。
3. XPS プロジェクトで synthesis/pci32_bridge_wrapper_xst.scr または synthesis/xps_usb2_device_0_wrapper_xst.scr ファイルを開きます。
4. ファイルの最後に「-fsm_extract no」という行を追加します。
5. ファイルを保存します。
6. XPS から Bash シェルを開いて synthesis ディレクトリに移動し、「xst -ifn pci32_bridge_wrapper_xst.scr」または「xst -ifn xps_usb2_device_0_wrapper_xst.scr」を実行します。
7. (PCI のみ) implementation ディレクトリに移動します。
8. (PCI のみ) pci32_bridge_wrapper.ngc を pci32_bridge_wrapper_in.ngc という名前に変更します。
9. (PCI のみ) 「ngcbuild -sd pci32_bridge_wrapper -uc pci32_bridge_wrapper/pci32_bridge_wrapper.ucf pci32_bridge_wrapper_in.ngc pci32_bridge_wrapper.ngc」を実行します。
10. synthesis ディレクトリの synthesis.sh スクリプトを実行します。
11. プロジェクト ディレクトリに移動して「make -f system.make bits」を実行するか、XPS GUI から make bits プロセスを実行します。

次に、PCI コア用に上記のプロセスを自動化するシェル スクリプトを示します。

#!/bin/sh
# Script to run steps in AR 32512
# http://www.xilinx.com/support/answers/32512.htm
#Author: Matt Nielson
# last update: 2009/5/1 10:29 AM MDT

## Instructions:
# - Open the MHS file and move the PCI instance to the bottom of the MHS file.
# - Run this from an EDK Bash shell from the project directory
# - Change the SYSTEM and PLBV46_PCI variables to match your system
# - Run it from the bash command prompt by sourcing it:
# ./run_platgen.sh

TRUE=true
FALSE=false

## Name of project
SYSTEM=system

## Name of plbv46 instance:
PLBV46_PCI=pci32_bridge_wrapper

# 2. Run the Generate Netlist again in XPS. This will synthesize all the cores
# before coming to the PCI core, which is now the last core to be synthesized
# because it is last in the MHS file.


#RUN_PLATGEN=$TRUE
RUN_PLATGEN=$FALSE

if [ $RUN_PLATGEN = $TRUE ]
then
## create temp tcl file to run xps
run_xps_netlist=run_xps_netlist.tcl
echo "run netlist" > $run_xps_netlist
echo "exit" >> $run_xps_netlist

## run Platgen initial time
xps -nw -scr $run_xps_netlist ${SYSTEM}.xmp

## remove temp file
rm $run_xps_netlist

fi


# 3. In your XPS project, open the "synthesis/pci32_bridge_wrapper_xst.scr" file.
# 4. Add the line "-fsm_extract no" at the end of the file.
# 5. Save the file.
echo "-fsm_extract no" >> synthesis/${PLBV46_PCI}_wrapper_xst.scr

# 6. Open a bash shell from XPS and change into the synthesis directory, and run
# "xst -ifn pci32_bridge_wrapper_xst.scr".
cd synthesis
xst -ifn ${PLBV46_PCI}_wrapper_xst.scr

# 7. Change into the implementation directory.
# 8. Rename "pci32_bridge_wrapper.ngc" to "pci32_bridge_wrapper_in.ngc".
cd ../implementation
cp ${PLBV46_PCI}_wrapper.ngc ${PLBV46_PCI}_wrapper_in.ngc

# 9. Run ngcbuild -sd pci32_bridge_wrapper -uc
# pci32_bridge_wrapper/pci32_bridge_wrapper.ucf pci32_bridge_wrapper.ngc
# pci32_bridge_wrapper_in.ngc.
ngcbuild \
-sd ${PLBV46_PCI}_wrapper \
-uc ${PLBV46_PCI}_wrapper/${PLBV46_PCI}_wrapper.ucf \
${PLBV46_PCI}_wrapper_in.ngc \
${PLBV46_PCI}_wrapper.ngc

rm ${PLBV46_PCI}_wrapper_in.ngc

# 10. Run the "synthesis.sh" script.
cd ../synthesis
./synthesis.sh

# 11. Change into your project directory and run "make -f system.make bits", or
# go back into the XPS GUI and run the "make bits" process.
# Omit if using ProjNav or XPS GUI
cd ..
make -f ${SYSTEM}.make bits



AR# 32512
日付 12/15/2012
ステータス アクティブ
種類 一般