Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
18 views13 pages

Lab Manual 8

This lab manual provides an introduction to using XILINX ISE for designing synthesizable RTL on FPGA platforms, specifically the Xilinx Spartan 3E. It outlines the objectives, recommended readings, and detailed steps for project creation, design file assignment, user constraints file creation, synthesis, implementation, and device configuration. The lab tasks include implementing a full adder circuit and writing a lab report to document the learning outcomes.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views13 pages

Lab Manual 8

This lab manual provides an introduction to using XILINX ISE for designing synthesizable RTL on FPGA platforms, specifically the Xilinx Spartan 3E. It outlines the objectives, recommended readings, and detailed steps for project creation, design file assignment, user constraints file creation, synthesis, implementation, and device configuration. The lab tasks include implementing a full adder circuit and writing a lab report to document the learning outcomes.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

EEE 343: Lab Manual (Version 1.

0)

Lab manual 8
Introduction to XILINX ISE and project design flow for synthesizable RTL

Objectives
1. To understand the basic functionality and usage of FPGA based platforms.

2. To get familiarization with project design flow using XILINX ISE tool.

3. Implementation and verification of basic combinational logic modules on XILINX Spartan 3E FPGA platform.

Recommended Readings
Spartan-3E FPGA Starter Kit Board User Guide by Xilinx, “UG230.pdf”

Chapter 7 (Section 7.8) of the book Digital Design by M. Morris Mano, 5th Edition

Introduction

This lab is concerned with implementation of small synthesizable RTL designs on a FPGA based platform. For that purpose, we

need to first understand the basic structure of a FPGA based system and then acquire hands on experience in implementing our

designs on said platform using synthesis and implementation tools like XILINX ISE.

A field‐programmable gate array (FPGA) is a VLSI circuit which can be programmed in field like microcontrollers. The difference

between the microcontrollers and FPGA platform is that MCU (microcontroller unit) can be visualized as an in built computer with

built in RAM , Rom and IO interfaces whereas, FPGAs are highly reconfigurable integrated circuits where the design is mapped on

logic blocks and digital design is physically constructed using gate arrays . A typical FPGA consists of an array of millions of logic

blocks, surrounded by programmable input and output blocks and connected together via programmable interconnections. There

is a wide variety of internal configurations within this group of devices. The performance of each type of device depends on the

circuit contained in its logic blocks and the efficiency of its programmed interconnections.

A typical FPGA logic block consists of lookup tables, multiplexers, gates, and flip‐flops. A lookup table is a truth table stored in an

SRAM and provides the combinational circuit functions for the logic block. These functions are realized from the lookup table, in the

same way that combinational circuit functions are implemented with ROM. For example, a 16*2 SRAM can store the truth table of

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

a combinational circuit that has four inputs and two outputs. The combinational logic section, along with a number of programmable

multiplexers, is used to configure the input equations for the flip‐flop and the output of the logic block. In Xilinx based FPGA design

implementation, three basic steps will be carried out that are synthesis of digital design, implementation and assignment of the

programming file to the respected FPGA chip. For our lab purposes, we will be using Xilinx Spartan 3E development board and

XILINX ISE software for synthesis, implementation and mapping of our designs. Let us understand the complete implementation

flow of our design using XILINX ISE tool first. Fig 1 shows the primary interface window of the software.

Fig 1: Software primary interface

From synthesis of our project till mapping of our design on FPGA, we have to follow these simple steps.

Step 1: Project creation and device selection

After running design Suite, the first step is to create a new project and select an appropriate target device for implementation. Fig 2

represents the series of steps taken to create a project and associate a target device to our project which are shown as the

screenshots.

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Fig 2: steps for creating and assigning target device to project

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Step 2: Assigning design files to the project


Now we are ready to assign or associate our HDL files to our target device which is shown in hierarchy window after completing

step 1. Simply right click the target device and assign the required files to the device. Fig 3. Shows the screenshots of assigning a

new file to our project. If you had already have the source files then you can simply select Add source from pop up menu.

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Fig 3: Assigning design files to a project

Step 3: Users constraints file creation and association

The next step is to create a user’s constraints file, which will associate your ports to the physical pins of the FPGA system. There

are two ways to Interface your IO pins of the modules to the physical pin of the FPGA module. The first way is to use Planahead

tool, which can be selected from the processes panel right under the hierarchy panel. You just need to click on user’s constraints

option and select map IO pins. The second way is to create a user’s constraint file using any text editor and save the file with

extention “*.ucf”. The details of the pins and their labels can be obtained from UG230.pdf. The basic format for specifying the nets

and interconnections is shown below

Net “port name to be associated” LOC = “pin location” | IOstandard

NET "A” LOC= "L13" | IOSTANDARD= LVTTL | PULLUP ;

In this example, the net labeled A (the input pin in our reference example) is connected to a switch which is connected with FPGA

pin location L13 and have an IO standard of LVTTL and is a pullup switch. You can assign the constraints file by right clicking your

project file under device hierarchy and use add source. Fig 4 will appear after successful association.

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Figure 4: Assigning constraints file

Step 4: synthesis, Implementation and program file generation


After completing the three steps, now we are ready to synthesize, implement our design and generating a program file which later

on will be assigned to our target device. In the processes panel just double click on option synthesize for synthesis of our design. If

design contain no errors then design summary will be generated which can be seen in the main window. If the process is failed then

errors will be notified in console. After successful synthesis, the next step is to implement our design and generate the programming

file. The design summary will be updated after implementation process. The generated programming file can be seen in your project

folder and have extension *.bit. Fig.4 shows the snapshot for the process.

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Fig 5: Synthesis, implementation and program file generation

Step 5: Configuring target device

The final step is to configure our target device. Make sure the device is connected to the system using power cable and JTAG cable.

The configuration is done though impact tool which can be executed by clicking on configure target device option in processes

panel. Fig 6. Shows the screenshots of the processes carried out till final configuration. In impact window, we will first perform

boundary scan and then right click on screen to initialize chain to see the available devices for programming. Later on we will assign

our bit file to the target device and apply our set configuration to download the bit file to system.

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Fig 6: configuring Target device

Department of Electrical and Computer Engineering


EEE 343: Lab Manual (Version 1.0)

Lab Tasks

After going through the detailed steps, now we are ready to implement our tasks and execute them on FPGA platform in order to

check their functionality.

Task:

Implement a full adder circuit on Xilinx Spartan 3E FPGA and verify your results.

Lab Report
It is mandatory for each student to write a lab report individually after successful completion of each lab session in order to check

out what they had learned through that specified session. Follow the specified template in order to generate a lab report. Answer

the home assignment first before going through the details of your assigned task(s) in lab report.

Home Assignment
1. Define the terms, logic cells and Slices?

2. Briefly describe the latest Xilinx FPGA devices?

3. What does the term speed grade mean?

Task Report

For assigned task, provide the HDL code in Appendix A, Design summary in Appendix B and user’s constraints file in Appendix C

Department of Electrical and Computer Engineering

You might also like