39
Aim I am FPGA novice and want to try classical FPGA design tutorials. I bought perfect modern FPGA board ZYBO (ZYnq BOard) based on Xilinx Z-7010 from Digilent but latest tools from Xilinx VIVADO 2015.2 more focused on AP SoC programming while I want to just pure FPGA design without any linuxes bootloaders etc. So I wrote this tutorial to help people like me :) In this example we make simple scheme: 2 signals IN and 4 OUT. Simple VERILOG example using VIVADO 2015 with ZYBO FPGA board v 0.1 SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V 0.1 1

Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Embed Size (px)

Citation preview

Page 1: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Aim

I am FPGA novice and want to try classical FPGA design tutorials. I bought perfect

modern FPGA board ZYBO (ZYnq BOard) based on Xilinx Z-7010 from Digilent but

latest tools from Xilinx VIVADO 2015.2 more focused on AP SoC programming while I

want to just pure FPGA design without any linuxes bootloaders etc. So I wrote this

tutorial to help people like me :)

In this example we make simple scheme: 2 signals IN and 4 OUT.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 1

Page 2: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Preconditions: Adding Zybo Board to Vivado

Vivado 2015.2 under Windows 7 64 bit was used with 16 GB of RAM.

Before using Zybo with Vivado you should add Zybo Definitions File to Vivado.

1. Good source for Board Definition files is Zynqbook website.Download

The_Zynq_Book_Tutorial_Sources_Aug15.zip

2. Copy zybo folder with content from Archive path \sources\zybo\setup\board_part

into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D:\Xilinx\Vivado\2015.2 is my

PC you probably have C:\Xilinx etc...)

3. In board_files you should see other boards so now our Zybo known by Vivado.

4. Download ZYBO_Master.xdc from Digilent website unpack constraints files on local

hard disk for example on Desktop.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 2

Page 3: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Phase 1. Preparation.

I have latest Vivado Design Edition from Xilinx which comes with Digilent Zybo board.

Launch your Vivado.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 3

Page 4: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Create new project

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 4

Page 5: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

New Project

Click Next

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 5

Page 6: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Set project name.

Set project name to gates2,

Keep rest settings unchanged unless you know what you doing.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 6

Page 7: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Project Type

Keep default RTL(Register Transfer Level) project, Press Next

Add sources

In this tutorial we decided to use Verilog language so make sure it set correctly.

Simulator language you can keep unchanged.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 7

Page 8: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Click on "+" - Select - Create File.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 8

Page 9: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Create Source File

Set Filename to gates2. Keep the rest unchaged. Press OK. Press Next.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 9

Page 10: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Add Existing IP

Click Next.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 10

Page 11: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Add Constraints

Click "+", Add Files.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 11

Page 12: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Add Constraint file we downloaded at Precondition step.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 12

Page 13: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Make sure: Copy constraints files into project - Checked.

Click - Next

Default Part

Click on boards and select Zybo. If you still don't have it follow steps in Preconditions:

Adding Zybo board to Vivado.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 13

Page 14: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

If you don't see ZYBO goto Preconditions Step.

Next.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 14

Page 15: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

New Project Summary

Finish

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 15

Page 16: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Phase 2. Editing Project

Project files generated and ready for your design.

We will implement 2 input gates and 4 output basic gates and, or, xor and nor.

Define I/O ports as below

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 16

Page 17: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

OK

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 17

Page 18: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Select Verilog Design

Click on Source file in Project Manager>Sources>Design Sources - Source code on

Right-hand side should appear.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 18

Page 19: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Changes to source code.

Modify Verilog file - add lines as highlighted below.

wire a,b;

reg [3:0]z;

always @(a or b)

begin

z[0] = a & b;

z[1] = a | b;

z[2] = a ^ b;

z[3] = !(a | b);

end

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 19

Page 20: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Create top file

Rightclick on Design Sources and select Add Sources.

1. Add or create design souces.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 20

Page 21: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

2. "+" > Create File

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 21

Page 22: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

File Type :Verilog,

File name: top_gates2

OK

Finish

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 22

Page 23: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Define Module

Add sw and led as on image below.

Replace default source code.

`timescale 1ns / 1ps

module top_gates2(

input [1:0] sw,

output [3:0] led

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 23

Page 24: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

);

gates2 C1(

.a(sw[0]),

.b(sw[1]),

.z(led)

);

endmodule

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 24

Page 25: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Top Design

We have single top design interface file which use our gates2 design as component.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 25

Page 26: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

top design

Make sure our top file became parent of gates2 file. Otherwise set it manually with Set

as Top.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 26

Page 27: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Amend Constraints file

Select xdc file from Sources>Constraints

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 27

Page 28: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Changes in xdc file

Uncomment lines of I/O ports we need to use.

Save file.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 28

Page 29: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Phase 3 - Synthesis and uploading to device.

At Synthesis phase we convert our circuit from register transfer level (RTL) into a

design implementation in terms of logic gates.

In Flow Navigator on Lefthand side.:

Next steps can be Simulation>Run Simulation or RTL Analysis>Schematic but we

skip them in this tutorial and come directly to Synthesis>Run Synthesis.

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 29

Page 30: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Synthesis complention

Leave default Run Implementation

OK

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 30

Page 31: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Generate Bitstream

Select Generate Bitstream

OK

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 31

Page 32: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Final

Pay attention to jumpers.

JP7 - It should set to USB.

JP5 can be JTAG or QSPI

Connect ZYBO to PC with Micro-USB cable.

Photo taken from http://marsee101.blog19.fc2.com/blog-entry-2745.html

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 32

Page 33: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Program ZYBO

Next

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 33

Page 34: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Next

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 34

Page 35: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Make sure you have similar setting like on picture below.

Select xc7z010_1

Next

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 35

Page 36: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Finish

Program device > xc7z010_1

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 36

Page 37: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Program

As confirmation of successfull upload Greed Led will set

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 37

Page 38: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Use switches to confirm and, or, xor and nor operations.

Archive of project available.

PDF version of this lesson available.

Reference

1. http://www.slideshare.net/MaryalaSrinivas/verilog-tutorial

2. http://www.instructables.com/id/Learn-Verilog-A-Brief-Tutorial-Series-on-FPGA-

Desi/?ALLSTEPS

3. The ZYNQ BOOK - Make sure you download not only book archive but also tutorials

book with sources.

4. HDL Chip Design- A Practical Guide for Designing, Synthesizing and Simulating

ASICs and FPGAs Using VHDL or Verilog. By Douglas J. Smith

5. ZYBO Reference Manual

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 38

Page 39: Simple VERILOG example using VIVADO 2015 with ZYBO …borisivanov.com/fpga/verilog_zybo1.pdf · into D:\Xilinx\Vivado\2015.2\data\boards\board_files (if D: ... Download ZYBO_Master.xdc

Files

1. Project Archive

2. ZYBO Board Definition File.

3. ZYBO Master xdc file.

Feedback

[email protected]

Simple VERILOG example usingVIVADO 2015 with ZYBO FPGA boardv 0.1

SIMPLE VERILOG EXAMPLE USING VIVADO 2015 WITH ZYBO FPGA BOARD V0.1 39