以下章节提供了 AXI4‑Lite 接口状态机控制和端口。
用户状态机
通过 AXI4‑Lite 从模块接口执行的读写操作由状态机来控制,如下所示:
图 1.
AXI4‑Lite 接口的用户状态机
每个状态的功能描述如下:
- IDLE_STATE
- 默认情况下,FSM 处于 IDLE_STATE 状态。当
user_read_req
信号变为高电平时,它会转至 READ_STATE 状态。或者,如果user_write_req
信号为高电平,那么它会转至 WRITE_STATE,否则,它将保持 IDLE_STATE 状态。 - WRITE_STATE
- 在此状态下,请提供
S_AXI_AWVALID
、S_AXI_AWADDR
、S_AXI_WVALID
、S_AXI_WDATA
和S_AXI_WSTRB
以通过 AXI 写入寄存器映射。当来自 AXI 从接口的S_AXI_BVALID
和S_AXI_BREADY
均为 High 时,它会转至 ACK_STATE。如果在任意违规地址中发生任何写入操作,S_AXI_BRESP[1:0]
会指示2'b10
以断言写入错误信号有效。 - READ_STATE
- 在此状态下,您提供
S_AXI_ARVALID
和S_AXI_ARADDR
以通过 AXI 从寄存器映射读取。当S_AXI_RVALID
和S_AXI_RREADY
均为 High 时,它会转至 ACK_STATE。如果在任意违规地址中发生任何读取操作,S_AXI_RRESP[1:0]
会指示2'b10
以断言读取错误信号有效。 - ACK_STATE
- 状态将转至 IDLE_STATE。
AXI 用户接口端口
名称 | 大小 | I/O | 描述 |
---|---|---|---|
S_AXI_ACLK | 1 | 输入 | AXI 时钟信号 |
S_AXI_ARESETN | 1 | 输入 | AXI 低电平有效同步复位 |
S_AXI_PM_TICK | 1 | 输入 | PM 时钟节拍用户输入 |
S_AXI_AWADDR | 32 | 输入 | AXI 写入地址 |
S_AXI_AWVALID | 1 | 输入 | AXI 写入地址有效 |
S_AXI_AWREADY | 1 | 输出 | AXI 写入地址就绪 |
S_AXI_WDATA | 32 | 输入 | AXI 写入数据 |
S_AXI_WSTRB | 4 | 输入 | AXI 写入选通。此信号用于指示保存有效数据的字节通道。 |
S_AXI_WVALID | 1 | 输入 | AXI 写入数据有效。此信号用于指示有效的写入数据和写入选通均可供使用。 |
S_AXI_WREADY | 1 | 输出 | AXI 写入数据就绪 |
S_AXI_BRESP | 2 | 输出 |
AXI 写入响应。此信号用于指示写入传输事务的状态。 'b00 = OKAY 'b01 = EXOKAY 'b10 = SLVERR 'b11 = DECERR |
S_AXI_BVALID | 1 | 输出 | AXI 写入响应有效。此信号用于指示该通道正在发出有效的写入响应信号。 |
S_AXI_BREADY | 1 | 输入 | AXI 写入响应就绪。 |
S_AXI_ARADDR | 32 | 输入 | AXI 读取地址 |
S_AXI_ARVALID | 1 | 输入 | AXI 读取地址有效 |
S_AXI_ARREADY | 1 | 输出 | AXI 读取地址就绪 |
S_AXI_RDATA | 32 | 输出 | AXI 读取数据(由从接口发出) |
S_AXI_RRESP | 2 | 输出 |
AXI 读取响应。此信号用于指示读取传输的状态。 'b00 = OKAY 'b01 = EXOKAY 'b10 = SLVERR 'b11 = DECERR |
S_AXI_RVALID | 1 | 输出 | AXI 读取数据有效 |
S_AXI_RREADY | 1 | 输入 | AXI 读取就绪。此信号用于指示用户/主控制器可接受读取数据和响应信息。 |
有效的写入传输事务
图 2.
AXI4‑Lite 用户侧写入传输事务
无效的写入传输事务
图 3.
AXI4‑Lite 用户侧写入传输事务(含无效的写入地址)
有效的读取传输事务
图 4.
AXI4‑Lite 用户侧读取传输事务
无效的读取传输事务
图 5.
AXI4‑Lite 用户侧读取传输事务(含无效的读取地址)