pynq-z2(三)PS端独立开发-vivado-sdk(正确版)

在上一篇写了一个错误版,主要的错误就是在addip后Run Block Automation并没有配置上,这很让人恼火,经过使用https://blog.csdn.net/bramblewalls/article/details/80045922这篇文章提到的PYNQ-Z1板卡文件,地址https://github.com/cathalmccabe/pynq-z1_board_files,进行测试发现应该是

  • Board files
    Board file包含了Pynq-Z2开发板上PS端所有的配置,用法在PS独立实验中提及。

可能是我下载pynq-z2的板子文件时损坏导致无法配置,通过查询资料找到http://www.tul.com.tw/ProductsPYNQ-Z2.html,这个链接中的

 PYNQ-Z2 Board File (for Pmod IP support please refere here)

 这个文件完整能够实现配置。下面就是开始实验啦,心情很高兴,谢谢刚刚打电话的老四,让我一下子来了灵感。

3.1.实验目标

独立运行PS端,通过USB线连接的UART0串口()输出“Hello, world! ”

3.2.实验流程

实验具体步骤参考 ALINX_ZYNQ开发平台基础教程V1.02第六章:体验ARM,裸机输出“Hello World”实验 ,需要注意的有以下几点:

3.2.1.使用Boardfile新建Vivado工程

在第2节中获取Pynq-Z2开发板的Board file文件,这个文件包含了Pynq-Z2开发板上PS端的所有配置,所以我们接下来添加使用这个文件来代替  ALINX_ZYNQ开发平台基础教程V1.02 中手动配置PS端的过程:

3.2.1.1.添加board file文件

之前下载的boardfile文件夹中包含pynq-z2文件夹,将其复制[vivado安装目录]/2018.1/data/boards/board_parts/zynq目录下,如图:

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第1张图片

3.2.1.2.新建基于Pynq-Z2开发板的工程

所有步骤都和之前新建工程一样,只是在选择Default Part页面不一样,如下:

 pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第2张图片

 注:添加后要将vivado重新开启,否则可能无法出现board下的pynq-z2选项

之后会出现开发板相关信息,再次检查是否正确,然后Finish

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第3张图片

3.2.2.创建Block Design,添加IP,vivado自动导出端口 

 参考:ALINX_ZYNQ开发平台基础教程V1.02第六章

(1)点击“Create Block Design” ,创建一个Block设计

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第4张图片

(3) 直接点“OK”不做修改(也可添加,但是名字不能太长否者会出错)

(4)单击“add ip” ,接下来收索“zynq”在搜索结果列表中双击"ZYNQ7 Processing System"

 pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第5张图片

 (5)这个zynqIP核只是一个独立的IP核,并没有进行任何设置和点击,因为工程是基于pynq-z2开发板创建的,已经包含ps端配置信息,所以直接点击Run Block Automation

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第6张图片

(6)然后单击ok,Vivado就会自动将这个zynqIP和的DDR和FIXED_IO接口与PS端的接口进行对应连接,连接后如图所示,然后保存:

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第7张图片

(7)自动连接完成之后双击ZynqIP核即可看到所有配置已经自动完成了,我们使用的UART0也已配置完成,这里只是查看,不作任何修改

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第8张图片

 

(8)然后选择Tools -> Validate Design或者按下F6验证设计

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第9张图片

这是因为之前自动导出端口时只配置了DDR和FIXED_IO,设计里没有使用AXI 接口GP0相关IP核,所以没有自动配置时钟,手动连线:

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第10张图片

手动连接

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第11张图片

 

(9)选择点击“Block 设计,右键“Create HDL Wrapper...,创建一个 Verilog或VHDL文件,保持默认选项单击”ok“

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第12张图片

展开设计可以看到PS被当成IP使用

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第13张图片

(9)选择block设计,右键GenerateGenerate Output Products”

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第14张图片

(10)在菜单栏“File-> Export -> Export Hardware”导出硬件信息,这里就包含了PS 了的配置信息

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第15张图片

在弹出的对话框中点击“OK" ,因为实验仅仅是使用了PS的串口,不需要PL 参与,这里就没有使能Include bitstream

 

3.4SDK调试

(1)点击File -> Launch SDK启动SDK

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第16张图片
(2)启动后我们会看到一个文件夹,有一个名“system.hdl”文件,这个文件包含了vivado硬件信息,可以给软件开发使用,也可以看到ps端外设寄存器列表。

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第17张图片

(3)写一个hello world

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第18张图片

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第19张图片

选择模板

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第20张图片

(4)显示结果

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第21张图片

(5)打开xshell,在项目上右键选择run as 

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第22张图片

注释:如果xhell没有显示hello world 则继续如下配置

(6)为了保证系统的可靠调试,需要添加一个配置,右键“run as ->run configuration",然后进行如下配置

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第23张图片
 

(7)xshell就可以看到helloworld

pynq-z2(三)PS端独立开发-vivado-sdk(正确版)_第24张图片

 

 这部分显示只能显示到这里了,但是文件可以下到板子里,有一个现象就是原来亮的led现在全灭了,不知道是不是正确现象。

但是除了这步上面的创建文档没有报错。

3.5.实验总结:pynq中PS端的使用包含两部分:

硬件设计
软件设计
在设计硬件的时候都是基于IP核进行设计的,ARM处理器内核和Zynq7 Processing IP核相对应,在设计完成之后通过Vivado进行端口之间的自动连接,设计完成后到处SDK所需要的硬件文件,转入软件设计;
软件设计时和普通ARM内核处理器的开发相同,采用C语言开发,并无多大差异,详细细节可以参考Xilinx文档和例程。

参考:https://blog.csdn.net/Mculover666/article/details/83033918?utm_source=blogxgwz0(主要参考)

         http://www.tul.com.tw/ProductsPYNQ-Z2.html

         https://blog.csdn.net/bramblewalls/article/details/80045922

        https://blog.csdn.net/u014485485/article/details/78107003(谢谢mihu525)

你可能感兴趣的:(FPGA学习)