一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第1张

这一节的目的是使用XPS为ARM PS?处理系统?添加额外的IP。从IP Catalog 标签添加GPIO,并与ZedBoard板子上的8个LED灯相连。当系统建立完后,产生bitstream,并对外设进行测试

硬件平台:Digilent ZedBoard

开发环境:Windows XP 32 bit

软件:?XPS 14.2 +SDK 14.2

一、硬件配置

1、创建硬件工程

启动XPS,创建Lab3工程。因为PS系统和FPGA连接是采用AXI接口,因而选择内部互联类型(Interconnect Type) 为AXI。

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第2张

选择设计平台为Zynq ZC702

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第3张

到外设配置界面,系统会默认有GPIO_SW 和 LEDs_4bits 这两个外设,我们不需要,remove之

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第4张

2、添加AXI GPIO外设

工程建立后,在IP Catalog中,找到General Purpose IO,找到 AXI GPIO,双击添加到系统中。

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第5张

修改元件实例化名称为axi_LDs,这个名称就是将要实例化连接到PS的元件。将长度改为8,其他默认。

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第6张

 

点开Bus Interfaces标签,可以看到系统汇总现在有PS(这里是processing_systems7_0) 、添加的外设axi_LDs 和AXI内部互联总线axi_interconnet_1。可以看到对于?axi_interconnet_1来说,PS是AXI主设备,外设是AXI从设备。

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第7张

在Port标签,将IO_IF中的GPIO_IO_O(output)设置为External Ports,将Port名称改为LD。LD就是顶层对外的引脚名称

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第8张

3、设定引脚约束

在project标签中,找到system.ucf约束文件,

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第9张

将其内容改为

NET LD[0] LOC = T22 | IOSTANDARD=LVCMOS33; # "LD0"

NET LD[1] LOC = T21 | IOSTANDARD=LVCMOS33; # "LD1"

NET LD[2] LOC = U22 | IOSTANDARD=LVCMOS33; # "LD2"

NET LD[3] LOC = U21 | IOSTANDARD=LVCMOS33; # "LD3"

NET LD[4] LOC = V22 | IOSTANDARD=LVCMOS33; # "LD4"

NET LD[5] LOC = W22 | IOSTANDARD=LVCMOS33; # "LD5"

NET LD[6] LOC = U19 | IOSTANDARD=LVCMOS33; # "LD6"

NET LD[7] LOC = U14 | IOSTANDARD=LVCMOS33; # "LD7"

4、点击Generate BitStream,生成bitstream

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第10张

如果没有错题,控制台会提示信息如下,表明成功生成了FPGA的配置bitstream文件

"*********************************************"

"Running Bitgen.."

"*********************************************"

cd implementaTIon & bitgen -w -f bitgen.ut system & cd ..

Release 14.2 - Bitgen P.28xd (nt)

Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved.

PMSPEC -- Overriding Xilinx file

with local file

Loading device for applicaTIon Rf_Device from file '7z020.nph' in environment

C:Xilinx14.2ISE_DSISE;C:Xilinx14.2ISE_DSEDK.

"system" is an NCD, version 3.2, device xc7z020, package clg484, speed -1

Opened constraints file system.pcf.



Mon Oct 08 09:13:57 2012



Running DRC.

DRC detected 0 errors and 0 warnings.

CreaTIng bit map...

Saving bit stream in "system.bit".

Bitstream generaTIon is complete.

Done!

5、将硬件配置导入到SDK,启动SDK。这里需要将bitstream和BMM文件同时包括到SDK中。

 

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第11张

 

二、创建软件程序

为了方便项目管理,在SDK目录下建立sw文件夹,作为workspace

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第12张

?使用新建工程向导。注意,这里使用工程模板为Memory Tests。个人经验是使用Hello World会出现XMD错误,原因不明白,可能是工程的配置不同。

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第13张

新建工程后,会有几个存储空间测试的文件,我们不需要,删掉。

 

一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,一步一步学ZedBoard Zynq(三):使用自带外设IP让ARM PS访问FPGA,第14张

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2580159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存