0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

Hx 作者:工程师陈翠 2018-06-29 09:33 次阅读

本文包含两部分内容:1)AXI接口简介;2)AXI IP核的创建流程及读写逻辑分析。

1 AXI简介(本部分内容参考官网资料翻译)

自定义IP核是Zynq学习与开发中的难点,AXI IP核又是十分常用的自定义IP核,因此掌握AXI IP核的创建流程及通信机制显得尤为重要。要搞懂AXI IP核,就必须先了解AXI接口。先介绍如下:

1) AXI(Advanced eXtensible Interface)协议主要描述了主设备(Master)和从设备(Slave)之间的数据传输方式,主设备和从设备之间通过握手信号建立连接。当主设备的数据准备好时,会发出和维持VALID信号,表示数据有效;当从设备准备好接收数据时,会发出READY信号。数据只有在这两个信号都有效时才开始传输。

2) AXI协议(又称AXI4.0),包括3种接口标准:AXI4、AXI-Stream、AXI-lite。

AXI4:适用于要求数据高速传输的场合。

AXI-Stream:如FIFO,数据传输不需要地址,而是主从设备间直接进行数据的读写,主要用于高速数据传输的场合,如视频、高速AD等。

AXI-lite:可用于单个数据传输,主要用于访问一些低速外设。

3) AXI接口具有5个独立通道:WriteAddress通道、Write Data通道、Write Response通道、Read Address通道、Read Address通道、Read Data通道。

4) 读/写通道并行地进行数据交互,明显提高了数据吞吐量,对写数据,从设备会返回确认信号,这样可以保证写数据通道的安全,读/写模型分别如图1-1、图1-2。

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

读模型:主设备发送读地址占用信号给从设备→从设备将数据写入主设备,实现读操作。

写模型:主设备发送写地址占用信号给从设备→主设备将数据写入从设备→从设备回复确认收到信号,实现写操作。

5) AXI协议严格来讲是一个点对点的主/从接口协议,当多个外设需要互相交互数据时,我们需要加入一个AXI Interconnect模块,也就是AXI互联矩阵,AXI Interconnect的作用是将一个或多个AXI主设备连接到一个或多个AXI 从设备。

6) AXI Interconnect IP核最多支持16个主设备和16个从设备,如果需要更多的接口可以在设计中加入多个IP核。

7) ZYNQ中的AXI接口包含三个类型,共9个,主要用于PS与PL的互联。

(1)AXI_HP接口(PL模块作为主设备)

包括4个,主要用于PL访问PS上的存储器。每个接口都有两个FIFO缓冲器,一个是读缓冲,一个是写缓冲。

【实例:设计视频处理时,高清的图像可由FPGA直接完成采集、预处理,然后通过AXI_HP接口将数据高速传输至DDR中,供APU(加速处理器)完成进一步的图像处理】

(2)AXI_ACP接口(PS端是从设备端)

只有1个,又叫加速器一致性端口,适合做专用指令加速器模块接口。PL端可直接从PS部分的Cache中拿到CPU的计算结果,同时也可以第一时间将逻辑加速运算的结果送至Cache中,延时很小。

(3)AXI_GP接口(PS端是从设备端)

通用AXI接口,总共有4个。可用于控制电机运转,获取传感器信号等逻辑模块的连接接口。

2 AXI IP核的创建流程及读写逻辑小结

(1)AXI IP核的创建流程(以AXI PWM IP为例)

环境:win 7 +64(i5,4G) Vivado 2014.4+Xilinx SDK2014.4

开发板:zedboard version d xc7z020clg484-1

1) 新建工程→Tools → Create and PackageIP → Next → Create a new AXI4 peripheral → 修改name: axi_pwm(如图1)→ Next → 为用户IP核添加AXI4总线接口的支持(如图2)→ Add IP to the repository →Finish

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

图1

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

图2

2) 在Flow Navigator中选择 IP Catalog,打开IP管理器,看到刚才添加的axi_pwm_v1.0(如图3)→ 右击axi_pwm_v1.0 → Edit in IPPackager选项,单击OK,此时系统会自动打开另一个Vivado IDE来对用户IP核进行编辑,完成IP核的封装。

3) 在新打开的VivadoIDE中,在source窗口中双击打开axi_pwm_v1_0.v顶层文件,添加用户自定义端口pwm_out(如图4),并对端口进行例化(如图5)。

