视频五:PS与PL协同设计实现GPIO

ZYNQ7的逻辑部分PL和处理器PS部分采集协同工作才能体现出其强大。这个例子只是简单的是一个实现:将FPGA当做一个PS处理器的外设,通过寄存器地址映射到PS的寻址空间。在处理器的使用C程序访问这些寄存器,来实现软件和逻辑结合的协同设计的效果。具体步骤就是先在VIVADO配置ZYNQ处理器吗,做好FPGA的外设,互联完成之后生产BIT流文件下载到板子。在SDK环境下开发好软件之后,进行在线调试运行。视频展示VIVADO的操作步骤,以及SDK的下对代码进行分析…

前面基本设置雷同:

1.:增加ip核:

:create block
designed→增加ip核:(zynq,两个gpio核第一个为输入sw,第二个为led输出;)

(增加ip快捷键Ctrl+I)

1.1增加zynq核心

→填充zynq的默认设置

1.2剪裁:ps留uart1;AXI总线;pl部分的一个时钟

2.增加两个GPIO

(GPIO:在嵌入式处理器上通常提供的一种通用可编程I/O端口;)

(修改名字{大写}SW,LED):

→把两个gpio(引出角):

→分别双击SW和LED设置输入(SW)8位,输出(LED)8位;

→两个分别引出角:(ctrl+t)

再去分别改端口:改成小写sw和led

(第一个视频是教你连线)以下部分为快捷方式:

{把里卖的打勾勾(没有截到图):}

视频一的方法:

需要自己添加的有Reset ;AXI总线(可以最多设置为16路对16路);

备注一下说明:

(第一个视频是早期版本2013,在对led
和sw端口进行命名的时候在15版本出现了不能重复命名的情况:

3.生成hdl 文件:

顶层文件:修改(版本问题,所以要修改才能完成)

修改最好是在xdc(xilinx designe company)里卖修改:

改为:

set_property PACKAGE_PIN T22 [get_ports {led_tri_o[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[0]}]

set_property PACKAGE_PIN T21 [get_ports {led_tri_o[1]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[1]}]

set_property PACKAGE_PIN U22 [get_ports {led_tri_o[2]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[2]}]

set_property PACKAGE_PIN U21 [get_ports {led_tri_o[3]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[3]}]

set_property PACKAGE_PIN V22 [get_ports {led_tri_o[4]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[4]}]

set_property PACKAGE_PIN W22 [get_ports {led_tri_o[5]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[5]}]

set_property PACKAGE_PIN U19 [get_ports {led_tri_o[6]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[6]}]

set_property PACKAGE_PIN U14 [get_ports {led_tri_o[7]}]

set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[7]}]

set_property PACKAGE_PIN F22 [get_ports {sw_tri_i[0]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[0]}]

set_property PACKAGE_PIN G22 [get_ports {sw_tri_i[1]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[1]}]

set_property PACKAGE_PIN H22 [get_ports {sw_tri_i[2]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[2]}]

set_property PACKAGE_PIN F21 [get_ports {sw_tri_i[3]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[3]}]

set_property PACKAGE_PIN H19 [get_ports {sw_tri_i[4]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[4]}]

set_property PACKAGE_PIN H18 [get_ports {sw_tri_i[5]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[5]}]

set_property PACKAGE_PIN H17 [get_ports {sw_tri_i[6]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[6]}]

set_property PACKAGE_PIN M15 [get_ports {sw_tri_i[7]}]

set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[7]}]

4.创建比特流文件;

0

5.导入sdk:

(步骤和之前一样)

在testeriph.c里面只保留gpio的输入和输出:


6.创建一个main程序:

下载结果:

