Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 11/01/17

Similar documents
Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 10/25/16

Getting started with the Xilinx Project Navigator and the Digilent BASYS 2 board.

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1

The board is powered by the USB connection, so to turn it on or off you plug it in or unplug it, respectively.

TUTORIAL On USING XILINX ISE FOUNDATION DESIGN TOOLS: Mixing VHDL and Schematics

CCE 3202 Advanced Digital System Design

Verilog Design Entry, Synthesis, and Behavioral Simulation

Revision: February 27, E Main Suite D Pullman, WA (509) Voice and Fax

Board-Data Processing. VHDL Exercises. Exercise 1: Basics of VHDL Programming. Stages of the Development process using FPGA s in Xilinx ISE.

Revision: February 27, E Main Suite D Pullman, WA (509) Voice and Fax

Programming Xilinx SPARTAN 3 Board (Simulation through Implementation)

Laboratory #Intro to Xilinx ISE and CR-2 Kit ECE 332

Nexys 2/3 board tutorial (Decoder, ISE 13.2) Jim Duckworth, August 2011, WPI. (updated March 2012 to include Nexys2 board)

EE 1315 DIGITAL LOGIC LAB EE Dept, UMD

Banks, Jasmine Elizabeth (2011) The Spartan 3E Tutorial 1 : Introduction to FPGA Programming, Version 1.0. [Tutorial Programme]

Chip Design with FPGA Design Tools

Xilinx ISE Synthesis Tutorial

CCE 3202 Advanced Digital System Design

ECE 4305 Computer Architecture Lab #1

Getting Started with Xilinx WebPack 13.1

PALMiCE FPGA Probing Function User's Manual

EE 367 Logic Design Lab #1 Introduction to Xilinx ISE and the ML40X Eval Board Date: 1/21/09 Due: 1/28/09

Circuit design with configurable devices (FPGA)

Building Combinatorial Circuit Using Behavioral Modeling Lab

Xilinx Schematic Entry Tutorial

University of Hawaii EE 361L. Getting Started with Spartan 3E Digilent Basys2 Board. Lab 4.1

Laboratory of Digital Circuits Design: Design, Implementation and Simulation of Digital Circuits Using Programmable Devices

Xilinx Tutorial Basic Walk-through

TLL5000 Electronic System Design Base Module

Xilinx Project Navigator Reference Guide

TLL5000 Electronic System Design Base Module. Getting Started Guide, Ver 3.4

Xilinx ISE8.1 and Spartan-3 Tutorial EE3810

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly!

4. Verify that HDL is selected as the Top-Level Source Type, and click Next. The New Project Wizard Device Properties page appears.

Guide ISE14. ISE 14.2 (Xilinx) Designflow 1/12

Lab 1: Introduction to Verilog HDL and the Xilinx ISE

MANUAL XILINX ISE PROJECT NAVIGATOR

ECE 491 Laboratory 1 Introducing FPGA Design with Verilog September 6, 2004

Introduction to WebPACK 6.3. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

Introduction to WebPACK 8.1. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

