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

该博客详细介绍了如何在ZYNQ7平台上通过VIVADO和SDK进行PS-PL协同设计,实现GPIO功能。首先在VIVADO中配置ZYNQ处理器,添加GPIO IP核,连接处理器与FPGA逻辑。然后,通过修改xdc文件配置端口,并生成BIT流文件。接着,在SDK中编写C程序访问GPIO寄存器,最后下载程序并进行在线调试。此过程展示了硬件与软件的集成,以及FPGA作为处理器外设的交互方式。
摘要由CSDN通过智能技术生成

视频五: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程序:

在这里插入图片描述

下载结果:
在这里插入图片描述
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值