ZYNQ7000学习 (五):PS与PL协同设计实现GPIO
视频五: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相关推荐
- PS与PL协同设计实现GPIO
前面的和上一结差不多,新建工程,新建IP核(ARM_CORE),再放置ZYNQ的处理器,Run Block后就双击图标进行配置和剪裁 Peripheral 里面只要UART,MIO里的APP里的Tim ...
- io vivado 怎么查看ps_vivado学习之PS与PL通信
刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎.直到看了这篇博文: http://xilinx.eetop.cn/viewnews-2547 这个 ...
- vivado学习之PS与PL通信
刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎.直到看了这篇博文: http://xilinx.eetop.cn/viewnews-2547 这个 ...
- day39 python 学习 数据库学习 五个约束,数据库设计(一对一,一对多等等)
删除重复数据: 注意数据库不能又查又删 *******#删除作者为重复数据并保留ID最大的是数据 delete from ren where author in (select * from(sel ...
- P2中ZYNQ的PS控制PL端LED
第一个ZYNQ的实验,用于熟悉开发环境和板卡,通过GPIO控制LED,由于P2在ps端没有LED,所以需要通过axi总线控制PL端LED. 1.参考设计 参考的是黑金的<PL 端和 PS 端的协 ...
- VIVADO+ZYNQ7000入门三,PS与PL的联合开发
索引 一.目标 二.预备知识 三.工程实例 四.SDK开发 五.下载运行 一.目标 熟悉PS的底层硬件控制.熟悉PS与PL联合开发. 二.预备知识 我们从Xilinx的官方文档UG585的第二章可以了 ...
- Zynq-7000 PS重配置PL
环境搭建 Zynq-7000的结构分为PS(ARM)和PL(FPGA),当然也可以理解为PL作为一种外设挂载在PS端.在正常的系统加载顺序(FALSH \ SD -> FSBL -> PL ...
- Linux下pl与ps端的通信,Overlay设计方法篇之第四章PS与PL的交互
Overlay由两个主要部分组成--bitstream文件和hwh(Hardware Handoff)文件.可以说Overlay设计其实就是一种PL与PS的交互设计.通常PL设计针对特定任务进行高度优 ...
- 基于SDSoC的软硬件协同设计
文章目录 基于SDSoC的软硬件协同设计 一 基于SDSoC的软硬件协同设计流程简介 二 SDSoC使用 三 SDS指令简介 SDS指令简介 SDS Pragma组合 四 搭建SDSoC Platfo ...
最新文章
- html景图片怎么设置百分比,8个风光照片拍摄技巧
- 【重磅】Tensorflow2.0实现29种深度强化学习算法大汇总
- Linux下利用backtrace追踪函数调用堆栈以及定位段错误【转】
- php正则表达式正向预查,javascript正则表达式-----正向预查
- 大数据WEB阶段Spring框架 AOP面向切面编程(二)
- LeetCode 82 删除排序链表中的重复元素 II python
- 现代软件工程讲义 3 代码规范与代码复审
- UE4 远程调用函数
- JAVA入门级教学之(逻辑(布尔)运算符)
- 【STM32】【STM32CubeMX】STM32CubeMX的使用之三:UART串口通信
- python整数运算_深入 Python (6) 整数对象的数学运算
- 摩托罗拉MT788刷机
- 用curl自动登录HTTPS站点
- bin文件如何编辑_每日学习:Linux文件与目录管理常用命令解析
- VALSE学习(十):图像去模糊-image deblurring
- 使用devcpp遇到的常见错误解决方法
- 日语学习的实用网址大全!
- [转]Cookie详解
- 新一代信息技术与互联网的资源观!
- 迪士尼的漫威宇宙第四阶段计划出炉