Xilinx ISE8.1 and Spartan-3 Tutorial (Prepared by Kahraman Akdemir based on Professor Duckworth's Tutorials updated September 2006)

Tutorial on FPGA Design Flow based on Xilinx ISE Webpack andisim. ver. 1.0

ISE Design Suite Software Manuals and Help

Nexys 2 board tutorial (Decoder, ISE 12.2) Jim Duckworth, August 2010, WPI. Digilent Adept Programming Steps added by Zoe (Zhu Fu)

Active-HDL. Getting Started

Introduction to WebPACK 5.2 for FPGAs. Using Xilinx WebPACK Software to Create FPGA Designs for the XSB-300E Board

Lab 3: Xilinx PicoBlaze Flow Lab Targeting Spartan-3E Starter Kit

Tutorial on FPGA Design Flow based on Xilinx ISE WebPack and ModelSim. ver. 2.0

Vivado Walkthrough ECGR Fall 2015

Lecture 5: Aldec Active-HDL Simulator

CECS LAB 1 Introduction to Xilinx EDA Tools

1. Downloading. 2. Installation and License Acquiring. Xilinx ISE Webpack + Project Setup Instructions

Introduction to WebPACK 4.1 for CPLDs. Using Xilinx WebPACK Software to Create CPLD Designs for the XS95 Board

EE183 LAB TUTORIAL. Introduction. Projects. Design Entry

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification

Tutorial: Working with the Xilinx tools 14.4

Introduction to WebPACK 6.1. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

Tutorial: ISE 12.2 and the Spartan3e Board v August 2010

FPGA Design Flow 1. All About FPGA

To practice combinational logic on Logisim and Xilinx ISE tools. ...

Implementing a Verilog design into the UWEE CPLD Development Board Using Xilinx s ISE 7.1i Software: A Tutorial

Introduction to WebPACK 4.1 for FPGAs. Using Xilinx WebPACK Software to Create FPGA Designs for the XSA Board

ELEC 204 Digital System Design LABORATORY MANUAL

ECT 224: Digital Computer Fundamentals Using Xilinx StateCAD

2001 by X Engineering Software Systems Corp., Apex, North Carolina 27502

XILINX ISE AND SPARTAN 3AN TUTORIAL

Xilinx ISE Simulation Tutorial

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

VIVADO TUTORIAL- TIMING AND POWER ANALYSIS

Tutorial on FPGA Design Flow based on Xilinx ISE Webpack and ModelSim. ver. 1.3

Programmable Logic Design Techniques I

Quick Front-to-Back Overview Tutorial

PlanAhead Release Notes

Tutorial: Working with Verilog and the Xilinx FPGA in ISE 9.2i

Lab 6: Intro to FPGAs

Converting Hardware Interface Layer (HIL) v1.x Projects to v2.0

Introduction to Xilinx Vivado tools

Lab 3. Advanced VHDL

Using XILINX WebPACK Software to Create CPLD Designs

Advanced module: Video en/decoder on Virtex 5

Contents. Appendix B HDL Entry Tutorial 2 Page 1 of 14

Lab 3 Sequential Logic for Synthesis. FPGA Design Flow.

Tutorial on FPGA Design Flow based on Xilinx ISE Webpack and ModelSim. ver. 1.5

2 nd Year Laboratory. Experiment: FPGA Design with Verilog. Department of Electrical & Electronic Engineering. Imperial College London.

ANADOLU UNIVERSITY DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING. EEM Digital Systems II

RTL Design and IP Generation Tutorial. PlanAhead Design Tool

Quick Tutorial for Quartus II & ModelSim Altera

Parallel Cable III Emulator for the XSB-300E Board

Tutorial on VHDL Compilation, Simulation, and Synthesis

RTL and Technology Schematic Viewers Tutorial. UG685 (v13.1) March 1, 2011

PlanAhead Software Tutorial

Experiment 8 Introduction to VHDL

Implementation of a Fail-Safe Design in the Spartan-6 Family Using ISE Design Suite XAPP1104 (v1.0.1) June 19, 2013

Lab 6 : Introduction to Verilog

Introduction. About this tutorial. How to use this tutorial

Introduction to WebPACK 3.1. Using XILINX WebPACK Software to Create CPLD Designs

CPLD Experiment 4. XOR and XNOR Gates with Applications

Tutorial on Simulation using Aldec Active-HDL Ver 1.0

DESIGN AND IMPLEMENTATION OF MOD-6 SYNCHRONOUS COUNTER USING VHDL

ELEC 4200 Lab#0 Tutorial

Transcription:

1 Logic Implementation on a Xilinx FPGA using VHDL WWU Linux platform assumed. rev 11/01/17 The following is a general outline of steps (i.e. design flow) used to implement a digital system described with VHDL on a Xilinx FPGA. - Create a directory for your design in which the VHDL and other files for this design will be placed. - Start the Xilinx ISE tool suit and create a project. Specify the folder in which the project is to be created and the name of the project (a folder with the project name will be created.) There will be a box in which the type of top level source file is specified. Select HDL as the top design level. - Select New Source on the left tool bar to create a source file (hover over icons to find the right one). Specify VHDL Module as the type. This file will be created in your project s directory. A window will open and allow you to specify a list of signal names and their direction which will be placed in the entity port statement (you don t have to specify I/O signals here, you can just type them in with the editor but entering them will allow ISE to create a complete entity). Note: the editor in ISE can be used to edit VHDL source files or any programming type text editor (not a word processor). - After creating the VHDL source file synthesize and implement the deisgn. - Create the bitmap file.. - Download the bitmap file to the FPGA using Impact. Test your design. These notes assume that the reader has done schematic oriented design using the Xilinx ISE software. VHDL source file details The VHDL file (or files) must be in plain text format that conforms to VHDL syntax standards. If your design has multiple VHDL files, one must be the top level module and all external inputs/outputs, i.e. connections to the FPGA, must be made to signals declared in the entity port statement of that top level VHDL file. There are two ways to specify the pin numbers associated with each signal named in the entity port statement. Either they are declared in the VHDL source file using attribute assignments or they are defined in a.ucf constraints file. On the next page is shown an example file that creates an XOR gate with the FPGA pin connections defined using attribute statements (This file can be found at /home/classes/engr433/example_vhdl/myxor_behav_w_pins.vhd). Note that the first attribute statement essentially defines a data type for the others. Also note that the pin numbers shown here may not be the correct pin numbers for the FPGA board you are using, so change them as needed (An x3cs1200e part in a ft256 package, i.e. it has 256 pins, is assumed here).

2 Library ieee; Use ieee.std_logic_1164.all; Entity myxor is port(x,y : in std_logic; h : out std_logic); attribute LOC : string; attribute LOC of x : signal is "R16"; attribute LOC of y : signal is "R15"; attribute LOC of h : signal is "H14"; End myxor; -- sw0 -- sw1 -- led0 Architecture myxorbehav Of myxor is Begin h <= x xor y; End myxorbehav; If an input or output signal is a bus, i.e. a vector, rather than having a separate LOC statement for each individual signal in the bus you will just have one LOC statement for the vector but it will have a list of pin numbers. For example, suppose the simple circuit above were described using a 2-bit bus that brings in the connection from two switches. The description might look like this: Library ieee; Use ieee.std_logic_1164.all; Entity myxor is port(x : in std_logic_vector(1 downto 0); h : out std_logic); attribute LOC : string; attribute LOC of x : signal is "R16, R15"; -- sw1 and sw0, in that order attribute LOC of h : signal is "H14"; -- led0 End myxor; Architecture myxorbehav Of myxor is Begin h <= x(1) xor x(0); End myxorbehav; The second way is to put the pin number definitions in a user constraints file (.ucf) located in the project directory (i.e. folder). The constraints file is an ASCII text file. It can be created using any text editor (or using the Xilinx PACE constraints editor, but that is not discussed here). On the class webpage are two constraints files: wwu_fpga2_single.ucf and wwu_fpga2_vector.ucf as detailed in section 3a below. Here is a constraint file for the myxor example above created by PACE. Lines starting with the # symbol are comments and are not required. Only the three lines starting with NET are required:

3 #PACE: Start of Constraints generated by PACE #PACE: Start of PACE I/O Pin Assignments NET "x" LOC = "R16" ; NET "y" LOC = "R15" ; NET "h" LOC = "H14" ; #PACE: Start of PACE Area Constraints #PACE: Start of PACE Prohibit Constraints #PACE: End of Constraints generated by PACE A constraint file for the WWU FPGA2 board mounted on a SWLED11 interface board can be found on the class web page. Synthesis using the Xilinx software; Creating a new project 0) Create a directory for your new project.. 1) Start the Xilinx ISE version 14.7 software by entering ise (lower case) in a terminal window or from the graphical user interface under other select Xilinx ISE. Note: ISE may start up with a prior design loaded. If so, click File on the Xilinx tool bar and select close. 2) Create a new project by clicking on File and selecting New Project. a) To set the Project Location, use the button with three dots to open the Find Directory popup window and navigate to the directory you created for the project. b) Also, enter a project name c) Select HDL as the type of top-level source for the project. d) Click Next e) The Project Settings screen should appear. Set values as follows: Development Board None Specified Product Category General Purpose Family Spartan3E Device XC3S1200E Package FT256 Speed -5 Top-level Source Type Synthesis Tool Simulator Preferred Language VHDL Standard HDL (this field may be grayed out) XST (VHDL/Verilog) Isim (VHDL/Verilog) VHDL VHDL-93 f) Click Next g) The project summary screen will be displayed. Review the info and if there is a mistake you can back up to a prior screen and make corrections. Click Finish when ok.

h) At this point there are no design files for the project. In the left window Empty View will be displayed. i) On the left tool bar at the top is a New Source button. Click on it. The New Source Wizard will open. Click VHDL Module (it should become highlighted) and enter a file name that describes your design. Click Next. The Define Module window will open and allow you to specify the signals that will connect to physical pins of the FPGA, both input and output. These become the signals named in the port statement in the entity. After listing your signals click Next. The Summary window will open showing the definition of the module and the port definitions. If it isn t ok click back to a prior window. When all is ok click Finish. Your newly created VHDL source file should open in the editor window. Note: If you created your VHDL source file with another editor you could use the Add Source button on the left tool bar rather than New Source. j) The Entity of your VHDL description has been created and the start of the Architecture. Two things need to be done before you build the project. 1) Add VHDL statements to the architecture to describe the desired circuit 2) Add attribute statements to the entity to map I/O signals to physical FPGA pins or set up a user constraints file (UCF). The example circuit below has two input signals that are ANDed together with the result displayed on Led0. Note the attribute statements that define connections to the FPGA 4

5 3) The content of the left subwindow(s) changes depending on the tab selected at the bottom. The default tab is Design which causes a hierarchy display with the name of your project, the FPGA type, and under the FPGA the name of the top level VHDL file. From this point on building the project and downloading it to an FPGA follows the procedure used for schematic driven design. Notes: A) The ibuf and obuf components that are manually placed in a schematic based design are automatically inserted by the synthesizer in a VHDL design based on the signal type declared in the entity port statement. B) Global clock buffers will automatically be placed on the inputs that are used for global clock inputs. If an internally derived clock needs to be connected to a global clock buffer that will need to be done manually in the VHDL source file like this: Library UNISIM; use UNISIM.vcomponents.all; BUFG_inst: BUFG port map ( 0 => signal_out; - - Clock buffer output I => signal_in - - Clock buffer input ); where signal_out and signal_in are the names of signals you are using in your design.

Initial VHDL file contents: 6

Main part of the VHDL file with a circuit installed and I/O connections made: 7