在上一篇写了一个错误版,主要的错误就是在addip后Run Block Automation并没有配置上,这很让人恼火,经过使用https://blog.csdn.net/bramblewalls/article/details/80045922这篇文章提到的PYNQ-Z1板卡文件,地址https://github.com/cathalmccabe/pynq-z1_board_files,进行测试发现应该是
可能是我下载pynq-z2的板子文件时损坏导致无法配置,通过查询资料找到http://www.tul.com.tw/ProductsPYNQ-Z2.html,这个链接中的
PYNQ-Z2 Board File (for Pmod IP support please refere here) |
这个文件完整能够实现配置。下面就是开始实验啦,心情很高兴,谢谢刚刚打电话的老四,让我一下子来了灵感。
独立运行PS端,通过USB线连接的UART0串口()输出“Hello, world! ”
实验具体步骤参考 ALINX_ZYNQ开发平台基础教程V1.02第六章:体验ARM,裸机输出“Hello World”实验 ,需要注意的有以下几点:
在第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目录下,如图:
3.2.1.2.新建基于Pynq-Z2开发板的工程
所有步骤都和之前新建工程一样,只是在选择Default Part页面不一样,如下:
注:添加后要将vivado重新开启,否则可能无法出现board下的pynq-z2选项
之后会出现开发板相关信息,再次检查是否正确,然后Finish
参考:ALINX_ZYNQ开发平台基础教程V1.02第六章
(1)点击“Create Block Design” ,创建一个Block设计
(3) 直接点“OK”不做修改(也可添加,但是名字不能太长否者会出错)
(4)单击“add ip” ,接下来收索“zynq”在搜索结果列表中双击"ZYNQ7 Processing System"
(5)这个zynqIP核只是一个独立的IP核,并没有进行任何设置和点击,因为工程是基于pynq-z2开发板创建的,已经包含ps端配置信息,所以直接点击Run Block Automation
(6)然后单击ok,Vivado就会自动将这个zynqIP和的DDR和FIXED_IO接口与PS端的接口进行对应连接,连接后如图所示,然后保存:
(7)自动连接完成之后双击ZynqIP核即可看到所有配置已经自动完成了,我们使用的UART0也已配置完成,这里只是查看,不作任何修改
(8)然后选择Tools -> Validate Design或者按下F6验证设计:
这是因为之前自动导出端口时只配置了DDR和FIXED_IO,设计里没有使用AXI 接口GP0相关IP核,所以没有自动配置时钟,手动连线:
手动连接
(9)选择点击“Block 设计,右键“Create HDL Wrapper...,创建一个 Verilog或VHDL文件,保持默认选项单击”ok“
展开设计可以看到PS被当成IP使用
(9)选择block设计,右键GenerateGenerate Output Products”
(10)在菜单栏“File-> Export -> Export Hardware”导出硬件信息,这里就包含了PS 了的配置信息
在弹出的对话框中点击“OK" ,因为实验仅仅是使用了PS的串口,不需要PL 参与,这里就没有使能Include bitstream
(1)点击File -> Launch SDK启动SDK
(2)启动后我们会看到一个文件夹,有一个名“system.hdl”文件,这个文件包含了vivado硬件信息,可以给软件开发使用,也可以看到ps端外设寄存器列表。
(3)写一个hello world
选择模板
(4)显示结果
(5)打开xshell,在项目上右键选择run as
注释:如果xhell没有显示hello world 则继续如下配置
(6)为了保证系统的可靠调试,需要添加一个配置,右键“run as ->run configuration",然后进行如下配置
(7)xshell就可以看到helloworld
这部分显示只能显示到这里了,但是文件可以下到板子里,有一个现象就是原来亮的led现在全灭了,不知道是不是正确现象。
但是除了这步上面的创建文档没有报错。
硬件设计
软件设计
在设计硬件的时候都是基于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)