精华内容
下载资源
问答
  • AXI4总线协议

    千次阅读 2018-08-16 11:31:43
    新一代FPGA中采用的基本都是AXI4总线协议,例如与slaver侧的DMA或DDR等通信。这篇讲AXI4的博文感觉讲的很清楚。 0.绪论   AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI...

    转至https://blog.csdn.net/next_fse/article/details/73692959

    新一代FPGA中采用的基本都是AXI4总线协议,例如与slaver侧的DMA或DDR等通信。这篇讲AXI4的博文感觉讲的很清楚。

    0.绪论

     

    AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream

    AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。

    1.简介

    1.1 关于AXI协议

    AMBA AXI协议支持支持高性能、高频率系统设计。

    • 适合高带宽低延时设计
    • 无需复杂的桥就能实现高频操作
    • 能满足大部分器件的接口要求
    • 适合高初始延时的存储控制器
    • 提供互联架构的灵活性与独立性
    • 向下兼容已有的AHB和APB接口

    关键特点:

    • 分离的地址/控制、数据相位
    • 使用字节线来支持非对齐的数据传输
    • 使用基于burst的传输,只需传输首地址
    • 分离的读、写数据通道,能提供低功耗DMA
    • 支持多种寻址方式
    • 支持乱序传输
    • 允许容易的添加寄存器级来进行时序收敛

    1.2 AXI架构

    AXI协议是基于burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。

    地址通道携带控制消息用于描述被传输的数据属性,数据传输使用写通道来实现“主”到“从”的传输,“从”使用写响应通道来完成一次写传输;读通道用来实现数据从“从”到“主”的传输。

     

     

    图 1-1 读架构

    图 1-2 写架构

    AXI是基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。

    读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。

    读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024bit)和指示读传输完成的读响应信号。

    写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,“主”无需等待“从”对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16…1024bit)和字节线(用于指示8bit 数据信号的有效性)。

    写响应通道:“从”使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。

    图 1-3 接口与互联

    AXI协议提供单一的接口定义,能用在下述三种接口之间:master/interconnect、slave/interconnect、master/slave。

    可以使用以下几种典型的系统拓扑架构:

    • 共享地址与数据总线
    • 共享地址总线,多数据总线
    • multilayer多层,多地址总线,多数据总线

    在大多数系统中,地址通道的带宽要求没有数据通道高,因此可以使用共享地址总线,多数据总线结构来对系统性能和互联复杂度进行平衡。

    寄存器片(Register Slices):

    每个AXI通道使用单一方向传输信息,并且各个通道直接没有任何固定关系。因此可以可以在任何通道任何点插入寄存器片,当然这会导致额外的周期延迟。

    使用寄存器片可以实现周期延迟(cycles of latency)和最大操作频率的折中;使用寄存器片可以分割低速外设的长路径。

    2.信号描述

    表 2-1 全局信号

    信号名 描述
    ACLK   时钟源   全局时钟信号
    ARESETn   复位源 全局复位信号,低有效

    表 2-2 写地址通道信号

    信号名     源     描述      
    AWID 主机 写地址ID,用来标志一组写信号
    AWADDR 主机 写地址,给出一次写突发传输的写地址
    AWLEN 主机 突发长度,给出突发传输的次数
    AWSIZE 主机 突发大小,给出每次突发传输的字节数
    AWBURST 主机 突发类型
    AWLOCK 主机 总线锁信号,可提供操作的原子性
    AWCACHE 主机 内存类型,表明一次传输是怎样通过系统的
    AWPROT 主机 保护类型,表明一次传输的特权级及安全等级
    AWQOS 主机 质量服务QoS
    AWREGION 主机 区域标志,能实现单一物理接口对应的多个逻辑接口
    AWUSER 主机 用户自定义信号
    AWVALID 主机 有效信号,表明此通道的地址控制信号有效
    AWREADY 从机 表明“从”可以接收地址和对应的控制信号

    表 2-3 写数据通道信号

    信号名     源     描述      
    WID 主机 一次写传输的ID tag
    WDATA 主机 写数据
    WSTRB 主机 写数据有效的字节线,用来表明哪8bits数据是有效的
    WLAST 主机 表明此次传输是最后一个突发传输
    WUSER 主机 用户自定义信号
    WVALID 主机 写有效,表明此次写有效
    WREADY 从机 表明从机可以接收写数据

    表 2-4 写响应通道信号

    信号名     源     描述      
    BID 从机 写响应ID tag
    BRESP 从机 写响应,表明写传输的状态
    BUSER 从机 用户自定义
    BVALID 从机 写响应有效
    BREADY 主机 表明主机能够接收写响应

    表 2-5 读地址通道信号

    信号名     源     描述      
    ARID 主机 读地址ID,用来标志一组写信号
    ARADDR 主机 读地址,给出一次写突发传输的读地址
    ARLEN 主机 突发长度,给出突发传输的次数
    ARSIZE 主机 突发大小,给出每次突发传输的字节数
    ARBURST 主机 突发类型
    ARLOCK 主机 总线锁信号,可提供操作的原子性
    ARCACHE 主机 内存类型,表明一次传输是怎样通过系统的
    ARPROT 主机 保护类型,表明一次传输的特权级及安全等级
    ARQOS 主机 质量服务QoS
    ARREGION 主机 区域标志,能实现单一物理接口对应的多个逻辑接口
    ARUSER 主机 用户自定义信号
    ARVALID 主机 有效信号,表明此通道的地址控制信号有效
    ARREADY 从机 表明“从”可以接收地址和对应的控制信号
     

     表 2-6 读数据通道信号

    信号名     源     描述      
    RID 从机 读ID tag
    RDATA 从机 读数据
    RRESP 从机 读响应,表明读传输的状态
    RLAST 从机 表明读突发的最后一次传输
    RUSER 从机 用户自定义
    RVALID 从机 表明此通道信号有效
    RREADY 主机 表明主机能够接收读数据和响应信息

    表 2-7 低功耗接口信号

    信号名     源     描述    
    CSYSREQ 时钟控制器 系统退出低功耗请求,此信号从“时钟控制器”到“外设”
    CSYSACK 外设 退出低功耗状态确认
    CACTIVE 外设 外设请求时钟有效

    3.信号接口要求

    3.1时钟复位

    时钟

    每个AXI组件使用一个时钟信号ACLK,所有输入信号在ACLK上升沿采样,所有输出信号必须在ACLK上升沿后发生。

    复位

    AXI使用一个低电平有效的复位信号ARESETn,复位信号可以异步断言,但必须和时钟上升沿同步去断言。

    复位期间对接口有如下要求:①主机接口必须驱动ARVALID,AWVALID,WVALID为低电平;②从机接口必须驱动RVALID,BVALID为低电平;③所有其他信号可以被驱动到任意值。

    在复位后,主机可以在时钟上升沿驱动ARVALID,AWVALID,WVALID为高电平。

    3.2基本读写传输

    握手过程

    5个传输通道均使用VALID/READY信号对传输过程的地址、数据、控制信号进行握手。使用双向握手机制,传输仅仅发生在VALID、READY同时有效的时候。下图是几种握手机制:

    图 3-1 VALID before READY 握手

    图 3-2 READY before VALID 握手

    图 3-3 VALID with READY 握手

    通道信号要求

    通道握手信号:每个通道有自己的xVALID/xREADY握手信号对。

    写地址通道:当主机驱动有效的地址和控制信号时,主机可以断言AWVALID,一旦断言,需要保持AWVALID的断言状态,直到时钟上升沿采样到从机的AWREADY。AWREADY默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用来断言AWVALID,一个用来断言AWREADY);当AWREADY为高时,从机必须能够接受提供给它的有效地址。

    写数据通道:在写突发传输过程中,主机只能在它提供有效的写数据时断言WVALID,一旦断言,需要保持断言状态,知道时钟上升沿采样到从机的WREADY。WREADY默认值可以为高,这要求从机总能够在单个周期内接受写数据。主机在驱动最后一次写突发传输是需要断言WLAST信号。

    写响应通道:从机只能它在驱动有效的写响应时断言BVALID,一旦断言需要保持,直到时钟上升沿采样到主机的BREADY信号。当主机总能在一个周期内接受写响应信号时,可以将BREADY的默认值设为高。

    读地址通道:当主机驱动有效的地址和控制信号时,主机可以断言ARVALID,一旦断言,需要保持ARVALID的断言状态,直到时钟上升沿采样到从机的ARREADY。ARREADY默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用来断言ARVALID,一个用来断言ARREADY);当ARREADY为高时,从机必须能够接受提供给它的有效地址。

    读数据通道:只有当从机驱动有效的读数据时从机才可以断言RVALID,一旦断言需要保持直到时钟上升沿采样到主机的BREADY。BREADY默认值可以为高,此时需要主机任何时候一旦开始读传输就能立马接受读数据。当最后一次突发读传输时,从机需要断言RLAST。

    通道间关系

    AXI协议要求通道间满足如下关系:

    • 写响应必须跟随最后一次burst的的写传输
    • 读数据必须跟随数据对应的地址
    • 通道握手信号需要确认一些依耐关系

    通道握手信号的依耐关系

    为防止死锁,通道握手信号需要遵循一定的依耐关系。①VALID信号不能依耐READY信号。②AXI接口可以等到检测到VALID才断言对应的READY,也可以检测到VALID之前就断言READY。下面有几个图表明依耐关系,单箭头指向的信号能在箭头起点信号之前或之后断言;双箭头指向的信号必须在箭头起点信号断言之后断言。

    图 3-4 读传输握手依耐关系

    图 3-5 写传输握手依耐关系

    图 3-6 从机写响应握手依耐关系

    3.3传输结构

    地址结构

    AXI协议是基于burst的,主机只给出突发传输的第一个字节的地址,从机必须计算突发传输后续的地址。突发传输不能跨4KB边界(防止突发跨越两个从机的边界,也限制了从机所需支持的地址自增数)。

    1)突发长度

    ARLEN[7:0]决定读传输的突发长度,AWLEN[7:0]决定写传输的突发长度。AXI3只支持1~16次的突发传输(Burst_length=AxLEN[3:0]+1),AXI4扩展突发长度支持INCR突发类型为1~256次传输,对于其他的传输类型依然保持1~16次突发传输(Burst_Length=AxLEN[7:0]+1)。

    burst传输具有如下规则:

    • wraping burst ,burst长度必须是2,4,8,16
    • burst不能跨4KB边界
    • 不支持提前终止burst传输

    所有的组件都不能提前终止一次突发传输。然而,主机可以通过解断言所有的写的strobes来使非所有的写字节来减少写传输的数量。读burst中,主机可以忽略后续的读数据来减少读个数。也就是说,不管怎样,都必须完成所有的burst传输。

    注:对于FIFO,忽略后续读数据可能导致数据丢失,必须保证突发传输长度和要求的数据传输大小匹配。

    突发大小

    ARSIZE[2:0],读突发传输;AWSIZE[2:0],写突发传输。

    AxSIZE[2:0]    bytes in transfer

    ‘b000      1

    ‘b001      2

    ‘b010      4

    ‘b011      8

    ‘b100      16

    ‘b101      32

    ‘b110      64

    ‘b111      128

    突发类型

    FIXED:突发传输过程中地址固定,用于FIFO访问

    INCR:增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。

    WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的大小对齐。最低的地址整个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN)。

    AxBURST[1:0]    burst type

    ‘b00          FIXED

    ‘b01          INCR

    ‘b10          WRAP

    ‘b11          Reserved

    Start_Address=AxADDR

    Number_Bytes=2^AxSIZE

    Burst_Length=AxLEN+1

    Aligned_Addr=(INT(Start_Address/Number_Bytes))xNumber_Bytes。//INT表示向下取整。

    对于INCR突发和WRAP突发但没有到达回环边界,地址由下述方程决定:

    Address_N=Aligned_Address+(N-1)xNumber_Bytes

    WRAP突发,突发边界:

    Wrap_Boundary=(INT(Start_Address/(Number_Bytes x Burst_Length)))x(Number_Bytes x Burst_Length)

     

    数据读写结构

    WSTRB[n:0]对应于对应的写字节,WSTRB[n]对应WDATA[8n+7:8n]。WVALID为低时,WSTRB可以为任意值,WVALID为高时,WSTRB为高的字节线必须指示有效的数据。

    窄传输

    当主机产生比它数据总线要窄的传输时,由地址和控制信号决定哪个字节被传输:

    INCR和WRAP,不同的字节线决定每次burst传输的数据,FIXED,每次传输使用相同的字节线。

    下图给出了5次突发传输,起始地址为0,每次传输为8bit,数据总线为32bit,突发类型为INCR。

    图 3-7 窄传输示例1

    下图给出3次突发,起始地址为4,每次传输32bit,数据总线为64bit。

    图 3-8 窄传输示例2

    非对齐传输

    AXI支持非对齐传输。在大于一个字节的传输中,第一个自己的传输可能是非对齐的。如32-bit数据包起始地址在0x1002,非32bit对齐。

    主机可以①使用低位地址线来表示非对齐的起始地址;②提供对齐的起始地址,使用字节线来表示非对齐的起始地址。

    图 3-9 对齐非对齐传输示例1-32bit总线

    图 3-10 对齐非对齐传输示例2-64bit总线

    图 3-11 对齐的回环传输示例

    读写响应结构

    读传输的响应信息是附加在读数据通道上的,写传输的响应在写响应通道。

    RRESP[1:0],读传输

    BRESP[1:0],写传输

    OKAY(‘b00):正常访问成功

    EXOKAY(‘b01):Exclusive 访问成功

    SLVERR(‘b10):从机错误。表明访问已经成功到了从机,但从机希望返回一个错误的情况给主机。

    DECERR(‘b11):译码错误。一般由互联组件给出,表明没有对应的从机地址。

    展开全文
  • AXI4总线协议好文

    2020-06-13 20:53:45
  • 主要是基于aurora8b/10b设计的基于AXI4总线协议的读写控制器代码,可封装成IP在bd设计中使用
  • AXI4总线协议总结

    2020-06-13 20:35:03
    AXI4总线协议总结 0.绪论 AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展...

    AXI4总线协议总结

    0.绪论

    AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream

    AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。

    1.简介

    1.1 关于AXI协议

    AMBA AXI协议支持支持高性能、高频率系统设计。

    • 适合高带宽低延时设计
    • 无需复杂的桥就能实现高频操作
    • 能满足大部分器件的接口要求
    • 适合高初始延时的存储控制器
    • 提供互联架构的灵活性与独立性
    • 向下兼容已有的AHB和APB接口

    关键特点:

    • 分离的地址/控制、数据相位
    • 使用字节线来支持非对齐的数据传输
    • 使用基于burst的传输,只需传输首地址
    • 分离的读、写数据通道,能提供低功耗DMA
    • 支持多种寻址方式
    • 支持乱序传输
    • 允许容易的添加寄存器级来进行时序收敛

    1.2 AXI架构

    AXI协议是基于burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。

    地址通道携带控制消息用于描述被传输的数据属性,数据传输使用写通道来实现“主”到“从”的传输,“从”使用写响应通道来完成一次写传输;读通道用来实现数据从“从”到“主”的传输。

     

     

    图 1-1 读架构

    图 1-2 写架构

    AXI是基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。

    读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。

    读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024bit)和指示读传输完成的读响应信号。

    写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,“主”无需等待“从”对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16…1024bit)和字节线(用于指示8bit 数据信号的有效性)。

    写响应通道:“从”使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。

    图 1-3 接口与互联

    AXI协议提供单一的接口定义,能用在下述三种接口之间:master/interconnect、slave/interconnect、master/slave。

    可以使用以下几种典型的系统拓扑架构:

    • 共享地址与数据总线
    • 共享地址总线,多数据总线
    • multilayer多层,多地址总线,多数据总线

    在大多数系统中,地址通道的带宽要求没有数据通道高,因此可以使用共享地址总线,多数据总线结构来对系统性能和互联复杂度进行平衡。

    寄存器片(Register Slices):

    每个AXI通道使用单一方向传输信息,并且各个通道直接没有任何固定关系。因此可以可以在任何通道任何点插入寄存器片,当然这会导致额外的周期延迟。

    使用寄存器片可以实现周期延迟(cycles of latency)和最大操作频率的折中;使用寄存器片可以分割低速外设的长路径。

    2.信号描述

    表 2-1 全局信号

    信号名 描述
    ACLK   时钟源   全局时钟信号
    ARESETn   复位源 全局复位信号,低有效

    表 2-2 写地址通道信号

    信号名     源     描述      
    AWID 主机 写地址ID,用来标志一组写信号
    AWADDR 主机 写地址,给出一次写突发传输的写地址
    AWLEN 主机 突发长度,给出突发传输的次数
    AWSIZE 主机 突发大小,给出每次突发传输的字节数
    AWBURST 主机 突发类型
    AWLOCK 主机 总线锁信号,可提供操作的原子性
    AWCACHE 主机 内存类型,表明一次传输是怎样通过系统的
    AWPROT 主机 保护类型,表明一次传输的特权级及安全等级
    AWQOS 主机 质量服务QoS
    AWREGION 主机 区域标志,能实现单一物理接口对应的多个逻辑接口
    AWUSER 主机 用户自定义信号
    AWVALID 主机 有效信号,表明此通道的地址控制信号有效
    AWREADY 从机 表明“从”可以接收地址和对应的控制信号

    表 2-3 写数据通道信号

    信号名     源     描述      
    WID 主机 一次写传输的ID tag
    WDATA 主机 写数据
    WSTRB 主机 写数据有效的字节线,用来表明哪8bits数据是有效的
    WLAST 主机 表明此次传输是最后一个突发传输
    WUSER 主机 用户自定义信号
    WVALID 主机 写有效,表明此次写有效
    WREADY 从机 表明从机可以接收写数据

    表 2-4 写响应通道信号

    信号名     源     描述      
    BID 从机 写响应ID tag
    BRESP 从机 写响应,表明写传输的状态
    BUSER 从机 用户自定义
    BVALID 从机 写响应有效
    BREADY 主机 表明主机能够接收写响应

    表 2-5 读地址通道信号

    信号名     源     描述      
    ARID 主机 读地址ID,用来标志一组写信号
    ARADDR 主机 读地址,给出一次写突发传输的读地址
    ARLEN 主机 突发长度,给出突发传输的次数
    ARSIZE 主机 突发大小,给出每次突发传输的字节数
    ARBURST 主机 突发类型
    ARLOCK 主机 总线锁信号,可提供操作的原子性
    ARCACHE 主机 内存类型,表明一次传输是怎样通过系统的
    ARPROT 主机 保护类型,表明一次传输的特权级及安全等级
    ARQOS 主机 质量服务QoS
    ARREGION 主机 区域标志,能实现单一物理接口对应的多个逻辑接口
    ARUSER 主机 用户自定义信号
    ARVALID 主机 有效信号,表明此通道的地址控制信号有效
    ARREADY 从机 表明“从”可以接收地址和对应的控制信号

     表 2-6 读数据通道信号

    信号名     源     描述      
    RID 从机 读ID tag
    RDATA 从机 读数据
    RRESP 从机 读响应,表明读传输的状态
    RLAST 从机 表明读突发的最后一次传输
    RUSER 从机 用户自定义
    RVALID 从机 表明此通道信号有效
    RREADY 主机 表明主机能够接收读数据和响应信息

    表 2-7 低功耗接口信号

    信号名     源     描述    
    CSYSREQ 时钟控制器 系统退出低功耗请求,此信号从“时钟控制器”到“外设”
    CSYSACK 外设 退出低功耗状态确认
    CACTIVE 外设 外设请求时钟有效

    3.信号接口要求

    3.1时钟复位

    时钟

    每个AXI组件使用一个时钟信号ACLK,所有输入信号在ACLK上升沿采样,所有输出信号必须在ACLK上升沿后发生。

    复位

    AXI使用一个低电平有效的复位信号ARESETn,复位信号可以异步断言,但必须和时钟上升沿同步去断言。

    复位期间对接口有如下要求:①主机接口必须驱动ARVALID,AWVALID,WVALID为低电平;②从机接口必须驱动RVALID,BVALID为低电平;③所有其他信号可以被驱动到任意值。

    在复位后,主机可以在时钟上升沿驱动ARVALID,AWVALID,WVALID为高电平。

    3.2基本读写传输

    握手过程

    5个传输通道均使用VALID/READY信号对传输过程的地址、数据、控制信号进行握手。使用双向握手机制,传输仅仅发生在VALID、READY同时有效的时候。下图是几种握手机制:

    图 3-1 VALID before READY 握手

    图 3-2 READY before VALID 握手

    图 3-3 VALID with READY 握手

    通道信号要求

    通道握手信号:每个通道有自己的xVALID/xREADY握手信号对。

    写地址通道:当主机驱动有效的地址和控制信号时,主机可以断言AWVALID,一旦断言,需要保持AWVALID的断言状态,直到时钟上升沿采样到从机的AWREADY。AWREADY默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用来断言AWVALID,一个用来断言AWREADY);当AWREADY为高时,从机必须能够接受提供给它的有效地址。

    写数据通道:在写突发传输过程中,主机只能在它提供有效的写数据时断言WVALID,一旦断言,需要保持断言状态,知道时钟上升沿采样到从机的WREADY。WREADY默认值可以为高,这要求从机总能够在单个周期内接受写数据。主机在驱动最后一次写突发传输是需要断言WLAST信号。

    写响应通道:从机只能它在驱动有效的写响应时断言BVALID,一旦断言需要保持,直到时钟上升沿采样到主机的BREADY信号。当主机总能在一个周期内接受写响应信号时,可以将BREADY的默认值设为高。

    读地址通道:当主机驱动有效的地址和控制信号时,主机可以断言ARVALID,一旦断言,需要保持ARVALID的断言状态,直到时钟上升沿采样到从机的ARREADY。ARREADY默认值可高可低,推荐为高(如果为低,一次传输至少需要两个周期,一个用来断言ARVALID,一个用来断言ARREADY);当ARREADY为高时,从机必须能够接受提供给它的有效地址。

    读数据通道:只有当从机驱动有效的读数据时从机才可以断言RVALID,一旦断言需要保持直到时钟上升沿采样到主机的BREADY。BREADY默认值可以为高,此时需要主机任何时候一旦开始读传输就能立马接受读数据。当最后一次突发读传输时,从机需要断言RLAST。

    通道间关系

    AXI协议要求通道间满足如下关系:

    • 写响应必须跟随最后一次burst的的写传输
    • 读数据必须跟随数据对应的地址
    • 通道握手信号需要确认一些依耐关系

    通道握手信号的依耐关系

    为防止死锁,通道握手信号需要遵循一定的依耐关系。①VALID信号不能依耐READY信号。②AXI接口可以等到检测到VALID才断言对应的READY,也可以检测到VALID之前就断言READY。下面有几个图表明依耐关系,单箭头指向的信号能在箭头起点信号之前或之后断言;双箭头指向的信号必须在箭头起点信号断言之后断言。

    图 3-4 读传输握手依耐关系

    图 3-5 写传输握手依耐关系

    图 3-6 从机写响应握手依耐关系

    3.3传输结构

    地址结构

    AXI协议是基于burst的,主机只给出突发传输的第一个字节的地址,从机必须计算突发传输后续的地址。突发传输不能跨4KB边界(防止突发跨越两个从机的边界,也限制了从机所需支持的地址自增数)。

    1)突发长度

    ARLEN[7:0]决定读传输的突发长度,AWLEN[7:0]决定写传输的突发长度。AXI3只支持1~16次的突发传输(Burst_length=AxLEN[3:0]+1),AXI4扩展突发长度支持INCR突发类型为1~256次传输,对于其他的传输类型依然保持1~16次突发传输(Burst_Length=AxLEN[7:0]+1)。

    burst传输具有如下规则:

    • wraping burst ,burst长度必须是2,4,8,16
    • burst不能跨4KB边界
    • 不支持提前终止burst传输

    所有的组件都不能提前终止一次突发传输。然而,主机可以通过解断言所有的写的strobes来使非所有的写字节来减少写传输的数量。读burst中,主机可以忽略后续的读数据来减少读个数。也就是说,不管怎样,都必须完成所有的burst传输。

    注:对于FIFO,忽略后续读数据可能导致数据丢失,必须保证突发传输长度和要求的数据传输大小匹配。

    突发大小

    ARSIZE[2:0],读突发传输;AWSIZE[2:0],写突发传输。

    AxSIZE[2:0]    bytes in transfer

    ‘b000      1

    ‘b001      2

    ‘b010      4

    ‘b011      8

    ‘b100      16

    ‘b101      32

    ‘b110      64

    ‘b111      128

    突发类型

    FIXED:突发传输过程中地址固定,用于FIFO访问

    INCR:增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。

    WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的大小对齐。最低的地址整个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN)。

    AxBURST[1:0]    burst type

    ‘b00          FIXED

    ‘b01          INCR

    ‘b10          WRAP

    ‘b11          Reserved

    Start_Address=AxADDR

    Number_Bytes=2^AxSIZE

    Burst_Length=AxLEN+1

    Aligned_Addr=(INT(Start_Address/Number_Bytes))xNumber_Bytes。//INT表示向下取整。

    对于INCR突发和WRAP突发但没有到达回环边界,地址由下述方程决定:

    Address_N=Aligned_Address+(N-1)xNumber_Bytes

    WRAP突发,突发边界:

    Wrap_Boundary=(INT(Start_Address/(Number_Bytes x Burst_Length)))x(Number_Bytes x Burst_Length)

     

    数据读写结构

    WSTRB[n:0]对应于对应的写字节,WSTRB[n]对应WDATA[8n+7:8n]。WVALID为低时,WSTRB可以为任意值,WVALID为高时,WSTRB为高的字节线必须指示有效的数据。

    窄传输

    当主机产生比它数据总线要窄的传输时,由地址和控制信号决定哪个字节被传输:

    INCR和WRAP,不同的字节线决定每次burst传输的数据,FIXED,每次传输使用相同的字节线。

    下图给出了5次突发传输,起始地址为0,每次传输为8bit,数据总线为32bit,突发类型为INCR。

    图 3-7 窄传输示例1

    下图给出3次突发,起始地址为4,每次传输32bit,数据总线为64bit。

    图 3-8 窄传输示例2

    非对齐传输

    AXI支持非对齐传输。在大于一个字节的传输中,第一个自己的传输可能是非对齐的。如32-bit数据包起始地址在0x1002,非32bit对齐。

    主机可以①使用低位地址线来表示非对齐的起始地址;②提供对齐的起始地址,使用字节线来表示非对齐的起始地址。

    图 3-9 对齐非对齐传输示例1-32bit总线

    图 3-10 对齐非对齐传输示例2-64bit总线

    图 3-11 对齐的回环传输示例

    读写响应结构

    读传输的响应信息是附加在读数据通道上的,写传输的响应在写响应通道。

    RRESP[1:0],读传输

    BRESP[1:0],写传输

    OKAY(‘b00):正常访问成功

    EXOKAY(‘b01):Exclusive 访问成功

    SLVERR(‘b10):从机错误。表明访问已经成功到了从机,但从机希望返回一个错误的情况给主机。

    DECERR(‘b11):译码错误。一般由互联组件给出,表明没有对应的从机地址。

    补充:

    1. AXI总线概述
      在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议。其中三种AXI总线分别为:
      AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输;
      AXI4-Lite:(For simple, low-throughput memory-mapped communication )是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元。
      AXI4-Stream:(For high-speed streaming data.)面向高速流数据传输;去掉了地址项,允许无限制的数据突发传输规模。

    2. AXI接口介绍
      三种AXI接口分别是:
      AXI-GP接口(4个):是通用的AXI接口,包括两个32位主设备接口和两个32位从设备接口,用该接口可以访问PS中的片内外设。
      AXI-HP接口(4个):是高性能/带宽的标准的接口,PL模块作为主设备连接。主要用于PL访问PS上的存储器(DDR和On-Chip RAM)。
      AXI-ACP接口(1个):是ARM多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。
      在这里插入图片描述
      这位博主写的很棒!

    哈姆雷特,请保持前行!

    展开全文
  • 1.1 ZYNQ AXI4总线协议介绍 1.1.1 本节目录 1)本节目录; 2)本节引言; 3)FPGA简介; 4)ZYNQ AXI4总线协议介绍; 5)结束语。 1.1.2 本节引言 “不积跬步,无以至千里;不积小流,无以成江海。就是说:...

    1.1 ZYNQ AXI4总线协议介绍

    1.1.1 本节目录

    1)本节目录;

    2)本节引言;

    3)FPGA简介;

    4)ZYNQ AXI4总线协议介绍;

    5)结束语。

    1.1.2 本节引言

    “不积跬步,无以至千里;不积小流,无以成江海。就是说:不积累一步半步的行程,就没有办法达到千里之远;不积累细小的流水,就没有办法汇成江河大海。

    1.1.3 FPGA简介

    FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

    FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他行业产品的设计。 与 ASIC 不同,FPGA在通信行业的应用比较广泛。通过对全球FPGA产品市场以及相关供应商的分析,结合当前我国的实际情况以及国内领先的FPGA产品可以发现相关技术在未来的发展方向,对我国科技水平的全面提高具有非常重要的推动作用。

    与传统模式的芯片设计进行对比,FPGA 芯片并非单纯局限于研究以及设计芯片,而是针对较多领域产品都能借助特定芯片模型予以优化设计。从芯片器件的角度讲,FPGA 本身构成 了半定制电路中的典型集成电路,其中含有数字管理模块、内嵌式单元、输出单元以及输入单元等。在此基础上,关于FPGA芯片有必要全面着眼于综合性的芯片优化设计,通过改进当前的芯片设计来增设全新的芯片功能,据此实现了芯片整体构造的简化与性能提升。

    以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

    FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

    1.1.4 ZYNQ AXI4总线协议介绍

    1、什么是FPGA?

    FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

    2、ZYNQ AXI4总线协议介绍

    1)AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。

    2)AMBA AXI协议简介
    a、支持支持高性能、高频率系统设计;
    b、适合高带宽低延时设计;
    c、无需复杂的桥就能实现高频操作;
    d、能满足大部分器件的接口要求;
    e、适合高初始延时的存储控制器;
    f、提供互联架构的灵活性与独立性;
    g、向下兼容已有的AHB和APB接口;

    3)AMBA AXI协议特点
    a、分离的地址/控制、数据相位;
    b、使用字节线来支持非对齐的数据传输;
    c、使用基于burst的传输,只需传输首地址;
    d、分离的读、写数据通道,能提供低功耗DMA;
    e、支持多种寻址方式;
    f、支持乱序传输;
    g、允许容易的添加寄存器级来进行时序收敛;

    4)AMBA AXI协议架构
    a、AXI协议是基于burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道。地址通道携带控制消息用于描述被传输的数据属性,数据传输使用写通道来实现“主”到“从”的传输,“从”使用写响应通道来完成一次写传输;读通道用来实现数据从“从”到“主”的传输。
    b、 数据可以在主从设备间同步的双向传输,并且数据传输大小可以改变。AXI4将数据传输的突发长度限制为最大256,AXI4-Lite每次传输仅运输传输一个数据。
    c、AXI是基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。
    d、读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。
    e、读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024bit)和指示读传输完成的读响应信号。
    f、写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,“主”无需等待“从”对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16…1024bit)和字节线(用于指示8bit 数据信号的有效性)。
    g、写响应通道:“从”使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。

    5)AMBA AXI协议特定名词
    a、AXI Transaction:the complete set of required operations on the AXI bus form the AXI Transaction.表示传输一段数据(AXI burst)所需的一整套操作;
    b、AXI Burst:any required payload data is transferred as an AXI Burst.表示AXI待传数据;
    c、AXI Beats:a burst can comprise multiple data transfers, or AXI Beats.表示AXI burst的组成,一个Beat就是一个transfer。
    d、关系:一个Burst指对一个地址上的数据进行拆分后多次传输,传输Burst的过程称为transaction,每次传输内容称为一个‘Beat’,传输Beat的过程称为transfer。

    6)Master component与Slave component
    a、通信由Master发起,Master可以对Slave进行读数据(read)或写(write)数据。
    b、每次读写操作都需要一个地址,读地址信道(Read Address Channel)和写地址信道(Write Address Channel)用于传输地址。
    c、在写完数据后,Master需要确认Slave有没有收完数据,Slave收到完整数据后,会通过写响应信道(Write Response Channel)给Master一个反馈(completion),表示写操作已经完成。

    7)VALID/READY握手机制
    a、由数据发送端发送VALID,表示已经将数据、地址或控制信息置于写总线上;
    b、由数据接收端发送READY,表示已经准备好接收发送端的信息;
    c、当VALID和READY同时置高时,在时钟上升沿到达后,表示开始数据传输;完成数据传输后,两个信号置低。

    3、经验总结

    1)ZYNQ FPGA架构;

    2)FPGA开发技术;

    3)Xilinx FPGA开发软件;

    4)FPGA设计流程。

    1.1.5 结束语

    第一,希望阅读笔者的博客可以对您有所帮助。

    第二,希望读者可以快速学习FPGA这门技术。

    第三,如果需要技术沟通,可以联系笔者。希望对你有帮助,如果遇到问题,可以一起沟通讨论,邮箱:jhqwy888@163.com

    展开全文
  • AXI4总线协议的发展历史 随着集成电路芯片的规模越来越大,IC的设计开始越来越复杂。基于IP核复用的设计方法因为能有效的降低复杂度,提高设计成功率,目前已成为主流的IC设计方法。而如何解决一个芯片内不同IP核间...
  • AMBA ® AXI ™ 和ACE ™ 协议--中文版;
  • AMBA AXI3总线协议

    2013-12-26 12:33:33
    AMBA AXI3总线协议的SLAVE接口模型,内含有testbench已经进行了仿真验证
  • AHB AXI OCP总线协议分析,ahb multi-layer.pdf
  • 针对AXI4总线设备之间的高速数据传输需求,根据AXI4总线协议,设计实现了一种基于FPGA的AXI4总线读写时序控制方法。以FPGA为核心,采用VHDL语言,完成了满足AXI4总线协议的读猝发方式数据传输和写猝发方式数据传输...
  • AHB AXI OCP总线协议分析,主要介绍了这三组总线的协议和区别。适合新手教学
  • AXI4总线

    2020-07-22 17:56:44
    在这里提醒一下自己,总结AXI4总线协议、mig IP核、mig_master的逻辑、以及DDR3相关的知识
  • AXI总线协议总结

    千次阅读 多人点赞 2019-10-30 10:26:14
    在介绍AXI之前,先简单说一下总线、接口以及协议的含义 总线、接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别。 ...AXI4总线协议是ARM公司提出的AMBA(Advanced Microco...
  • 当前我对 AXI总线的理解尚谈不上深入。但我希望通过一系列文章,让读者能和我一起深入探寻 AXI4。 声明1:部分时序图以及部分语句来自 ARM AMBA 官方手册 (有的时候感觉手册写得太好了,忍不住就直接翻译了。。) ...
  • AXI4、AXI4-Lite、AXI-Stream总线协议的简单认识(一)AXI总线是什么? AXI是ARM 1996年提出的微控制器总线家族AMBA中的一部分。AXI的第一个版本出现在AMBA3.0,发布于2003年。当前的最新的版本发布于2010年。 AXI4...
  • AXI_02 AXI4总线简介(协议、时序)

    千次阅读 2019-03-07 11:47:37
    所以请跳转至该系列文章第一篇从头开始阅读,并按照文章末尾指示按顺序阅读,否则会云里雾里,传送门在此: https://blog.csdn.net/qq_33486907/article/details/88289714 《AXI_01 《AXI总线系列文章》由来》 ...
  • AXI总线协议中文版

    2019-03-29 22:09:44
    Xilinx的AXI总线协议,给英文不好的同学准备的,介绍的很详细。
  • AXI4AXI-lite、AXI-Stream总线协议学习笔记

    千次阅读 多人点赞 2019-04-02 17:11:42
    AXI总线和AXI接口以及AXI协议 总线、接口和协议,这三个词常常被联系在一起。总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成。接口是一种连接标准,又常常被称之为...
  • AXI总线协议详解

    2013-12-08 20:56:33
    此文档对AXI总线协议进行了系统的详解,有急需的同学可以下载看看!
  • AXI总线协议

    2018-12-05 20:17:08
    原文链接 http://www.cnblogs.com/lkiller/p/4773235.html (有改动,针对原文没将清楚的地方加以扩展并细致解读。看原文的话请移步链接,谢谢...AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream AXI4.0...
  • AXI4总线学习

    2021-07-23 12:06:32
    AXI4总线学习AXI总线介绍时钟和复位AXI的五组独立通道Write Address Channel 写地址通道Write Data Channel 写数据通道Write Response Channel 写响应信号Read Address Channel 读地址信号Read Data Channel 读数据...
  • AXI 4总线简介

    千次阅读 2018-07-21 16:56:39
    (一)AXI总线是什么?  AXI是ARM 1996年提出的微控制器总线家族AMBA中的一部分。AXI的第一个版本出现在AMBA3.0,发布于2003年。当前的最新的版本发布于2010年。  AXI4:主要面向高性能地址映射通信的需求;  ...
  • AXI4AXI4-Lite、AXI-Stream总线协议的简单认识 - CSDN博客
  • AXI总线协议 学习

    2019-07-23 16:00:55
    AXI 总线

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,653
精华内容 661
关键字:

axi4总线协议