在ZYNQ-7000平台上利用PS点亮PL上的LED灯

1、实验方案

图1    实验方案系统框图

2、具体步骤

2.1、vivado工程建立

①打开vivado集成开发环境,点击“Create Project”,如下图所示。

②点击“Next”,如下图所示。

③在“Project name”中输入工程名;在“Project location”中选择保存路径;勾选“Create project subdirectory”,最后点击“Next”,如下图所示,注意均不要出现中文。

④选择“RTL Project”,点击“Next”,如下图所示。

⑤点击“Next”,如下图所示。

⑥点击“Next”,如下图所示。

⑦输入芯片型号,然后点击“Next”,如下图所示。

⑧点击“Finish”,完成vivado的工程创建,如下图所示。

2.2、创建一个Block设计

⑨IP INTEGRATOR→Create Block Design,在弹出的对话框中输入设计名,最后点击“OK”,如下图所示。

⑩点击“+”,在搜索框中输入“zynq”找到“ZYNQ7 Processing System”,双击就可以将ZYNQ处理器添加到设计中了,如下图所示。

⑪双击ZYNQ→DDR Configuration→DDR Controller Configuration→DDR3,在Memory Part下拉菜单中根据自己板子上的DDR来选择相应的DDR3,本实验所用到型号:MT41K256M16 RE-15E,最后点击“OK”,如下图所示。

注意这里的DDR3并不是和板子上的DDR3严格对应,而是参数最接近的型号,有时候实验不通的话,问题往往出现在这里,可以多试几个。

⑫点击“Run Block Automation”如下图所示。

⑬在弹出的选项中保持默认,点击“OK”,即可完成对ZYNQ7 Processing System的配置。

⑭按照添加ZYNQ7 Processing System的方法,继续添加AXI GPIO,然后双击AXI GPIO,打开AXI GPIO配置对话框,由于只有输出4个led灯,故而按照下图对其进行设置,最后点击“OK”确认。

⑮点击“Run Block Automation”即可完成对AXI GPIO的设置,如下图所示

⑯点击“Run Connection Automation”。

⑰在弹出的对话框中按照下图所示配置,然后“OK”确认。

⑱最后生成如下的框图。

⑲在框图中点击gpio引脚,在左边的“External Interface Properties”给gpio起名leds,如下图所示。

⑳source→design_1→create HDL wrapper…,如下图所示。

21在弹出的对话框中,保持默认,点击“OK”确认,如下图所示。

22至此,可生成HDL文件,如下图所示。

2.3、.XDC文件约束PL管脚

23在source目录下,点击“+”,在弹出的对话框中选定“Add or create constraints”最后点击“Next”,如下图所示。

24点击“Create File”,在弹出的对话框中给约束文件命名,点击“OK”确认,如下图所示。

25点击“Finish”,完成约束文件的创建。

26打开新建的约束文件,进行如下的管脚分配。

27产生bit文件。

2.4、SDK程序编写

28File→Export→Export hardware…,在弹出的对话框中勾选“include bitstream”,点击“OK”确认,如下图所示。

29File→Lauch SDK,在弹出的对话框中,保存默认,点击“OK”,如下图所示。

30至此,打开SDK开发环境,如下图所示。

31file→new→Application Project,来新建一个“Application Project”,如下图所示。

32 给Application Project命名,最后点击“Next”,如下图所示。

33选择“Empty Application”,然后点击“Finish”,如下图所示。

34axi_led_bsp→system.mss→import examples,在弹出的对话框中选择“xgpio_example”,最后点击“OK”确认,如下图所示。

35这样新建一个“xgpio_example”,如下图所示。

2.5、下载调试

36design_1_wrapper_hw_platform0→Program FPGA,在弹出的对话框中选择默认,点击“program”,如下图所示;第一次下载可能会失败,第二次下载就成功了,这样就完成了bit文件的下载。

37axi_led_bsp_xgpio_example_1→Run As→1 Launch on Hardware(System Debugger),

2.5、实验总结

38下面是实验测试结果的视频,可以看到4个led在闪烁。(由于视频上传不了,只有个图片)

2.6、备注及疑问

40注意这里的DDR3并不是和板子上的DDR3严格对应,而是参数最接近的型号,有时候实验不通的话,问题往往出现在这里,可以多试几个。

41第一次下载可能会失败,第二次下载就成功了,这样就完成了bit文件的下载。

2.7、参考资料

1. cource_s1_ALINX_ZYNQ(AX7010_AX7020)开发平台基础教程V1.09

2. https://blog.csdn.net/q416524389/article/details/83865266

3. https://blog.csdn.net/weixin_39813867/article/details/83512913