图4

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

图5

4) 双击打开axi_pwm_v1_0_S00_AXI.v实例化文件,添加端口声明(如图6),添加用户信号(如图7),添加用户逻辑(如图8)。

图6

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

图7

AXI接口简介_AXI IP核的创建流程及读写逻辑分析

图8

5) 切换到Package IP-axi_pwm窗口,点击CustomizationParameters,单击如图9所示链接,对刚才修改过的顶层文件进行更新。

图 9

6) 点击Review and Package →Re-Package IP,至此,AXI PWM IP核设计完成。

(2)读写逻辑小结

a. 输入信号:

Input

Name

Remark

S_AXI_ACLK

全局时钟信号

S_AXI_ARESETN

全局复位信号

S_AXI_AWADDR

写地址信号

主机发送,从机接收

S_AXI_AWPROT

写通道保护信号

这个信号标志着传输的特权与安全

S_AXI_AWVALID

写地址有效信号

S_AXI_WDATA

写数据信号

主机发送,从机接收

S_AXI_WSTRB

写选通信号

这个信号表示写字节通道保持有效,在每8位的写数据总线上有1位被选通

S_AXI_WVALID

写有效信号

S_AXI_BREADY

写答复准备好信号

这个信号表示主机可以接收到写答复信号

S_AXI_ARADDR

读地址信号

S_AXI_ARPROT

读保护信号

S_AXI_ARVALID

读地址有效信号

S_AXI_RREADY

读准备好信号

表示主机可以接收从机发送的数据并且给予答复

b. 输出信号:

Output

Name

Remark

S_AXI_AWREADY

写地址准备好信号

表示主机可以控制写数据总线实现写功能

S_AXI_WREADY

写准备好信号

表示从机可以接收主机发送的数据

S_AXI_BRESP

写答复信号

标志从机是否接收到主机发送的数据

S_AXI_BVALID

写答复有效信号

表示从机接收到主机发送的数据

S_AXI_ARREADY

读地址准备好信号

表示主机可以读取数据

S_AXI_RDATA

读数据信号

从机发送,主机接收,即写入主机

S_AXI_RRESP

读答复信号

表示读数据传输的状态

S_AXI_RVALID

读有效信号

表示有效的数据已传输

c. 4个从机寄存器(在创建AXI IP时,可以自己设定个数,如图2)

slv_reg0; slv_reg1; slv_reg2; slv_reg3;

d. 读写逻辑示意

写://写准备好信号——写准备好地址总线被占用——写地址通道有效——写地址选择——写数据传输——写应答回复

读://读地址准备好——读总线被占用——读地址有效信号产生——读数据总线有效——读数据有效——读地址有效——主机寄存器读取数据

注:写的比较片面,期待大家的意见及补充。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1399

    浏览量

    148262
  • AXI
    AXI
    +关注

    关注

    1

    文章

    126

    浏览量

    16269
