作者:小青菜哥哥
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMTcyNDQyMQ==&mid=2247484506&idx=1&s...
声明:本文由原创博主授权转发,如需转载请联系博主
本篇介绍AXI4-Lite接口协议的数据读写操作~
如下表所示为AXI4-Lite协议所使用信号的官方标准,共有21组信号:
如下图所示为vivado例化的JESD204 IP核,其中标记部分即为AXI4-Lite接口,共有19组信号,官方标准中的AWPROT和ARPROT信号无需使用。操作这19组信号即可实现对JESD204 IP核的寄存器配置与状态监测,我们接下来详细介绍这些信号:
全局信号
接口的读写时钟,默认为100MHz,由用户提供。
接口的复位信号,默认低电平复位,由用户提供,最好使用同步复位。
Table A2-1 Global signals |
||
Signal |
source |
description |
ACLK |
Clock source |
Global clock signal |
ARESETn |
Reset source |
Global reset signal, active LOW |
All signals are sampled on the rising edge of the global clock |
写地址信号
写地址信号。用户向IP核发送12bit位宽的寄存器地址信号,准备向该地址写入数据。
写地址可用信号。用户向IP核发送1bit位宽的写地址可用信号,告诉IP核,用户端发送的12bit地址是有效的。
写地址准备信号。IP核向用户端发送1bit位宽的写地址准备信号,告诉用户端,它已经准备好接收12bit的寄存器地址信号了。
Table A2-2 Write address channel signals |
||
Signal |
source |
description |
AWADDR |
Master |
Write address. The write address gives the address of the first transfer in a write burst transaction |
AWVALID |
Master |
Write address valid. This signal indicates that the channel is signaling valid write address and control information |
AWREADY |
Slave |
Write address ready. This signal indicates that the slave is ready to accept an address and associated control signal |
写数据信号
写数据信号。用户向IP核写入32bit位宽的寄存器配置数据,写入的地址即为上表中的12bit位宽的地址。
写字节有效信号。该信号4bit位宽,每bit信号标志着8bit的写入数据是否有效。4bit位宽的该信号正好对应32bit的写数据信号是否有效。用户在向IP核写入32bit的 s_axi_wdata时,同时要写入s_axi_wstrb,一般s_axi_wstrb置为全1即可,表明写入数据都是可用的。
写可用信号。用户向IP核发送该信号,表明s_axi_wdata和s_axi_wstrb
信号对于IP核都是可用的。
写准备信号。IP核向用户发送该信号,表明IP核已经准备好接收来自用户端的s_axi_wdata和s_axi_wstrb信号。
Table A2-3 Write data channel signals |
||
Signal |
source |
description |
WDATA |
Master |
Write data |
WSTRB |
Master |
Write strobes. This signal indicates which byte lanes hold valid data. There is one write strobe bit for each eight bits of the write data bus |
WVALID |
Master |
Write valid. This signal indicates that valid write data and strobes are available |
WREADY |
Slave |
Write ready. This signal indicates that the slave can accept the write data |
写响应信号
写响应信号。该信号2bit位宽,当用户向IP核写入数据后,IP核会向用户反馈写入是否成功。s_axi_bresp共4种状态,当其为2’b00时,表示写成功。
写响应可用信号。该信号1bit位宽,表示此时写响应信号可用,在该标志位下,用户获取写响应信号,此信号由IP核提供,用户端接收。
写响应准备信号。该信号1bit位宽,由用户端发送到IP核,表示用户端已经准备好接收s_axi_bresp和s_axi_bvalid信号。
Table A2-4 Write response channel signals |
||
Signal |
source |
description |
BRESP |
Slave |
Write response. This signal indicates the status of the write transaction |
BVALID |
Slave |
Write response valid. This signal indicates that the channel is signaling a valid write response |
BREADY |
Master |
Response ready. This signal indicates that the master can accept a write response to accept an address and associated control signal |
读地址信号
读地址信号。用户向IP核写入需要读写的寄存器地址,共12bit位宽。
读地址可用信号。用户向IP核提供读地址可用信号,共1bit位宽,该标志位与s_axi_araddr信号同时发送到IP核。
写地址准备信号。IP核向用户提供该1bit位宽信号,来告诉用户什么时候可以向它写入s_axi_araddr和s_axi_arvalid信号
Table A2-5 Read address channel signals |
||
Signal |
source |
description |
ARADDR |
Master |
Read address. The read address gives the address of the first transfer in a read burst transaction |
ARVALID |
Master |
Read address valid. This signal indicates that the channel is signaling valid read address and control information |
ARREADY |
Slave |
Read address ready. This signal indicates that the slave is ready to accept an address and associated control signals |
读数据信号
读数据信号。该信号32bit位宽,由IP核提供给用户,是寄存器的值。
读数据响应。IP核向用户传输寄存器值时,还同时传输该响应信号,该信号2bit位宽,指示读数据的共4种状态,其中2’b00表示正常。
读数据可用信号。该信号作为读数据信号的可用标志信号,同样由IP核提供给用户。
读数据准备信号。用户向IP提供该1bit信号,表示用户端已经准备好接收数据了。
Table A2-6 Read data channel signals |
||
Signal |
source |
description |
RDATA |
Slave |
Read data |
RRESP |
Slave |
Read response. This signal indicates the status of the read transfer |
RVALID |
Slave |
Read valid. This signal indicates that the channel is signaling the required read data |
RREADY |
Master |
Read ready. This signal indicates that the master can accept the read data and response information |
AXI4-Lite协议所使用的信号在这里就介绍完毕了,接下来介绍实现该协议的时序关系~
写时序
如下图所示为AXI4-lite写逻辑的时序图,仅供参考。通俗的说:如果我们想配置JESD204 IP核,就必须按照如图的时序关系才能实现。实现步骤可以分为3步:写地址、写数据以及写响应。
当监测到IP核给出的AWREADY有效时,用户在时钟上升沿写入寄存器数据的地址AWADDR以及地址使能AWVALID。
当监测到WREADY有效时,用户在时钟上升沿写入寄存器数据WDATA、WSTRB以及数据使能WVALID。
当监测到BREADY、BVALID均有效时,用户获取写响应信号BRESP。
读时序
如下图所示为AXI4-lite读逻辑的时序图,仅供参考。如果我们想读取JESD204 IP核的内部寄存器值,就必须按照如图的时序关系才能实现。实现步骤可以分为2步:写地址、读数据以及读响应。
当监测到IP核给出的ARREADY有效时,用户在时钟上升沿写入寄存器数据的地址ARADDR以及地址使能ARVALID。
当监测到IP核给出的RVALID有效且用户端的RREADY有效时,用户在时钟上升沿读取寄存器数据RDATA以及读响应信号RRESP。
下面介绍读写时序的verilog逻辑代码~
1, 写地址逻辑
2, 写数据逻辑
3, 写响应逻辑
4, 读操作的写地址逻辑
5, 读数据及读响应
测试结果
该测试配置了JESD204 IP核的11个关键寄存器,如下图代码所示:
配置完成后,将13个寄存器的值读出来:
用逻辑分析仪可以看到,写入的数据和读出的数据是完全相同的,证明AXI4-Lite接口的读写时序没问题~