在ZYNQ-7000平台上利用PS点亮PL上的LED灯的更多相关文章

  1. 利用ps在光污染地图上寻找最近的观星地区

    城市灯光对于天文观测和天文摄影是有害的,进行这两类活动之前应提前规划地点,下面是笔者尝试的一种利用ps在光污染地图上进行规划的方法. 目前大部分的光污染地图都是基于WA 2015绘制的,可以结合VII ...

  2. 开发机器上利用vs2013调试远程IIS上的c#程序

    当远程IIS上的C#程序出现问题,怎么排错,一般我们通过看日志排查错误的方法,这种方法在程序异常日志都打印出来的情况下是可以解决的,但如果程序日志不详细,或者从日志看不出有用的内容的时候怎么排错? 本 ...

  3. [转帖]X86_64平台上利用qemu安装aarch64架构的虚拟机

    X86_64平台上利用qemu安装aarch64架构的虚拟机 https://blog.csdn.net/chenxiangneu/article/details/78955462 遇到原作者一样的问 ...

  4. Android平台下利用zxing实现二维码开发

    Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...

  5. Mac上利用Aria2加速百度网盘下载

    百度网盘下载东西的速度那叫一个慢,特别是大文件,看着所需时间几个小时以上,让人很不舒服,本文记录自己在mac上利用工具Aria2加速的教程,windows下思路也是一样! 科普(可以不看) 这里顺带科 ...

  6. (转载)Android平台下利用zxing实现二维码开发

    Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...

  7. 在阿里云托管kubernetes上利用 cert-manager 自动签发 TLS 证书[无坑版]

    前言 排错的过程是痛苦的也是有趣的. 运维乃至IT,排错能力是拉开人与人之间的重要差距. 本篇会记录我的排错之旅. 由来 现如今我司所有业务都运行在阿里云托管kubernetes环境上,因为前端需要对 ...

  8. window上利用pip安装pandas

    官网推荐的是直接使用Anoconda,它集成了pandas,可以直接使用.安装挺简单的,有windows下的安装包.如果不想安装庞大的Anoconda,那就一步一步用pip来安装pandas.下面我主 ...

  9. 利用Mahout实现在Hadoop上运行K-Means算法

    利用Mahout实现在Hadoop上运行K-Means算法 一.介绍Mahout Mahout是Apache下的开源机器学习软件包,目前实现的机器学习算法主要包含有协同过滤/推荐引擎,聚类和分类三个部 ...

随机推荐

  1. c++基础知识篇:指针

    从面试的反馈来看,这部分可以问的很难. 1.指针与引用的区别 指针是一个变量,用来存放地址的变量.引用是原来变量的存储空间的别名.   2.指针作为参数的要点 a.需要进行指针的合法性检验,防止空指针 ...

  2. NFS4 挂载同主机多个目录

    写在前面的话 事情是酱婶儿的,前两天实在是帮他们查日志查的心里交瘁了,而且有些时候下班了,也就不想再接到这样的需求,于是想基于 Nginx 做一个文件下载中心,在这个文件下载中心里面存有各个服务的日志 ...

  3. Thread Group(线程组)

    线程组,可以理解用户池,用来产生线程(用户),每一个线程代表一个用户,在使用JMeter进行性能测试过程中,经常需要模拟多个用户进行测试,可以通过设置线程数代表多少个用户,通常一个线程组就代表一个测试 ...

  4. python merge、concat合并数据集

    数据规整化:合并.清理.过滤 pandas和python标准库提供了一整套高级.灵活的.高效的核心函数和算法将数据规整化为你想要的形式! 本篇博客主要介绍: 合并数据集:.merge()..conca ...

  5. YARN 的调度选项

    YARN 中有三种调度器: 1. FIFO 调度器 (FIFO Scheduler) 应用在一个队列中,按照提交的顺序运行应用. 缺点:小作业如果在大作业后面提交,将会一直等到大作业结束才运行. 2. ...

  6. Druid连接池默认配置和坑

    一.公司默认配置 ds_0: !!com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.jdbc.Driver url: ...

  7. cenos安装memcache

    注意事项: 1 安装时注意权限问题 sudo 2 需先启动memcache服务 php才能测试   Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度 ...

  8. python基础之条件判断

    一.简单的if语句 举例 if money > 10000: print '我们去旅游吧' #左侧一定要有缩进,一般4个空格 print '请输入学生的考试成绩' score = print ( ...

  9. SpringMVC异常的使用

    1.创建一个异常类,需要extend RuntimeException,继承父类中所有的方法 2.局部异常,仅能处理这个Controller中的异常 在Controller中添加异常处理方法 @Exc ...

  10. JavaWeb学习笔记(十四)—— 使用JDBC处理MySQL大数据

    一.什么是大数据 所谓大数据,就是大的字节数据,或大的字符数据.大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 ...