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

网友投稿 360 2022-11-04

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

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

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

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

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

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

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

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

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

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

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缓冲器,一个是读缓冲,一个是写缓冲。

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

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

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

图1

图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

图5

图6

图7

图8

图 9

(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. 读写逻辑示意

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IFS的概念
下一篇:java垃圾回收原理之GC算法基础
相关文章

 发表评论

暂时没有评论,来抢沙发吧~