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# 20882

6.3 EDK - My design does not run correctly when it is implemented as a sub-module and exported to ISE


Keywords: 6.3, EDK, import, export, .XPS, ISE, bit, BMM, working, locate, submodule, toplevel, implement

Urgency: Standard

General Description:
I create a design in XPS and set it so that it is a sub-module of my overall design. When I then export the design into ISE and implement it as a sub-module, it does not run. However, when I set it to be top-level and implement it directly in XPS, the design runs successfully.


To avoid this problem, follow these steps when you wish to implement your EDK design as a sub-module and export it to ISE:

Basic System Creation

1. Generate a design using Base System Builder and run it through XPS without exporting it to ISE.
2. Use the default source code provided that simply prints out to a Hyper Terminal:

-- Entering main() --
-- Exiting main() --

3. Utilize XPS until the Embedded Processor System has been verified.

Creating a Sub-Module and Exporting to ISE

1. In XPS, select Tools -> Clean -> All
2. Go to Options -> Project Options. Select the "Hierarchy and Flow" tab, and specify the following:

- Under "Design Hierarchy', select "This is a sub-module in my design."
- In the "Top Instance" field, enter the instantiation name used for instantiating the embedded system in the top-level HDL file.
(NOTE: In order for the hierarchy in the BMM file to be correctly written and utilized in ISE, the instantiation name must match identically, and the embedded system must be instantiated in the top-level HDL file.)
- Specify the path to the ISE project. Select it so that you are either creating a new ISE design in the ProjNav folder of your project directory or adding it to an existing ISE project. (The same overall method applies to both.)

3. Export the HDL and BMM files to Project Navigator project by selecting Tools -> Export to ProjNav. If you are creating a new ISE design, this will create a new ISE project and a new folder in the EDK project directory called "ProjNav".
4. Open the ISE project. Two source files are created: <xps_project_name>.vhd, which is the VHDL for the system, and <xps_project_name>_stub.vhd, which is the top-level design file and is basically an instantiated template for system.vhd.

If you are exporting the sub-module into a current ISE design, your system.vhd file will be added to the design and this will be instantiated in your top level.

Additionally, <xps_project_name>_stub.bmm will be added automatically to your top-level <xps_project_name>_stub.vhd file.

You must then add the executable.elf and system.ucf files to the top-level ISE module.

(NOTE: It is only necessary to bring your executable.elf file into ISE if you are running the entire flow in ISE and are not importing back into XPS.)

5. Implement the design and download the generated BIT file using iMPACT.

Importing to XPS
1. Once the design is working fully in ISE, if you wish to import it back into XPS, select Tools -> Import from ProjNav.
2. Using the "Browse" buttons, select the <xps_project_name>_stub_bd.bmm and BIT files created by ISE. The "Import" function will copy the files back into the XPS project.
3. To update the bitstream and create a download.bit file, select "Update Bitstream" to run DATA2MEM.
AR# 20882
Date 04/12/2007
Status Archive
Type General Article
Page Bookmarked