完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`玩转Zynq连载31——[ex53] 基于Zynq PS的EMIO控制 更多资料共享 腾讯微云链接:https://share.weiyun.com/5s6bA0s 百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw 提取码:ld9c 参考文档《玩转Zynq-基础篇:Zynq PS的GPIO外设.pdf》。 关于EMIO和MIO,这里多啰嗦两句。简单的理解,MIO是PS系统原生的,和PL没啥关系;但是EMIO是PS借PL的引脚用,所以它们就有千丝万缕的关系,PL的工程里面势必要做点什么。MIO在PS系统里面分配好对应的信号功能后,在PL的代码里面就不需要写任何的逻辑,甚至引脚分配都不需要(生成的PS系统会自动分配)。但是EMIO就要在PS的系统中引出,然后在PL顶层源码中申明端口类型,做引脚分配(因为EMIO用的就是PL的引脚)。 关于MIO和EMIO的关系,更形象直接的可以示意如图所示。MIO和EMIO都是PS的一部分,但是MIO可以直接连接到Zynq芯片的引脚上,和PL无关;而EMIO需要通过PL的IO才能连接到Zynq芯片的引脚上。EMIO的存在,其实是给用户更大的PS的GPIO扩展的灵活性,这也是FPGA+ARM独有的架构。因此,EMIO怎么用,很有必要好好玩玩。 打开ZYNQ7 ProcessingSystem的配置页面Peripheral I/O Pins,勾选GPIO EMIO选项,查看Periperals最右侧的EMIO列,对应的EMIO显示按钮变绿了,则表示该EMIO功能开启,EMIO引脚将会引出到PS系统。 完成配置后,回到ZYNQ7系统框图中,可以看到多了一个名为GPIO_0的接口。 展开GPIO_0接口,实际上有3组64bit的信号,分别代表input(GPIO_I)、output(GPIO_O)和inout(GPIO_T)。在实际使用中,根据我们的引脚方向,连接对应位的引脚即可。例如,GPIO_I[0]、GPIO_O[0]和GPIO_T[0]实际上对应的都是一个EMIO,如果我只用这个EMIO连接一个作为output的LED,那么我在PL上只要引出GPIO_O[0]并作引脚分配就可以了。 选中GPIO_0,右键单击,弹出菜单中点击CreateInterface Port...,引出一个port用于PL工程的顶层连接。 可以命名为GPIO_EMIO。 完成GPIO_EMIO引出后如图所示。 在Sources--> IP Sources中选择Block Designs -->zstar_zynq_ps,单击右键,弹出菜单中选中GenerateOutput Products...。 接着我们可以再次操作,单击右键菜单的CreateHDL Wrapper...选项。 打开后,看到PS系统的例化部分如图所示,可以复制到我们的新建的顶层源码中,在顶层源码中重新设置接口映射。 在实例zstar_ex52中,我们直接使用PS系统生成的zstar_zynq_ps_wrapper.v模块做顶层模块,但是这样的方式其实对于含有PL代码的工程来说灵活性不够好。我们更建议大家把这个zstar_zynq_ps_wrapper.v模块里面例化的PS系统例化到我们自己为PL工程专门新建的顶层源码中,在这个顶层源码中,我们也可以例化其它的PL逻辑模块。 废话说了,先新建一个zstar.v的Verilog模块,然后做如下编辑。 若要将新建的zstar.v模块作为PL工程的顶层模块,需要先选中zstar.v模块,右键单击选中菜单项Setas Top。 同时需要打开Sources -->Constraints - constrs_1下的约束文件zstar.xdc,增加led[2:0]的引脚约束。 参考文档《玩转Zynq-工具篇:导出PS硬件配置和新建SDK工程.pdf》。 SDK中,新建Empty的模板工程,名称为GPIO_EMIO_project。 展开新建的工程GPIO_EMIO_project,选中文件夹src,单击右键,弹出菜单中选择New--> Source File。 新建一个名为main.c的Default Csource template源文件。 输入EMIO控制的bit2-0引脚的程序,程序中实现EMIO0、EMIO1和EMIO2循环拉高,逐次点亮3个LED中的1个。 在Zstar板子上,设置跳线帽P3为JTAG模式,即PIN2-3短接。 连接好串口线(USB线连接PC的USB端口和Zstar板的UART接口)和Xilinx下载线(下载器连接PC的USB端口和Zstar板的JTAG插座)。使用5V电源给板子供电。 接着参考《玩转Zynq-工具篇:SDK在线运行裸跑程序.pdf》将zstar.bit文件和GPIO_EMIO_project.elf文件烧录到Zynq中运行起来。 程序运行起来后,我们就可以看到Zstar板上PL侧的3个LED指示灯D3、D2和D1逐个闪烁起来。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
882个成员聚集在这个小组
加入小组4516 浏览 0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2624 浏览 1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
4304 浏览 2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
5248 浏览 1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
5285 浏览 0 评论
1931浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:45 , Processed in 0.617695 second(s), Total 73, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号