Project Navigator Tutorial



Learning Objectives

  1. Learn the basic use of Project Navigator to create a project and then implement their design via Project Navigator.
  2. Learn how to use iMPACT to down load a bit file onto the FPGA.


Learning Resources

  1. Course text book.
  2. Project Navigator help files.


Tutorial overview

Project Navigator will allow you to create a project, include your VHDL files, synthesize your VHDL code, translate, map, and place and route your circuit for the FPGA specified in the project. Next, Project Navigator will generate the files to be down loaded onto the FPGA. Finally, Project Navigator will start iMPACT to download your bitmap file onto the FPGA. For this tutorial, we will build a parity checker.


The Tutorial - Quick Steps

  1. Create a new project in Project Navigator.
  2. Create your .vhd files.
    1. Create parity.vhd.
    2. Create top.vhd.
  3. Create and edit a .UCF file.
    1. Create top.ucf.
  4. Include your files into the Project Navigator project.
  5. Implement your design.
  6. Download your design onto the FPGA.
    1. Run iMPACT to download your bit file onto the FPGA.
  7. Test your implementation and refine your design (if necessary).


The Tutorial - Detailed Steps

  1. Create a new project in Project Navigator.
    1. Start Project Navigator

Double click the Project Navigator ICON on the desktop. When Project Navigator starts, its GUI will be displayed which will include four window panes.

    1. Create a new Project.

                                                               i.      Click File on the menu bar and select "New Project..."

                                                             ii.      In the New Project dialog box:

1.       Enter a project name.

2.       Make sure the Project Location is the directory you wish to contain your project.

3.       Leave the Top-Level Module Type as HDL.

4.       Click the Next button.

5.       Verify the Properties are set as follows:

Device Family: Spartan3

Device: xc3s200

Package: ft256

Speed Grade: -4


Top-Level Module Type: HDL

Synthesis Tool: XST (VHDL/Verilog)

Simulator: Modelsim

Generated Simulation Language: VHDL

Click Next if the properties are correct. Otherwise, correct the properties and then click next.

6.       Click Next again (no changes to Create a New Source)

7.       Click Next again (no changes to Add Existing Sources)

8.       Review the project specification to make sure they are correct and then click Finish.

  1. Create your .vhd files.
    1. Use the editor or your choice and create parity.vhd.
    2. Create top.vhd.
  2. Create a .UCF file and uncomment the required lines.
    1. Double click the Home ICON on the desktop.
    2. In the file browser, drill down into the project folder you specified in Project Navigator.
    3. In the file browser, right click on a open area where there is not a file ICON.
    4. A popup menu will appear. Select New and then select UCF File.
    5. Rename the new UCF file e.g. spartan3.ucf.
    6. Edit the .ucf file.

NOTE: The UCF file maps signals in your VHDL code to pins on the Spartan3 board. The new UCF file you created has all lines commented out. Uncomment just the signals you are actually using. It is extremely important to uncomment just the lines you are using. If you uncomment lines you are not using, you may introduce unexplained behavior.


For the UCF file to map a pin on the Digilent board to a signal in your top.vhd file, the signal name in your .vhd file must match the net name in the UCF file. If the names do not match, change the name in your .vhd file, not the net name in the .UCF file. The software tools you are using run on both Unix and Windows systems. Unix implementation are case sensitive. In general, Windows implementation of these tools do not maintain the case sensitivity. However, every now and then you may come across a feature in the tools that still enforces case sensitivity on a Windows platform. For this reason, it is recommended that you strive to keep signal names consistent in your .vhd and .ucf files.


a. For each input signal in top.vhd, uncomment the associated line in top.ucf.

b. For each output signal in top.vhd, uncomment the associated line in top.ucf.


NOTE: Comments in .ucf files begin with the # character.


  1. Include your UCF and VHDL files into the Project Navigator project.
    1. On the Project Navigator menu bar, click Project and select "Add Source..."
    2. In the Add Existing Sources dialog box.

                                                               i.      Make sure your project folder is selected.

                                                             ii.      Select one of your vhd files and then click the open button.

                                                            iii.      A Choose Source Type dialog box will appear.

                                                            iv.      Select VHDL Design File (if not already selected) and click OK.

                                                              v.      Repeat for each of the .VHD files you need to include into the project.

                                                            vi.      Include your .UCF file. When prompted, be sure to associate your .ucf file with top.vhd.


Note: At this,or an earlier, point, it would be wise to create a .do file and model your VHDL code.
This will simplify debugging.


  1. Implement your design (Synthesize, translate, map, place and route, and generate the files)
    1. Click in top left pane on top-mixed (TOP.VHD)
    2. In the middle left hand pane in Project Navigator, make sure the Process View tab is selected.
    3. Scroll down in the window and find "Configure Device (iMPACT)".
    4. Double click "Configure Device (iMPACT)".

This will walk through all the steps required to implement your design. If you prefer, you can double click each phase individually.

    1. If errors are detected, an error message will be displayed in the Console window pane of Project Navigator.

Resolve any errors and repeat step 5C until the project completes with no errors.


  1. Download your design onto the FPGA.

In step 5C, by double clicking "Configure Device (iMPACT)", iMPACT will start automatically. When Impact starts, it will display a series of dialog boxes.

    1. In the Configure Devices dialog box, accept default values by clicking Next
    2. In the Boundary-Scan Mode Selection dialog box, accept default values by clicking Finish.
    3. Click the OK button in the Boundary-Scan Contents Summary message box.
    4. In the Assign New Configuration File dialog box,

                                                               i.      Make sure the correct directory is selected in the Look In: edit box.

                                                             ii.      Select the top.bit file

                                                            iii.      Click the open button.

    1. Click OK in the iMPACT message box.
    2. Click ByPass (we want to program the FPGA, not the PROM).
    3. In the upper window pane in iMPACT, right click on the chip ICON.

                                                               i.      In the popup menu, select "Program..."

The "Program Options" dialog box will appear.

                                                             ii.      Click the OK button.

A progress bar will appear while the file is being down loaded.

                                                            iii.      The bitmap generated by your VHDL code is now loaded on the Digilent board.


  1. Test your implementation and refine your design (if necessary).