新建空列表_zynq开发(一)新建工程

这篇博客详细介绍了如何使用Vivado 2017.4创建一个新的ZYNQ工程。从启动Vivado到新建工程,再到配置RTL工程、选择芯片类型(XC7Z015)、配置ZYNQ IP,以及生成输出产品和硬件平台,最后涉及SDK中新建FBSL和应用工程,以及固化的程序加载到QFlash的过程。
摘要由CSDN通过智能技术生成

新建工程

  1. 打开vivado2017.4,在出现的对话框中选择创建一个工程,如图所示。这一步是为了创建一个ZYNQ的工程。

b9f835383b886817b2fbfddd9b0e896c.png

2. 点击创建工程后,出现对话框如图所示,然后点击对话框中的下一步。这一步表示这是一个创建工程的向导,通过该向导去新建一个工程。

d76c26c4f5e367f170c18f1265daca5b.png

3,此时会出现一个对话框如图所示,这一步给工程命名,并且确定工程的保存路径,下面的小勾表示创建一个和工程名字相同子目录,然后点击下一步。

df2574d756cfbb0749537b6502b69e13.png

4,下一步后出现对话框如图所示,该步骤是确定需要创建工程的类型,我们选择RTL工程,该类型的工程可以添加源文件,创建IP大框架,生成IP,综合分析和实现等。点击下一步。

d158bde8aeb94b7f091e0b79de023696.png

5,此时出现对话框如图所示,该步骤表示添加现有的源文件,创建一个空的工程,这步直接点击下一步。

f42564516b4b717fe8dcfaefa3a4036e.png

6,出现对话框如图所示,该步骤为添加现有的约束文件,创建空的工程,直接点击下一步。

b65a7f35100e4970a1ac3d772d94699e.png

7,出现对话框如图所示,该步骤选择芯片的类型,本工程建立在7015型号上,所以选择xc7z015clg485-1,然后点击下一步。

7ac4a93aae81c83fba07119c214d50a1.png

8,此时出现对话框如图所示,该步骤表示工程创建完成,显示所创建的工程的信息,点击完成。

3cd51225691bdc0541d271d1068020f5.png

9,空的工程创建完成以后出现界面如图所示,需要往里面添加需要的IP大框架,在IP向导下拉表中双击创建IP框架,建立IP框架图。

9fcf74bd7de0cb3e65c1ba2c00572799.png

10,双击后出现创建设计对话框如图所示,点击OK。

4ccac1fbc405e14e0b12f644ccd583a9.png

11,创建背框后出现如图的对话框,点击diagram中的大空白页中的“+”图标,添加IP到设计框架。

fcad38bf66ccd5e46beef7e618652081.png

12,点击+号后添加ZYNQ的IP到设计框架中,如图所示,在输入框中输入zynq,下拉表中会有对应的zynq出现,双击下面的IP添加到设计框中。

83b677cefe75bc9d6f432978b8acaec4.png

13,添加zynq的ip后对话框如图所示,双击图中的ZYNQ核心IP,出现配置界面。

f028ed3ff727c6c936ca9253649fdd7f.png

14,出现的配置界面如图所示,这时可以对ZYNQ进行配置了,其Page Navigator 界面下有 8 个子项,分别为 Zynq Block Design,PS-PL Configuration,

Peripheral I/O Pins,MIO Configration,Clock Configuration,DDRConfiguration,SMC Timing Calculation,Interrupts。这些页面选项是针对 ZYNQ 的不同硬件模块的配置,其中PS_PL 页面提供了 PS 到 PL 的相关接口配置信息以及 PS 部分一些配置信息;Peripheral I/O Pins 页面主要是对一些通用外设接口的配置;MIO Configruation 页面主要是对 MIO 以及EMIO 的分配控制;Clock Configruation 页面主要是对 PS 端时钟资源的配置和管理;DDR Configration 页面主要是对 DDR 控制器一些参数的配置;Interrupts 页面主要是对中断进行配置管理。

4f2ba028aa9f0b79126d09d794c1ec40.png

15,可以通过page navigator中的的八个设计单元分别去配置工程中zynq的硬件外设单元;也可以通过加载脚本的方式配置设计单元;这里通过脚本去设计ZYNQ器件的基本单元,点击presets,出现下列列表,选择apply configuration选项,如图所示。

a0e608a779328c3f8ffa5b7e13af06df.png

16,然后出现选择脚本路径的对话框如图所示,选择之前保存的好的最小系统脚本,点击ok按钮,配置好ZYNQ的IP。

752d7ceb3fa6d07749860637a062474a.png

17,待配置好IP后会出现如图的对话框,表示配置好了相关的属性和外设,配置了的外设后面会打上勾,点击ok。

0191ceb130c0c5b369af9f512b4941e6.png

18,配置好IP外设后出现如图的对话框,点击红框中的source选项卡,然后鼠标右键点击在design sources下的design_1(design_1为刚刚设计的IP),在弹出的下拉列表中选择generate output products,生成输出的产品。

