简介
本文主要针对XILINX使用的AXI Lite总线对寄存器读写的使用,首先对AXI总线做详细介绍
AXI总线
AXI是一种总线协议,可以挂在多个master和slave,AXI总线包括3中类型接口,介绍如下:
AXI4、AXI4-LITE总线信号组成:写地址通道、写数据通道、写响应通道、读地址通道、读数据通道如下表所示:
read address |
读地址通道 |
主机->从机 |
read data |
读数据通道(包括数据通道和读响应通道) |
从机->主机 |
write address |
写地址通道 |
主机->从机 |
write data |
写数据通道(包括数据通道和每8bit一个byte的写数据有效信号) |
主机->从机 |
write response |
写响应通道 |
从机->主机 |
AXI通道介绍
读地址通道信号
信号 |
方向 |
描述 |
ARID |
主机to从机 |
读地址ID,用来标志一组写信号 |
ARADDR |
主机to从机 |
读地址,给出一次读突发传输的读地址 |
ARLEN |
主机to从机 |
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传输 |
ARSIZE |
主机to从机 |
读突发大小,给出每次突发传输的字节数支持1、2、4、8、16、32、64、128 |
ARBURST |
主机to从机 |
突发类型: 2'b00 FIXED:突发传输过程中地址固定,用于FIFO访问 2'b01 INCR :增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。 2'b10 WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的大小对齐。最低的地址整个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN) 2'b11 Reserved |
ARLOCK |
主机to从机 |
总线锁信号,可提供操作的原子性 |
ARCACHE |
主机to从机 |
内存类型,表明一次传输是怎样通过系统 |
ARPROT |
主机to从机 |
保护类型,表明一次传输的特权级及安全等级 |
ARQOS |
主机to从机 |
质量服务QoS |
ARREGION |
主机to从机 |
区域标志,能实现单一物理接口对应的多个逻辑接口 |
ARUSER |
主机to从机 |
用户自定义信号 |
ARVALID |
主机to从机 |
有效信号,表明此通道的地址控制信号有效 |
ARREADY |
从机to主机 |
表明"从"可以接收地址和对应的控制信号 |
信号 |
方向 |
描述 |
ARID |
主机to从机 |
读地址ID,用来标志一组写信号 |
ARADDR |
主机to从机 |
读地址,给出一次读突发传输的读地址 |
ARLEN |
主机to从机 |
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 bu |