zynq学习01 新建一个Helloworld工程

时间:2023-12-13 17:59:08

1,好早买了块FPGA板,zynq 7010 。终极目标是完成相机图像采集及处理。一个Window C++程序猿才开始学FPGA,一个小菜鸟,准备转行。

2,关于这块板,卖家的官方资料学起来没劲。推荐上GOOGLE ,YouTube 搜“Zynq Training”等等。感觉质量好高。,英语很简单,大部分能听懂。

3,在google问题时意识到可以看一下zedboard的资料。下载zedboardd的官方资料,发现有个优点是能够把各个名词解释一遍。可以搜“zedboard_CTT_v2013_2_130807”。随便下的,有点老。

4,下面根据zedboard的资料一步步跟着完成第一个工程,算是一种仪式:

一、Creating a New Embedded Project With a Zynq Processing System

1,打开VIVADO   

2,Create new project,    

3,选择工程文件夹存放目录,填写工程的名字。

4,选择器件,我的是xc7z010clg400-1。直接搜索点击选择,下一步,完成向导。

二、IP Integrator

1,创建空的block design ;类似画布,可以在上面组织RTL。

2,增加已有的IP,类似组件。可以点击左边的图标,或者上方的链接字样{add IP},或者快捷键 ctrl + i

zynq学习01 新建一个Helloworld工程

3,增加IP核 “zynq7 processing system”,搜索,双击,一个ip就添加到block design中。双击刚添加的zynq7 System。使能和不使能某些端口和功能。

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

4,双击增加的IP,编辑的它的端口。

总的说:本helloword只用到PS部分串口打印出helloword。所以除了UART1打勾(为什么是UART1而不是UART0) ,其他选项都去掉。展开所有,查看其他选项是否去掉打勾。

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

5,自动连线-》OK

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

6,生成顶层文件:切到sources页,展开Design sources ,右击block design名,弹出下拉菜单选择 Create HDL wrapper。点击OK。生成的wrapper文件出现在block design的上一级目录

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

7、生成bitstream。左下角点击generate bitstream 。如果你没做前面的综合和实现,直接点generate bitstream这个按钮,它也会自动帮你完成前面的综合实现。觉得电脑烂的,现在可以看点别的,因为比较久。

zynq学习01 新建一个Helloworld工程

8,file下拉菜单导出硬件配置export hardware,和bitstream。然后launch SDK,到软件开发环境(sdk)。打开这个sdk,编写软件。

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

9、打开SDK,新建应用程序

zynq学习01 新建一个Helloworld工程

10、输入应用程序名,选择以后的例程HelloWorld(C语言下)

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

11,等待它自动编译完,

zynq学习01 新建一个Helloworld工程

12,先将bitstream下载到FPGA,

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

13、再Run As configuration 配置运行参数

zynq学习01 新建一个Helloworld工程

14、新建一个run ,在右边,search选择文件。点击apply,点击run。就可以在板上运行。

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

zynq学习01 新建一个Helloworld工程

15、要使helloworld显示,可以使用串口助手,或者vivado自带功能:如图勾选,选择串口。再次run。

zynq学习01 新建一个Helloworld工程

16、cool! It works!

zynq学习01 新建一个Helloworld工程

遇到问题:1,run as 时出现连接不上JTAG:  重新拔插电源线,也不行。结果重启vivado,sdk就可以run了

2,第一次run as 没有出错,但串口没有输出helloworld。结果是:没有选择应用程序下载进去,下图,工程名和应用程序名那时是空的,忘了选。点击右边按钮就能解决。

zynq学习01 新建一个Helloworld工程

还有一个helloworld教程我也成功了:http://www.fpgadeveloper.com/2014/07/creating-a-base-system-for-the-zynq-in-vivado.html