dadeab0fe957644963624cd64709024e.png

19,点击generate output products后出现对话框如图所示,表示将要生成输出产品,选择global,并点击下面的生成。生成成功后点击OK,

8f29db3d772121a697853455714c6283.png

20,再点击红框中的source选项卡,然后鼠标右键点击在design sources下的design_1,在弹出的下拉列表中选择create HDL wrapper,如图所示,表示生成顶层文件。

34125ec3d95114374b7f4ac96665ed33.png

21,生成顶层文件成功后出现如图所示对话框,点击OK。

da03814e4f17f5d062d123a4131c7bea.png

22,生成了顶层文件后,进行综合实现布线并生成.bit文件,如图所示,点击红框图标,然后出现对话框是否确认生成bit文件,点击yes,确定生成文件。

dcf87b3c3b7a42a654cc5fb8a00ff31e.png

23,点击yes后出现对话框如图所示,点击ok开始生成bit文件。

49aae31e417d0c76ce937fcdc442cf93.png

24,然后等待综合实现布线的完成,等待界面右上角的圈圈转完,表示.bit文件生成完成,如图所示。

17956c237d1588e57f95dd5643857c88.png

25,生成成功以后会出现如图所示的对话框,右上角会有勾出现,并且提示是否看生成后的设备布线等具体信息,这里不看点击cancel。

5a0c44d6ca2cfc0f261f0b268dd5cb4c.png

26,生成.bit文件以后,点击file菜单,在下拉列表中选择export,并且在子菜单中选择export hardware,生成硬件平台,供后续软件sdk使用,如图所示。

6b9d922ad594ef40b6e1c92deb8e0c1e.png

27,后续出现对话框如图所示,勾选上包含.bit文件,点击OK,表示生成硬件平台。

e9b97a3dffea6645ffed1acba9857973.png

28,有了硬件平台后,点击file菜单,在下拉列表中选择launch SDK,打开ps端开发的SDK,如图所示。

a5a0779597f4605a648c43be6856af35.png

29,然后出现对话框如图所示,确认SDK的工作空间等信息,点击OK,至此开始进入到PS端开发SDK。

63d022b552eb1db6d4e52f08c980811e.png

30,等待SDK打开完成,打开后出现界面如图所示,此时拥有了硬件平台design_1_wrapper_hw_platform_0。在system.hdf文件中会显示相应硬件平台外设的基地址和地址范围。

70f016581fe156b250e721fd11c19ac3.png

31,拥有硬件平台后,此时还需要建立软件工程,软件工程一般需要建立两个,一个是FBSL工程,一个是应用工程,FBSL工程是用来做固化启动芯片的工程,而应用工程则是需要实现的应用程序,这里先新建FBSL工程,点击file菜单,在下拉列表中选择new,在子菜单中选择application project,如图所示。

a28974abd459b807f629f6c5f3e2d6bd.png

32,然后出现对话框如图所示,输入工程名字,选择工程路径,一般使用默认路径,选择系统平台standalone,选择上述的硬件平台design_1_wrapper_hw_platform_0,选择操作核心0核(ps_cortexa9_0),确定开发语言为C语言,创建新的板级开发包,然后点击下一步。

ab242e65d6cd41b4ac69600d9b0f93b8.png

33,后续出现对话框如图所示,选择创建工程的模板类型,这里要创建FBSL工程,所以选择zynq fbsl类型模板,点击finish,完成工程的新建。

e01b74c23071cf3c0fca295c2095ef12.png

34,有了启动工程以后,还要有应用程序工程,所以在新建一个应用程序,这里再新建一个应用工程,点击file菜单,在下拉列表中选择new,在子菜单中选择application project,如图所示。

04e56734655dc1d09f7db0991486dc00.png

35,然后出现新建工程信息对话框,如图所示,输入工程名字,选择工程路径,一般使用默认路径,选择系统平台standalone,选择上述的硬件平台design_1_wrapper_hw_platform_0,选择操作核心0核(ps_cortexa9_0),确定开发语言为C语言,由于有了板级开发包了,所以这里使用之前创建的板级开发包,然后点击下一步。

4dd695bae697ac873f70dc41c32c3584.png

36,后续出现对话框如图所示,选择创建工程的模板类型,这里要创建一个helloworld模板应用程序,所以选择helloworld类型模板,点击finish,完成工程的新建。

4bf85b4f7f78a41b434bd184d78fa625.png

使用调试

1,建立完工程以后需要进行在线调试程序,整个SDK中的界面分布如图所示。

a7793c754d331160897a122eafc44c52.png

2,配置debug的一些相关设置,点击菜单栏上的run,会出现下拉列表,如图所示,在列表中会出现好多和debug相关的调试配置,有断点的配置,有运行的配置,这里先选择run as下的launch on hardware,选择在创建的硬件平台上运行程序。

a09be1ad49ce0be0f5dcfafd05792f10.png