ZYNQ7000学习 (五):PS与PL协同设计实现GPIO相关推荐

  1. PS与PL协同设计实现GPIO

    前面的和上一结差不多,新建工程,新建IP核(ARM_CORE),再放置ZYNQ的处理器,Run Block后就双击图标进行配置和剪裁 Peripheral 里面只要UART,MIO里的APP里的Tim ...

  2. io vivado 怎么查看ps_vivado学习之PS与PL通信

    刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎.直到看了这篇博文: http://xilinx.eetop.cn/viewnews-2547  这个 ...

  3. vivado学习之PS与PL通信

    刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎.直到看了这篇博文: http://xilinx.eetop.cn/viewnews-2547  这个 ...

  4. day39 python 学习 数据库学习 五个约束,数据库设计(一对一,一对多等等)

    删除重复数据:  注意数据库不能又查又删 *******#删除作者为重复数据并保留ID最大的是数据 delete from ren where author in (select * from(sel ...

  5. P2中ZYNQ的PS控制PL端LED

    第一个ZYNQ的实验,用于熟悉开发环境和板卡,通过GPIO控制LED,由于P2在ps端没有LED,所以需要通过axi总线控制PL端LED. 1.参考设计 参考的是黑金的<PL 端和 PS 端的协 ...

  6. VIVADO+ZYNQ7000入门三,PS与PL的联合开发

    索引 一.目标 二.预备知识 三.工程实例 四.SDK开发 五.下载运行 一.目标 熟悉PS的底层硬件控制.熟悉PS与PL联合开发. 二.预备知识 我们从Xilinx的官方文档UG585的第二章可以了 ...

  7. Zynq-7000 PS重配置PL

    环境搭建 Zynq-7000的结构分为PS(ARM)和PL(FPGA),当然也可以理解为PL作为一种外设挂载在PS端.在正常的系统加载顺序(FALSH \ SD -> FSBL -> PL ...

  8. Linux下pl与ps端的通信,Overlay设计方法篇之第四章PS与PL的交互

    Overlay由两个主要部分组成--bitstream文件和hwh(Hardware Handoff)文件.可以说Overlay设计其实就是一种PL与PS的交互设计.通常PL设计针对特定任务进行高度优 ...

  9. 基于SDSoC的软硬件协同设计

    文章目录 基于SDSoC的软硬件协同设计 一 基于SDSoC的软硬件协同设计流程简介 二 SDSoC使用 三 SDS指令简介 SDS指令简介 SDS Pragma组合 四 搭建SDSoC Platfo ...

最新文章

  1. html景图片怎么设置百分比,8个风光照片拍摄技巧
  2. 【重磅】Tensorflow2.0实现29种深度强化学习算法大汇总
  3. Linux下利用backtrace追踪函数调用堆栈以及定位段错误【转】
  4. php正则表达式正向预查,javascript正则表达式-----正向预查
  5. 大数据WEB阶段Spring框架 AOP面向切面编程(二)
  6. LeetCode 82 删除排序链表中的重复元素 II python
  7. 现代软件工程讲义 3 代码规范与代码复审
  8. UE4 远程调用函数
  9. JAVA入门级教学之(逻辑(布尔)运算符)
  10. 【STM32】【STM32CubeMX】STM32CubeMX的使用之三:UART串口通信
  11. python整数运算_深入 Python (6) 整数对象的数学运算
  12. 摩托罗拉MT788刷机
  13. 用curl自动登录HTTPS站点
  14. bin文件如何编辑_每日学习:Linux文件与目录管理常用命令解析
  15. VALSE学习(十):图像去模糊-image deblurring
  16. 使用devcpp遇到的常见错误解决方法
  17. 日语学习的实用网址大全!
  18. [转]Cookie详解
  19. 新一代信息技术与互联网的资源观!
  20. 迪士尼的漫威宇宙第四阶段计划出炉

热门文章

  1. 10个超酷的手机应用程序
  2. Python中的async with用法
  3. (蓝桥杯第一课)暴力破解与实用性优先
  4. 如何对一个产品编写完整的用户故事?
  5. 图像学习之如何理解方向梯度直方图(Histogram Of Gradient)
  6. 2008文件服务器迁移到2012,将文件服务器从2003迁移至Windows Server 2008 R2
  7. 论文笔记:Extendability for Threshold Ring Signatures
  8. 对数组中的对象按照年龄大小进行从大到小排序
  9. linux学习文档(一)
  10. Java实现猜丁壳小游戏(猜拳)