当前位置:   article > 正文

ZYNQ7000学习 (五):PS与PL协同设计实现GPIO_z7 ps pl联合开发

z7 ps pl联合开发

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

在这里插入图片描述

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/856891
推荐阅读
相关标签
  

闽ICP备14008679号