收藏 人收藏

    评论

    相关推荐

    AXI VIP设计示例 AXI接口传输分析

    赛灵思 AXI Verification IP (AXI VIP) 是支持用户对 AXI4 和 AXI4-Lite 进行仿真的
    发表于 07-08 09:24 1320次阅读

    创建AXI Sniffer IP以在Vivado IP Integrator中使用教程

    在某些情况下,通过嗅探 AXI 接口分析其中正在发生的传输事务是很有用的。在本文中,我将为大家演示如何创建基本 AXI4-Lite Sni
    发表于 07-08 09:35 816次阅读

    使用AXI-Full接口IP进行DDR的读写测试

    首先对本次工程进行简要说明:本次工程使用AXI-Full接口IP进行DDR的读写测试。在我们的DDR读写
    的头像 发表于 07-18 09:53 4024次阅读
    使用<b class='flag-5'>AXI</b>-Full<b class='flag-5'>接口</b>的<b class='flag-5'>IP</b>进行DDR的<b class='flag-5'>读写</b>测试

    【Artix-7 50T FPGA试用体验】基于7A50T FPGA开发套件的工业通信管理机设计(三)AXI接口

    是Vivado中十分常用的自定义IP,使用AXI接口IP,能够方便的连接到软(MicroB
    发表于 12-16 11:00

    有人知道为什么MIG IP中的AXI协议。为什么没有AXI_WID这个信号呢?

    有人知道为什么MIG IP中的AXI协议。为什么没有AXI_WID这个信号呢。
    发表于 04-13 09:22

    PCIE项目中AXI4 IP例化详解

    的fifo接口),用户只要操作fifo接口,无需关心PCIE的内部驱动。为了便于读者更加明白,可以深入了解PCIE,我们将会制作一个PCIE的连载系列。今天,首先说一下自定义AXI4的IP
    发表于 12-13 17:10

    如何使用AXI-PCIe桥接IP与我的逻辑进行通信

    嗨,我正在使用AXI-PCIe桥接IP与我的逻辑进行通信。我的poroject要求有128K内存。我不知道如何配置AXI BAR地址来扩展内存。我阅读了
    发表于 06-19 10:14

    如何使用Vivado功能创建AXI外设

    了解如何使用Vivado的创建和封装IP功能创建可添加自定义逻辑AXI外设,以创建自定义
    的头像 发表于 11-29 06:48 6839次阅读
    如何使用Vivado功能<b class='flag-5'>创建</b><b class='flag-5'>AXI</b>外设

    如何创建基本AXI4-Lite Sniffer IP以对特定地址上正在发生的读写传输事务进行计数

    这将创建一个附带 BD 的 Vivado 工程,此 BD 包含 AXI VIP (设置为 AXI4-Lite 主接口) 和 AXI GPIO
    的头像 发表于 04-30 16:24 2098次阅读
    如何<b class='flag-5'>创建</b>基本<b class='flag-5'>AXI</b>4-Lite Sniffer <b class='flag-5'>IP</b>以对特定地址上正在发生的<b class='flag-5'>读写</b>传输事务进行计数

    FPGA程序设计:如何封装AXI_SLAVE接口IP

    M_AXI接口对数据进行读取操作,此时设计一个基于AXI-Slave接口IP进行数据传输操作就非常的方便。 封装的形式并不复杂,只是略微繁
    的头像 发表于 10-30 12:32 3997次阅读
    FPGA程序设计:如何封装<b class='flag-5'>AXI</b>_SLAVE<b class='flag-5'>接口</b><b class='flag-5'>IP</b>

    使用AXI4-Lite将Vitis HLS创建IP连接到PS

    AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介中,使用 C 语言在 HLS 中创建包含 AXI4-Lit
    发表于 08-02 09:43 621次阅读
    使用<b class='flag-5'>AXI</b>4-Lite将Vitis HLS<b class='flag-5'>创建</b>的<b class='flag-5'>IP</b>连接到PS

    自定义AXI-Lite接口IP及源码分析

    在 Vivado 中自定义 AXI4-Lite 接口IP,实现一个简单的 LED 控制功能,并将其挂载到 AXI Interconnect 总线互联结构上,通过 ZYNQ 主机控制
    发表于 06-25 16:31 2031次阅读
    自定义<b class='flag-5'>AXI</b>-Lite<b class='flag-5'>接口</b>的<b class='flag-5'>IP</b>及源码<b class='flag-5'>分析</b>

    基于AXI总线的DDR3读写测试

    本文开源一个FPGA项目:基于AXI总线的DDR3读写。之前的一篇文章介绍了DDR3简单用户接口读写方式:《DDR3读写测试》,如果在某些
    的头像 发表于 09-01 16:20 2220次阅读
    基于<b class='flag-5'>AXI</b>总线的DDR3<b class='flag-5'>读写</b>测试

    LogiCORE JTAG至AXI Master IP简介

    中的一个参数来选择。 集成设计环境(IDE)。AXI数据总线的宽度可定制。该IP可通过AXI4互连驱动AXI4-Lite或AXI4内存映射从
    的头像 发表于 10-16 10:12 462次阅读
    LogiCORE JTAG至<b class='flag-5'>AXI</b> Master <b class='flag-5'>IP</b>核<b class='flag-5'>简介</b>

    LogiCORE IP AXI UART 16550内核简介

    LogiCORE IP AXI 通用异步接收发送器 (UART) 16550 连接到高级微控制器总线架构 (AMBA) AXI,为异步串行数据传输提供控制器接口。该软
    的头像 发表于 10-16 11:02 2094次阅读
    LogiCORE <b class='flag-5'>IP</b> <b class='flag-5'>AXI</b> UART 16550内核<b class='flag-5'>简介</b>