选择debug configurations,配置一些debug相关的信息,如图所示。主要是选择上复位整个系统和下载FPGA程序的操作,在这两个选项上打上勾,然后点击应用,主要是在进入调试模式时复位系统,并且下载好fpga程序。

c68457f26a5d0f2fbb927ef6b544b04f.png 9bdb839b4d828de28748118c7439e15c.png

3,点击小爬虫以后进入debug的界面,如图所示。其分布主要为:工具栏,核心选择栏,程序源码栏,变量监测栏,内存监测栏等,在图中红色框框中描述的功能是调试过程中经常用到的功能。

9b2d90761cb17a85b69076978b0b6e18.png

加载固化

1,固化程序需要首先创建一个固化程序文件,然后将这个.bin文件下载到flash中;作为ZYNQ的固化程序,需要三个部分的程序,一部分为FBSL程序,该程序作为应用程序的bootloader;一部分为FPGA端的.bit文件,工程中的系统文件;还有一部分就是应用程序的文件了。使用SDK生成固化文件,选择菜单 Xilinx ->Create Boot Image,如图所示。

af2c81d378aa2997883577d59f32ddfd.png

2,弹出对话框如图所示,输入生成固化程序的路径,点击output bif file path路径中的browse浏览生成路径,下面output path会和上述选择路径一样,然后在下方的框框中点击add,通过三次添加把fsbl程序文件,fpga端的.bit文件以及应用程序的.elf文件三个文件加入到boot image partion中,最后点击create image创建出固化程序。

a733e878ca7e8e1e8f1979f94668f7bc.png 509bd45dc6f8446cbc19e3be4099eb3b.png 121f67e7f7e12ac98efd9e476babfd8e.png 3236c8046da244b8146a25718511b614.png d0aac31187411e42933fb37fc155ded5.png

3,有了固化程序,还需要将程序下载到qflash中,需要用到SDK中的下载程序,在菜单栏中选择Xilinx下拉列表中的Program Flash,然后弹出下载对话框,如图所示。

6e343a28d17579f398775154f1937e55.png

4,对话框如图所示,需要选择固化程序文件的路径(Image File),还需要选择能够下载程序的FBSL.elf文件。

75574a4f7ae248f89f6cf99c29cde823.png

5,但是,使用的vivado版本为2017.4,在生成的FBSL.elf文件不能正常加载程序到qflash,在fbsl工程源码中可以看到启动方式为QFLASH,会对flash进行分区,无法正常下载,我们需要修改其启动方式为JTAG模式,然后编译,这样子生成的FBSL.elf文件才能做加载使用。修改源码如图所示。

aa7a747ab4fd0d42bd90ad1d5cd55cc5.png

6,同时还需要添加环境变量到系统变量中,改变QSPI的时钟为10MHz,如图所示。右键点击我的电脑,点击属性,弹出对话框,选择高级系统设置;弹出对话框,点击环境变量;弹出对话框,在系统变量那一栏点击新建;弹出对话框,在变量名中输入XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ,变量值中输入10000000,然后点击确定。

0ad25303eb49c6ed7e1e40e24d686ff5.png 5f9d1b3686da4d78174fce8cdae59e8c.png b32148f725de45c3686baa31d47a2419.png 91096c31654510221d1a15431941735a.png

7,修改上面内容后进行加载,有了固化程序,还需要将程序下载到qflash中,需要用到SDK中的下载程序,在菜单栏中选择Xilinx下拉列表中的Program Flash,选择固化程序文件的路径(Image File)以及能够下载程序的FBSL.elf文件(修改后重新编译的fbsl.elf文件)。

注意:下载的fbsl.elf文件与生成固化程序的fbsl.elf文件是两个不同的文件,为了以后不需要做修改,可以将上述修改后的fbsl.elf文件单独放在一个路径中,在下载flash程序的时候选择这个路径下的fbsl.elf文件就可以了。

更多精彩内容,请看下面链接:

5分钟了解FPGA之Xilinx7

modelsim中代码覆盖率使用详解

增量编译(Incremental Compile)提高Vivado编译效率

ModelSim  仿真实例入门之(三)--时序仿真

ModelSim 仿真软件介绍(二)

ModelSim仿真软件介绍(一)

FPGA数字信号处理(二)数字混频

【FPGA信号处理一】5分钟学会FIR 滤波器设计

在Vivado中,您使用过TCL吗?

编写可综合的FPGA代码经验总结(二)

【干货分享】编写可综合的FPGA代码经验总结(一)

【干货分享】异步电路中的时钟同步处理方法

【干货分享】同步电路分析---异步和同步电路的区别(二)

【干货分享】Verilog中阻塞和非阻塞赋值金规

【干货分享】同步电路的时序模型分析(一)

【干货分享】同步复位和异步复位,您真搞明白了吗?

【干货分享】Get到这些小技巧,FPGA设计将提高一个台阶

Vivado中几种仿真模式比较

3aeee89842f386eadc2f21df80e115ea.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值